操作系统原理笔记(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通道或者设备
支撑功能:
中断处理
时钟管理
原语:原子操作
统计
监测
进程控制原语
进程切换
创建与终止
阻塞与唤醒
挂起与激活
?