操作系统--进程管理

来源:互联网 发布:农村淘宝下载安装2017 编辑:程序博客网 时间:2024/04/30 08:00

操作系统–进程管理

进程概念

进程:申请资源和调度资源的基本单位,一个进程就是一个程序的一个运行过程。是一个动态的概念,在不同的操作系统中,会有不同的进程出现。

程序:静态概念,是指令和数据的集合,可长期存储。

进程与程序对应关系:
- 一个程序可以对应一个进程或者多个进程
- 一个进程可以对应一个程序,或者一段程序

进程结构

进程由程序,数据集合,进程控制块PCB(Process Control Block)
PCB,进程在创建的时候,同时创建。进程结束的时候,PCB删除。

进程状态转化

进程的状态:

  • 新状态:进程已经创建,但未被os接纳为可执行进程
  • 就绪状态:准备执行
  • 执行状态:占用处理机(单个处理机环境中,某一个时刻仅一个进程占用处理机)
  • 阻塞状态:等待某时间发生才能执行,如等待I/O完成等
  • 终止状态:因停止或取消,被os从执行状态释放

挂起概念

挂起:操作系统中将进程换出内存,我们将这称为进程的挂起。
五状态转换:

五状态队列模型调度:

进程控制

进程的两种执行模式:

系统模式(系统态):具有最高特权,运行系统特定的指令。
用户模式(用户态):较低的特权,用户一般运行在用户模式

进程切换和模式切换

进程切换:作用于进程之间的一种操作。当分派程序收回当前进程的CPU并准备把它分派给某个就绪进程时,该进程将被引用。
模式切换:是进程内部所引用的一种操作。当用户程序转入系统调用,或者相反时,该操作将被调用。

进程调度

进程调度:在一个队列中,按照某种方法(算法),选择一个合适的个体的过程。

调度目标

调度目标:公平性,处理机利用率,提高系统吞吐量,尽量减少进程的响应时间。

进程调度–面向系统原则

优先权

优先权:队列可以根据进程的优先权不同,组织不同的就绪队列。进程调度时,首先选择高优先权队列中的进程,当优先权高的队列没有进程的时候,在选择较低优先权的队列中的进程。

如图:

进程调度方式

剥夺方式

剥夺方式:时间片到了,进程被剥夺;有新的优先权高的进程插入。

非剥夺方式

非剥夺方式:执行进程只有在执行完毕,或者申请I/O阻塞自己时,才中断其执行,释放处理机,调入新进程。

进程调度类型

长程调度

长程调度 :又称为作业调度,它为被调度作业或用户程序创建进程,分配必要的系统资源,并将创建的进程插入就绪队列,等待短程调度。或者将新建的进程插入到就绪/挂起队列,等待中程队列。

中程调度

中程调度:内外存之间的对换功能的一部分。当内存空间紧张的时候,将内存中的进程换到外存挂起;当内存空闲的时候,将外存中挂起的进程换到内存。

短程调度

短程调度:也称为进程调度,即就绪队列中的哪个进程将获取处理机。

进程调度算法

先来先服务算法:(适合长程,中程,短程调度)

该方法按照进程到达的先后顺序排序,每次调度对首的进程。

短进程优先算法:(适用长程和短程调度)

当需要调度进程的时候,通过计算判定就绪队列中哪个进程的预期执行时间最短;哪个最短,就调度哪个。

时间片轮转调度法:(适用于短进程调度)

就是在相同时间片内,在各个进程之间的轮转调度的方式。

基于优先级的调度算法

为每个进程定义一个优先级,优先级越高的进程,将优先获取处理机的调度。(这个算法可以和上面的时间片轮转方法结合使用,相互完善)
静态优先级:一旦确定,则进程运行期间优先级一直不改变。
动态优先级:系统首先赋予进程一个初始优先级,该优先级将随着进程的运行而改变。(剩余时间最短者优先,响应比高者优先)

剩余时间最短者优先:进程的剩余时间越短,优先级越高
响应比高者优先:进程(预期执行时间)越长,优先级越低;而随着进程的等待时间越长,优先级越高

反馈调度算法

反馈调度算法是一种根据进程执行历史调整调度方式调度方法,它结合了时间片轮转调度思想。
调度顺序:首先将进程放到第一个就绪队列中。如果在这个队列中无法完成进程,将进程移动到下一个就绪队列中,等待执行。

问题为什么要在不同的队列中设置不同的时间片?
因为,没有在上一级队里中完成的进程,说明它的需要运行的时间比较多。我们将它放到下一级队列中,并提供较大的时间片,这样可以减少处理机内存的换进换出,提高系统效率。
问题当一个进程运行完毕后,需要从哪里调用新的进程?
从第一个就绪队列中,调用新的进程。调用新的进程的时候,我们选择优先级高的进程先调用。

0 0