2019年全国计算机等级考试四级复习纲要:进程管理

  • 格式:docx
  • 大小:38.91 KB
  • 文档页数:3

2019年全国计算机等级考试四级复习纲要:进程管理
二、进程管理
1.程序、进程和处理器
程序是指令的集合,每一程序完成确定的任务。

在只允许一个程序
运行的系统(称为单道系统)中,这个程序独占系统资源,而系统按
程序的指令顺序运行,程序的顺序执行有两个基本特征,即程序的封
闭性和程序的可再现性。

封闭性是指程序运行时独占系统资源,只有
程序本身能改变系统的状态;可再现性是指程序运行不受外部因素影响,只要初始条件相同,运行结果就相同。

多道程序系统让多个程序在系
统中轮流运行,当一个程序不用处理器时,另一个程序就使用。

也就
是说,处理器在程序间切换,从而获得宏观上的并行(微观上的串行),以提升处理器的利用率。

这种切换,通常是由中断引起的。


为中断是以不可预测的次序发生,即程序的指令序列也以不可预测的
次序前进,这样就会产生操作系统的另一特性:不确定性。

即在多道
程序系统中,顺序程序的封闭性和可再现性消失了。

需要采用一个新
的概念———进程来描述程序的执行,进程是运行中的程序。

2.进程间的通信
在操作系统中,进程是能够独立运行的程序单位,系统中的各个进
程并不是相互隔离的:一方面它们相互竞争使用有限的资源,如处理器、存储器、设备或文件等;另一方面,它们可能相互协作以达到用户
作业预期的目的。

所以,进程之间需要某种形式的通信。

进程之间直
接发生联系的称为相交进程(又称相关进程),否则为不相交进程。

相交进程需要协调彼此间的相对运行速度,存有着直接制约的关系。

不相交进程之间的联系将表现在资源使用上的间接制约关系。

(1)互斥多道系统中,各进程能够共享各类资源,但有些资源却一
次只能供一个进程使用。

这种资源常常称为临界资源,如打印机、公
共变量、表格等。

互斥是要**临界资源在某一时刻只被一个进程访问。

(2)同步一般一个进程相对于另一个进程的速度是不可预测的,也
就是说,进程之间是异步运行的。

为了成功地协同工作,相关进程在
某些确定的点上理应同步它们的活动:一个进程到达了这些点后,除
非另一进程已完成了某个活动,否则就停下来,以等待该活动结束。

(3)死锁当若干进程竞争使用资源时,可能产生下述情况:每个进
程要求的资源都已被另一进程占用,于是也就没有一个进程能继续运行。

这种情况称为死锁。

3.信号量与P,V操作
用顺序程序设计技术处理同步与互斥是十分困难的,为此引入信号
量概念:信号量是一种特殊的变量,它的表现形式是一个整型变量及
相对应的队列:除了设置初值外,对信号量只能施加特殊的操作:P操作和V操作,P操作和V操作都是不可分割的原子运行,也称为原语(有时分别记为down()和up()或wait()和signal())。

P操作的作用是将信号量S的值减1,若S的值成负数,则调用P操作的进程暂停执行,直到另一个进程对同一信号量作V操作。

V操作的作用是将信号量S的值加1,若S的值小于等于0,从相对应队列(关于S的
队列)中选一个进程,唤醒它。

(1)互斥为了保护共享资源(如公共变量等),使它们不被多个进
程同时访问,就要阻止这些进程同时执行访问这些资源的代码段,这
些代码段称为临界区,这些资源称为临界资源。

对临界资源访问的互
斥要求可视作执行临界区的互斥要求。

利用信号量能够方便地实现互
斥临界区的管理要求。

例如,令信号量mutex的初值为1,于是临界区就改写成下列形式的代码段。

P(mutex);临界区V(mutex);因为mutex初值为1,P、V是原子操作,确实能够实现互斥。

(2)同步最简单的同步形式是:进程A在另一个进程B已到达点L2以前,不应前进到超过点L1。

对此,能够令信号量proceed初值为0,实现这种同步的程序形式是:进程A L1:P(proceed); … …进程
B L2:V(proceed); … …更复杂一点的同步问题是单缓冲的生产者、消费者问题。

4.高级通信原语
P、V操作是用来协调进程间关系的,编程较困难而且没有信息交换,故常称为低级通信原语。

此外,P、V操作必须有共享存储器,而高级
通信原语则提供两种通信方式:有缓冲区的通信和无缓冲区的通信。

(1)有缓冲区的通信方式中,有原语:
Write(Buffer_Name,Variable)等缓冲区空再存入
Read(Buffer_Name,Variable)等缓冲区满再取出
(2)无缓冲区的通信,又称为消息传递,有原语:
Send(Who,Message)发送消息给指定进程或一组进程
Receive(Who,Message)从约定进程接收消息有的系统还提供带
标记的发送,有Send(Who,Message,Tag)用Tag可指定发送进程是否要等待接收进程取到内容以后再继续运行。

一般接收者总是要等待
消息到达后才继续运行。