天道酬勤,恒者能胜。追求卓越,成功就会在不经意间追上你。

操作系统进程管理之进程控制(四)

上一篇 / 下一篇  2012-05-09 00:39:30 / 精华(1) / 置顶(1) / 个人分类:Linux操作系统

进程是系统中活动的实体,进程控制包括进程的创建、撤销以及进程状态的转换。

1、 进程控制概述

a)        操作系统内核的定义:在现代操作系统设计中,往往把一些与硬件紧密相关的模块或运行频率较高的模块以及为许多模块所公用的一些基本操作安排在靠近硬件的软件层次中,并使它们常驻内存,以提高操作系统的运行效率,这就是操作系统内核。

b)       进程控制的职责:是对系统中所有进程实施有效的管理,其功能包括进程创建进程撤销进程阻塞与唤醒等。

c)        进程控制的原语:进程控制功能是通过执行各种原语实现的,原语是由若干条机器指令构成的一段程序,用以完成特定功能,这段程序在执行期间不可分割。

                       i.             进程创建原语:主要功能是创建一个新进程;

                     ii.             进程撤销原语:主要功能是撤销一个进程;

                   iii.             进程阻塞原语:主要功能是将进程由执行状态转变为阻塞状态;

                    iv.             进程唤醒原语:主要功能是将进程由阻塞状态转变为就绪状态;

                      v.             进程挂起原语:主要功能是将就绪、阻塞以及执行状态的进程挂起;

                    vi.             进程激活原语:主要功能是将挂起的进程激活

d)       进程图的定义:进程图又称为进程树或进程家族树,是描述进程家族关系的一颗有向树。结点就代表进程,通过一个结点可以生成多个结点,就是说一个进程可以创建多个子进程或者子子进程,树的根结点称为进程家族的祖先。

e)        进程的执行状态

                       i.             核心态:又称管态、系统态,是操作系统管理程序执行时机器所处的状态,这种状态具有较高的特权,能执行一切指令,访问所有的寄存器和存储区。

                     ii.             用户态:又称目态、是用户程序执行时机器所处的状态,这种状态具有较低的特权,只能执行规定的指令,访问指定的寄存器和存储区。

2、 进程创建原语

a)        引起进程创建的事件:

                       i.             调度新作业:作业一般保存在磁带或磁盘上,当作业调度程序选中某个作业时,便为该作业创建进程,分配必要的资源,然后将新创建的进程加入到就绪队列中;

                     ii.             用户登录:在交互式系统中,当用户登录进入系统时,操作系统要建立新进程,负责接收并解释用户输入的命令;

                   iii.             操作系统提供服务:当运行中的用户程序向系统提出某种请求时,操作系统会创建进程来完成用户程序所需要的服务功能;

                    iv.             应用请求:应用程序可以根据需要在本进程的基础上,创建子进程使其与父进程并发执行,以完成特定的任务。

b)       创建进程的过程:

                       i.             向系统申请一个空闲PCBProcess Control Block,进程控制块);

                     ii.             为新进程分配资源;

                   iii.             初始化新进程的PCB

                    iv.             将新进程的PCB插入就绪队列。

3、 进程撤销原语

a)        引起进程撤销的事件:

                       i.             进程正常结束:当一个进程完成其任务后,撤销该进程并释放所占的资源;

                     ii.             进程异常结束:进程运行期间,出现故障或错误,该进程被迫结束;

                   iii.             外界干预:操作人员或操作系统结束该进程。

b)       撤销进程的过程:

                       i.             从系统的PCB表中找到被撤销进程的PCB

                     ii.             检查被撤销进程的状态是否为执行状态,立即停止该进程,并设置重新调度标志,以便撤销该进程后,处理机可以调度其他的进程;

                   iii.             检查被撤销的进程是否有子孙进程,撤销其子孙进程;

                    iv.             回收该进程占有的全部资源并回收PCB表中的该PCB记录。

4、 进程阻塞与唤醒原语

a)        引起进程阻塞与唤醒的条件:

                       i.             请求系统服务:请求打印机的服务,而该打印机已经被占用;

                     ii.             启动某种操作并等待操作完成:进程启动I/O设备进行IO操作,而IO速度慢;

                   iii.             等待合作进程的协同配合:相互合作的进程需要同时满足条件;

                    iv.             系统进程无新工作可做:特定的进程。

b)       进程阻塞的过程:

                       i.             停止当前进程的执行;

                     ii.             保存该进程的CPU现场信息;

                   iii.             将进程状态改为阻塞,并插入到相应的队列中;

                    iv.             转进程调度程序,从就绪队列中选择一个新的进程投入运行。

c)        进程唤醒的过程:

                       i.             将被唤醒进程从相应的等待队列中移除;

                     ii.             将进程状态改为就绪,并将该进程插入就绪队列;

                   iii.             如果该进程优先级高,那么需要设置该进程的调度标志,以便处理机马上调度该进程。

d)       注意事项:一个进程由执行状态转变为阻塞状态,是这个进程自己调用阻塞原语去完成的,而进程由阻塞状态变为就绪状态,则是另一个发现者调用唤醒原语实现的,一般这个发现者进程与被唤醒的进程是合作的并发进程。

5、 进程挂起与激活

a)        引起进程挂起与激活的条件:

                       i.             系统有时可能出故障或某些功能受到破坏,需要挂起该进程,以便系统故障消除后,可以激活该进程为原来状态;

                     ii.             用户检查自己作业的中间执行情况和中间结果时,因同预期的结果不符而产生换衣,需要挂起程序,以便修正之后激活该进程为原来状态;

                   iii.             系统中有时可能符合过重,资源相对不足,从而造成系统效率下降,需要挂起进程,以便系统恢复正常后,可以激活该进程为原来状态;

                    iv.             有虚拟内存的操作系统中,可以将进程挂起虚拟内存中,以便需要的时候,直接从虚拟内存直接调入内存。

b)       进程挂起的过程:

                       i.             以进程标识符为索引,到PCB表中查找该进程的PCB

                     ii.             检查该进程的状态;

                   iii.             若状态为执行,则停止该进程执行并保护CPU现场信息,将该进程状态改为挂起就绪,则转进程调度程序,从就绪队列中选择一个新的进程;

                    iv.             若状态为活动阻塞,则将该进程状态改为挂起阻塞;

                      v.             若状态为活动就绪,则将该进程状态改为挂起就绪;

c)        进程激活的过程

                       i.             以进程标识符为索引,到PCB表中查找该进程的PCB

                     ii.             检查该进程的状态;

                   iii.             若状态为挂起阻塞,则将该进程状态改为活动阻塞;

                    iv.             若状态为挂起就绪,则将该进程状态改为活动就绪,如果该进程优先级比较高,转进程调度程序,让处理机优先执行该进程。

零测试


TAG: 零测试 操作系统 进程控制 进程创建 进程挂起 进程激活 进程阻塞 进程撤销

 

评分:0

我来说两句

Open Toolbar