|
|
知识路径: > 计算机系统基础知识 > 软件基础知识 > 操作系统基础知识 > 处理机管理 > 进程管理 >
|
|
被考次数:29次
|
|
被考频率:
高频率
|
|
总体答错率:
42%
|
|
知识难度系数:
|
|
考试要求:
了解
|
|
相关知识点:17个
|
|
|
|
|
在操作系统中,多个进程并发执行,因此进程间必然存在资源共享和相互合作的问题。
|
|
|
|
一般情况下,一个进程相对于另一个进程的速度是不可预测的,也就是说,进程之间是异步运行的。为了成功地协同工作,有关进程在某些确定的点上应当保持同步:一个进程到达了这些点后,除非另一进程已经完成了某个活动,否则就停下来,等待该活动结束。
|
|
|
同步是指进程之间的一种协同工作关系,使这些进程相互合作,共同完成一项任务。进程间的直接相互作用构成进程的同步。同步机制应满足的基本要求是:有描述能力、可以实现、效率高、使用方便。
|
|
|
|
在多道系统中,各进程可以共享各类资源,但有些资源一次只能供一个进程使用。这种资源称为临界资源,如打印机、公共变量、表格等。互斥是要保证临界资源在某一时刻只被一个进程访问。
|
|
|
|
临界区是进程中对临界资源实施操作的那段程序。对互斥临界区管理的原则是:有空即进、无空则等、有限等待、让权等待。
|
|
|
|
信号量机制是一种有效的进程同步与互斥工具。目前主要有:整型信号量、记录型信号量、信号量集机制。
|
|
|
|
信号量是一个整型变量,根据控制对象的不同被赋予不同的值。信号量分为两类:公用信号量,实现进程间的互斥,初值为1或资源的数目;私用信号量,实现进程间的同步,初值为0或某个正整数。
|
|
|
信号量S的物理意义:S≥0表示某资源的可用数,若S<0,则其绝对值表示阻塞队列中等待该资源的进程数。
|
|
|
除了设置初值外,对信号量只能进行特殊的操作:P操作和V操作。P操作和V操作都是不可分割的原子动作,也称为原语,其中P操作表示申请一个资源,V操作表示释放一个资源。
|
|
|
P操作和V操作都是原语。利用信号量S的取值表示共享资源的使用情况。在使用时,把信号量S放在进程运行的环境中,赋予其不同的初值,并在其上实施P操作和V操作,以实现进程间的同步与互斥。
|
|
|
|
P(S):①S=S-1;②若S<0,则该进程进入S信号量的队列中等待。
|
|
|
V(S):①S=S+1; ②若S≤0,则释放S信号量队列上的一个等待进程,使之进入就绪队列。
|
|
|
当S>0时,表示还有资源可以分配;当S<0时,其绝对值表示信号量等待队列中进程的数目。每执行一次P操作,意味着要求分配一个资源;每执行一次V操作,就意味着释放一个资源。
|
|
|
|
令信号量mutex的初值为1,进入临界区时执行P操作,退出临界区时执行V操作,于是临界区就改写成下列形式的代码段:
|
|
|
|
由于mutex初值为1, P、V是原子操作,可以实现互斥。
|
|
|
|
P操作和V操作是用来协调进程间关系的,编程较困难、效率低,而且没有信息交换,故常称为低级通信原语。交换的信息量多时要引入高级通信原语,进程高级通信的类型主要有如下几种。
|
|
|
(1)共享存储系统:相互通信的进程共享某些数据结构或存储区,以实现进程之间的通信。
|
|
|
(2)消息传递系统:进程间的数据交换以消息为单位,程序员直接利用系统提供的一组通信命令(原语)来实现通信,如Send(A)、Receive(A)。
|
|
|
(3)管道通信:所谓管道,是指用于连接一个读进程和一个写进程,以实现它们之间通信的共享文件(pipe文件)。向管道(共享文件)提供输入的发送进程(即写进程),以字符流的形式将大量的数据送入管道;而接收进程可从管道接收大量的数据。由于通信是采用管道的方式,所以叫管道通信。
|
|
|