|
知识路径: > 计算机系统知识 > 操作系统知识 > 基本概念 > 进程和线程 >
|
考试要求:熟悉
相关知识点:5个
|
|
|
|
|
(1)进程间的同步。一个进程相对于另一个进程的运行速度是不确定的,也就是说,进程是在异步环境下运行的。每个进程都以各自独立的、不可预知的速度向前推进。但相互合作的进程需要在某些确定点上协调它们的工作,当一个进程到达了这些点后,除非另一进程已经完成了某些操作;否则就不得不停下来等待这些操作结束。
|
|
|
(2)进程间的互斥。在多道程序系统中,各进程可以共享各类资源,但有些资源一次只能供一个进程使用,称为临界资源(Critical Resource, CR),如打印机、公共变量和表格等。同步是进程间的直接制约问题,互斥是进程间的间接制约问题。
|
|
|
|
信号量是一种解决进程同步与互斥的工具。主要有整型信号量、记录型信号量、信号量集机制。最常用的信号量是整型变量。
|
|
|
信号量可分为两类:一类是公用信号量,用于实现进程间的互斥,初值等于1或资源的数目;另一类是私用信号量,用于实现进程间的同步,初值等于0或某个正整数。信号量S的物理意义是:当S≥0时,表示某资源的可用数;当S<0时,其绝对值表示阻塞队列中等待该资源的进程数。
|
|
|
|
PV操作是实现进程同步与互斥的常用方法。PV操作是低级通信原语,在执行期间不可分割。其中,P操作表示申请一个资源,V操作表示释放一个资源。
|
|
|
P操作定义:S:=S-1,若S≥0,则执行P操作的进程继续执行;否则,若S<0,则置该进程为阻塞状态(因为无可用资源),并将其插入阻塞队列。
|
|
|
V操作定义:S:=S+1,若S>0,则执行V操作的进程继续执行;否则,若S≤0,则从阻塞状态唤醒一个进程,并将其插入就绪队列,执行V操作的进程继续执行。
|
|
|
利用PV操作实现进程互斥的方法为:令信号量mutex的初值为1,当进程进入临界区时执行P操作,退出临界区时执行V操作。
|
|
|
利用PV操作实现进程同步的方法为:用一个信号量与消息联系起来。当信号量的值为"0"时表示希望的消息未产生,当信号量的值为非"0"时表示希望的消息已经存在。假定用信号量S表示某条消息,进程可以通过调用P操作测试消息是否到达,调用V操作通知消息已准备好。最典型的就是单缓冲区的生产者和消费者的同步问题。
|
|
|