操作系统的进程管理

Posted 静Yu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了操作系统的进程管理相关的知识,希望对你有一定的参考价值。

操作系统对于进程(线程)的管理包括以下几个方面:

  1. 进程的调度:在多个等待使用处理器的进程中,按照一定策略选择合适的进程,使之拥有处理器的使用权而进入运行。
  2. 进程的同步:对系统中的多个进程在对共享资源的使用出现竞争时进行控制和协调。
  3. 进程的控制:进程的创建和撤消以及进程状态的转换。
  4. 进程的安全:解决因多个进程争夺资源的使用权而进入 “死锁”的僵局,使系统安全顺利地运行。

一、进程(线程)的调度

所谓进程调度,就是指在系统中所有的就绪进程里,按照某种策略确定一个合适的进程并让处理器运行它。按调度方式可分为可剥夺调度方式和不可剥夺调度方式。

1、调度策略(算法)

(1). 时间片轮转法

将就绪的进程排列为一个就绪进程队列,调度器每次把处理器分配给处在队列首部的进程,并使之运行一个规定的时间,当时间片结束时,强迫当前进程让出处理器,并把这个进程插入就绪进程队列的尾部,把处理器分配给排在队列首部的进程,并同样使之运行一个规定的时间,之后重复上述过程。

(2). 优先级调度法

优先级别的设定准则:
①使用外围设备频繁的进程所具有的优先级别要大一些;
② 承担重要计算任务的进程所具有的优先级别要大一些;
③交互式用户的进程所具有的优先级别要大一些;
④可对进程的优先级别进行动态的调整;
例如:若一个进程占用处理器时间越长,那么当它被阻塞之后再次获得调度的优先级别就应降低一些。
例如:一个进程在队列中等待处理器的时间越长,那么在它再次被调度时,它的优先级别就可以适当地提高一些。

(3). 多级反馈队列调度法

调度时,调度器每次都从优先级别高的就绪队列中的队首选择就绪进程 当在高优先级别的队列中找不到就绪进程时,才到低优先级别的就绪进程队列中选取。

2、进程切换

(1). 进行进程切换:
①从正在运行的进程中收回处理器:把进程存放在处理器寄存器中的中间数据找个地方(私有堆栈)存起来,从而把处理器的寄存器腾出来让其他进程使用。
②使待运行进程来占用处理器。把某个进程存放在私有堆栈中的寄存器的数据(前一次本进程被中止时的中间数据)再恢复到处理器的寄存器中去,并把待运行进程的断点送入处理器的程序指针PC(寄存器,存放程序地址),于是待运行进程就开始被处理器运行了

(2). PC寄存器 Program Counter:程序计数器,用来计数,指示指令在存储器的存放位置,是个地址信息;
PSW寄存器 Program Status Word:标志寄存器,主要用于反映处理器的状态和运算结果的某些特征及控制指
令的执行;
SP寄存器 Stack Pointer:堆栈寄存器,用来存放进程私有堆栈(先进后出)的偏移地址,所以称它为堆栈指针,SP始终指向栈顶。
(3).调度器进行进程切换的代码应有如下功能 :
①保存处理器PC寄存器的值到被中止进程的私有堆栈
保存处理器PSW寄存器的值到被中止进程的私有堆栈
保存处理器其他寄存器的值到被中止进程的私有堆栈
②保存处理器SP寄存器的值到被中止进程的进程控制块
③自待运行进程的进程控制块取SP值并存入处理器的寄存器SP
④自待运行进程的私有堆栈恢复处理器各寄存器的值
自待运行进程的私有堆栈中弹出PSW值并送入处理器的PSW
自待运行进程的私有堆栈中弹出PC值并送入处理器的PC
注意:以上过程通过软中断的形式完成。

二、进程(线程)的同步与通信

(1).对于并发系统来说,在同一个时间点通常会存在多个进程同时运行,为了实现各进程之间的合作和无冲突的运行 ,
在各进程之间必须建立一些制约关系 :
①直接制约关系:源于进程之间的合作!
例如:有进程A和进程B两个进程 ,它们需要通过访问同一个数据缓冲区合作完成一项工作,进程A负责向缓冲区写入据,进程B负责从缓冲区读取该数据。
②间接制约关系:源于对资源的共享!例如:进程A和进程B共享一台打印机,如果系统已经把打印机分配给了进程A,则进程B因不能获得打印机的使用权而应处于等待状态;只有当进程A把打印机释放后,系统才能唤醒进程B使其获得打印机的使用权
(2). 进程之间这种制约性的合作运行机制叫做进程间的同步。系统中进程的同步是依靠进程与进程之间互相发送消息(通信)来保证的。进程之间的通信,是通过使用信号量 、邮箱(消息邮箱)和消息队列这些被称做事件的中间环节来实现的。

三、进程的其他管理

1、进程的创建与删除

(1). 进程的创建

一段存储在存储器的代码要想取得处理器的使用权而被运行,那么它必须先成为进程。它必须获得进程控制块PCB、私有堆栈等相应资源,一般操作系统都会提供一个自动创建进程的服务模块。

(2). 进程的删除

不是把程序代码自内存中删除,而是把分配给进程的进程控制块给剥夺了,一般操作系统也会提供一个自动删除进程的服务模块。

2、进程的挂起和恢复

(1). 进程的挂起

指进程在运行中除了被调度器中止运行之外,因其他原因被中止运行,称为被挂起。(操作系统提供进程挂起服务模块)。

(2). 进程的恢复

指被挂起的进程被重新激活或重启。(操作系统提供进程恢复服务模块)。

3、进程的状态转换

(1). 三种基本状态的转换

一次仅允许一个进程使用的资源称为临界资源,许多物理设备都属于临界资源,如输入设备、打印机等。

(2).创建状态和终止状态

①进程的创建:

❶申请一个空白PCB;
❷向PCB中填写用于控制和管理进程的信息;
❸为进程分配运行时所必须的资源;
❹将进程转入就绪状态并插入就绪队列中;

②进程的删除:

❶将其PCB清零;
❷将该空白PCB返还系统 ;![在这里插入图片描述](https://img-blog.csdnimg.cn/bbd93d96e44140f6ab69f21126880527.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6Z2ZWXU=,size_20,color_FFFFFF,t_70,g_se,x_16)

4、挂起操作Suspend()和激活操作Active()

进程被挂起的原因:
①终端用户的需要 ① 活动就绪→静止就绪
②父进程请求 ➡ ②活动阻塞→静止阻塞
③负荷调节的需要 ③静止就绪→活动就绪
④操作系统的需要 ④静止阻塞→活动阻塞

以上是关于操作系统的进程管理的主要内容,如果未能解决你的问题,请参考以下文章

操作系统 王道考研2019 第二章:进程管理 -- 进程调度的时机(临界资源临界区)切换与过程调度方式调度算法的评价指标(CPU利用率,系统吞吐量周转时间等待时间响应时间)

操作系統-進程管理2(進程的互斥與同步)

(王道408考研操作系统)第二章进程管理-第三节5:用信号量实现进程互斥同步和前驱关系

进程管理-进程互斥

操作系统原理-概论运行机制

软考 系统架构设计师操作系统② 进程管理