当前位置: 首页 > news >正文

大良网站建设网推渠道

大良网站建设,网推渠道,做网站主色调选择,一键生成详情页的软件目录 1. 进程的概念 2.进程是如何被调度的 2.1描述 2.2 组织 2.3 PCB中描述的进程特征 2.4 进程调度的相关属性(接2.3) 3. 内存管理 1. 进程的概念 一个跑起来的程序就称之为进程(没跑起来就不是进程) 进程是操作系统分配资源的基本单位。 2.进程…

 

目录

 

1. 进程的概念

2.进程是如何被调度的

2.1描述

2.2 组织

 2.3 PCB中描述的进程特征

2.4 进程调度的相关属性(接2.3)

3. 内存管理


1. 进程的概念

一个跑起来的程序就称之为进程(没跑起来就不是进程)

 进程是操作系统分配资源的基本单位。

2.进程是如何被调度的

进程是一个重要的软件资源

它是由操作系统内核进行管理的

而管理主要分为两个步骤:描述和组织

2.1描述

使用一个结构体来描述进程属性,这个结构体有一个特殊的名字,叫做PCB(进程控制块)

2.2 组织

组织本质上是用一个数据结构将多个PCB给连接起来

在操作系统中是通过双向链表来对进程进行连接的

创建一个进程,本质上就是在双向链表中插入一个PCB节点;

销毁一个进程,本质上就是在双向链表中删除一个PCB节点。

我们在任务管理器中看到的进程,本质上就是遍历一次双向链表

 2.3 PCB中描述的进程特征

(1)pid

pid就是进程的ID,相当于进程的身份标识符。

(2)内存指针

内存指针指向的是系统划分给自己的内存空间。

(3)文件描述符表

文件描述符表,描述了进程占有的硬盘上的文件等资源。

内存指针和文件描述符表本质上就是描述了进程持有了哪些硬件资源。

PCB除了上面三条之外,还描述了进程描述的相关属性--2.4。(下面会说)

上面描述了PCB的其中3个属性,其中有描述了进程持有的资源,资源是由操作系统来进行分配的。

其中,硬件资源、内存、网卡这类的资源相对好分配,难分配的是CPU资源

通常情况下,进程的数量时要远远大于CPU的数量的,比如我的电脑里面的CPU是12核的

而进程却有上百个,这些进程我们希望是要同时进行,那么CPU上是如何分配的呢?

是用分时复用的方法进行分配的。

其主要分为并行和并发。

并行:微观上,同一时刻,两个核心上的进程是同时进行的

并发:微观上,同一时刻,一个核心上只能运行一个进程,但是他能对进程进行快速的切换。

比如:在CPU这个核心上,先运行一个浏览器,在运行一下QQ,再运行一下画图板...... 只要切换的速度足够快(我的电脑是3.3GHz,没秒运行33亿条指令),宏观上,人是感知不到的。

小知识:程序的并行还是并发是内核进行处理的,人们感知不到,因此往往将并行和并发统称为并发。(显示声明除外)

那么CPU是如何去进行这样的操作呢?

操作系统里面有一个重要的模块调度器,就负责让有限的CPU来调度执行这么多的进程

2.4 进程调度的相关属性(接2.3)

(1) 进程的状态

下面描述一些主要的状态:

就绪状态: 随叫随到,进程随时可以在CPU上运行。

运行状态:正在运行的进程(程序),和就绪状态相似。

堵塞状态:当前这个进程短时间内无法在CPU上运行。比如:进程在进行密集的I/O操作。

对于就绪状态和运行状态,很多操作系统并不会去明确区分。

(2)优先级

进程也是有优先级的,操作系统在进行调度的时候并不是一碗水端平

(3)上下文

操作系统在进行进程间的来回切换时,需要把进程执行的“中间状态”记录好,下次这个进程到CPU上运行的时候,可以恢复到上次的状态,方便继续执行。

上面的这段操作就类似于游戏中的“存档”、“读档”

而上下文的本质就是你“存档”的内容

进程的上下文是CPU中各个寄存器的值。

寄存器:CPU内置的存储数据的模块,保存的是程序运行过程中的中间结果。

保存上下文,就是把这些CPU寄存器的值,记录保存到内存中;

恢复上下文,就是把内存中的这些寄存器的值恢复回去。

(4)记账信息

操作系统,统计每个进程在CPU上占用的时间和执行的指令数目,根据这个来决定下一阶段如何调度。

3. 内存管理

在现在的操作系统中,进程中分配的内存都是虚拟的内存

为什么要使用虚拟内存空间呢?

因为在进程中,是可能出现bug的,而这些bug可能会导致,当前这个进程访问到另一个进程的内存空间中去,此时的影响就会很严重。

如下:

如果进程1 出现了bug,将指针指向了0x7000,

那可能会由于进程1的bug吧进程2给搞毁了,为了避免这种情况的发生,针对进程所使用的的内存空间,进行“隔离”,也就是虚拟内存空间。

代码里面使用的地址,不再是真实的物理地址,而是虚拟地址,再由操作系统和专门的硬件设备去进行虚拟地址到真实地址的转换,如果出现访问越界的情况,就会及时停止进程。

如下:

 当进程1 去访问0x3000的时候,MMU就会直接想进程反馈一个错误(让进程崩溃)。

这样一来进程出现了bug也不会去影响其他进程的运行。

虽然进程之间隔离了,但是有的时候还需要进程之间的相互配合。也就是进程间通信。

它的核心思路就是,开辟一块“公共空间”,让进程都可以去访问,然后在基于这块空间上去进行交互数据即可。

http://www.dtcms.com/a/400127.html

相关文章:

  • 盐城网站开发如何什么 的提升自己的网站
  • 网站建设进度表 下载课程网站开发背景和意义
  • 合肥哪家做网站好都江堰seo
  • ArrayList重点APi
  • 度假村网站建设wordpress 登陆失败
  • 购物网站建设新闻无锡谁做网站好
  • 胶南网站建设价格网站申请内容吗
  • 用wordpress建的大部app优化网站建设
  • 一篇文章讲清楚常见的数据结构
  • 如何做二级域名子目录网站广州app搭建
  • 数据结构 之 【并查集】
  • 可视化小程序开发工具深圳网站优化排名公司
  • 网站建设带采集威海建设集团的网站是什么
  • 【愚公系列】《人工智能70年》038-计算机视觉大放异彩(计算机视觉未来)
  • 网站建设公司douyanet桂林北京网站建设
  • 开通域名后怎样建设网站苏州做网站哪家比较好
  • 考研408计算机网络第47题(2024年)
  • 什么网站可以找到防水工程做建站行业成为买方市场
  • 装修公司网站模板下载最优惠的网站优化
  • Nginx 配置指南:HTTPS 自签名、Location、Rewrite 与状态统计
  • chn域名网站百度知道登录入口
  • 网站做cpa推广引流苍南具城乡建设局网站
  • 工商网站官网入口做国际网站的流程
  • 广告网站素材青创网站首页
  • 02-基于FPGA和LTC2308的数字电压表设计-模数转换原理
  • 前端网站做多语言wordpress 挖矿脚本
  • 外贸出口营销网站wordpress网站管理系统
  • 网站后台内容更换怎么做百度竞价关键词怎么优化
  • 使用大模型进行chat的时候,这里的max output和context length分别是什么意思?所有的模型的上下文长度排名
  • 单片机相关知识点