读书人

操作系统原理札记(5)-进程控制

发布时间: 2012-07-31 12:33:46 作者: rapoo

操作系统原理笔记(5)-进程控制

操作系统原理学习笔记-进程状态转换

?

两状态:执行、未执行

进程获得处理机,进入执行状态;当时间片结束或其他某种原因,进程释放处理机,暂停执行,处于未执行状态

?

两状态进程模型:队列形式

并非所有进程只要 未执行 就处于就绪(ready),有的需要阻塞(blocked)等待I/O完成

未执行又可分为就绪和阻塞

?

进程基本状态:执行,阻塞,就绪

?

进程的五状态:执行,阻塞,就绪,新状态,终止状态

新状态:进程已经创建,但未被OS接纳为可执行进程。有一部分的资源还没得到。

就绪状态:准备执行,所有的资源都已经得到,只等待处理机。

执行状态:占用处理机(单处理机环境中,某一时刻仅一个进程占用处理机)

阻塞状态:等待某时间发生才能执行,如等待I/O完成等

终止状态:因停止或取消,被OS执行状态释放。出现异常或已经执行完成。

?

进程五状态的转换过程

空->新状态 新创建的进程首先处于新状态

新状态->就绪状态 当系统允许增加就绪进程时,操作系统接纳新建状态进程,将它变为就绪状态,插入就绪队列中。

就绪状态->执行状态 当处理机空闲时,将从就绪队列中选择一个进程执行,该选择过程称为进程调度,或将处理机分派给一个进程,该进程状态从就绪转变为执行

执行状态->终止状态 执行状态的进程执行完毕,或出现诸如访问地址越界,非法指令错误,而被异常结束,则进程从执行状态转化为终止状态。

执行状态->就绪状态 就绪状态 分时系统中,时间片用完或优先级高的进程到来,将终端较低优先级进程的执行,进程从执行状态转变为就绪状态,等待下一次调度。

执行状态->阻塞状态 执行进程需要等到某事件发生。通常,会因为进程需要的系统调用不能立即完成,如读文件,共享虚拟内存,等待I/O操作,等待另一进程与之通信等事件而阻塞。

阻塞状态->就绪状态 当阻塞进程等待的事件发生,就转换为就绪状态,进入就绪队列排队,等待被调度执行。

注意:某些系统允许父进程在任何情况下终止其子进程,如果一个父进程被终止,其子进程都必须终止

多进程竞争内存资源

内存资源紧张

无就绪进程,处理机空闲,I/O的速度比处理机的速度慢的多,可能出现全部进程阻塞等待

?

对换技术,交换技术(swapping)

将内存中暂时不能运行的进程,或暂时不用的数据和程序,换出到外存,以腾出足够的内存空间,把已具备运行条件的进程,或进程所需要的数据和程序,换入内存。进程被交换到外存,状态变为挂起状态。

进程挂起的原因

进程全部阻塞,处理机空闲

系统负荷过重,内存空间紧张

操作系统的需要,操作系统可能需要挂起后台进程或一些服务进程,或者某些可能导致系统故障的进程。

终端用户的请求。

父进程的需求。

被挂起进程的特征

不能立即执行

可能是等待某时间发生,若是,则阻塞条件独立于挂起条件,即使阻塞时间发生,该进程也不能执行。

使之挂起的进程为:自身,其父进程,OS

只有挂起他的进程才能使之挂起状态转换为其他状态。

挂起与阻塞

区分两个概念

进程是否等待事件:阻塞与否

进程是否被换出内存:挂起与否

4中状态组合:

就绪:进程在内存,准备执行

阻塞:进程在内存,等待事件

就绪/挂起:进程在外存,只要调入内存即可执行。

阻塞/挂起:进程在外存,等待事件

处理机可调度执行的进程有两种:

新创建进程

或换入一个以前挂起的进程,通常为避免增加系统负载,系统会换入一个以前挂起的进程执行。

具有挂起状态的进程状态转换

阻塞->阻塞挂起:OS通常将阻塞进程换出,以腾出内存空间

阻塞\挂起->就绪\挂起:当阻塞\挂起进程等待的事件发生时,可以将其转换为就绪\挂起

就绪->就绪\挂起:一般,OS挂起阻塞进程。但有时也会挂起就绪进程,释放足够的内存空间

新->就绪\就绪:新进程创建后,可以插入到就绪队列或就绪\挂起队列。若无足够的内存分配给新进程,则需要新->就绪\挂起

阻塞挂起->阻塞:当阻塞挂起队列中有一个进程的阻塞时间可能会很快发生,则可将一个阻塞挂起进程换入内存,变为阻塞。

执行->就绪挂起:当执行进程的时间片用完时,会转换为就绪,或,一个高优先级的阻塞挂起进程正好变为非阻塞状态,OS可以将执行进程转换为就绪挂起状态

所有状态->终止:通常执行->终止,但某些OS系统中父进程控制子进程的状态转换,可以直接有状态转换成终止。

?

2.3进程的控制

?

两种执行模式

系统模式、控制模式或内核模式

具有较高的特权

运行系统特定的指令,包括读写控制寄存器的指令,基本I/O指令以及与存储器管理有关的指令,以及一些特定的内存区

内核模式下的处理机及其指令,寄存器和内存都受到了完全控制和保护。

用户模式

具有较低的特权

用户程序一般运行在用户模式

模式切换

用户模式->系统模式:用户程序执行到一条系统调用,进入操作系统内核执行

系统模式->用户模式:执行完系统调用的功能,返回到用户程序。

特殊情况:程序执行到语句结束时,切换到系统模式,不再返回到用户程序。

?

操作系统内核:

是基于硬件的第一层软件扩充,提供操作系统最基本的功能,是操作系统工作的基础。

现在操作系统设计中,为减少系统本身的开销,往往将一些与硬件紧密相关的基本的,公共的运行频率较高的模块以及关键性数据结构独立开来,使之常驻内存并对他们进行特殊的保护,通常把这一部分称为操作系统内核。

用户通过系统调用访问操作系统的功能,这些功能最终都通过操作系统内核实现

不同的操作系统对内核的定义和功能范围的设定是不同的

一般地,操作系统内核的功能可以概括地划分为资源管理功能和支撑功能

资源管理:进程管理,存储管理和I\O设备

支撑功能:中断处理,统计,检测,时钟管理,原语操作等

?

资源管理功能

进程管理:进程创建和终止,调度,状态转换,同步和通信,管理PCB

存储管理:为进程分配地址空间,对换,段/页管理

I\O设备管理:缓存管理,为进程分配I/O通道或者设备

支撑功能:

中断处理

时钟管理

原语:原子操作

统计

监测

进程控制原语

进程切换

创建与终止

阻塞与唤醒

挂起与激活

?

读书人网 >操作系统

热点推荐