进程同步(一)——进程同步相关概念

进程同步的原因

在OS中引入进程后,虽然提高了资源的利用率和系统吞吐量,但是由于进程的异步性将会给系统造成混乱,尤其是他们在争抢临界资源时。当多个进程去争用共享变量、表格、链表时,可能导致数据处理出错。进程同步的任务就是对多个相关进程在执行次序上进行协调,使得并发执行的进程之间能有效地共享资源和相互合作,从而使程序的执行具有可再现性。

有关进程同步的一些概念

1. 两种形式的制约关系

在多道程序环境下,当程序并发执行时,由于资源共享和进程合作,使得同一个系统的多个进程之间可能存在两种形式的制约关系:

(1) 间接相互制约关系

同处于一个系统中的进程,通常都共享着某种系统资源,如共享CPU、I/O设备等。间接相互制约源于这种资源共享。如打印机资源,一个进程占用时,另一个进程只能阻塞等待。

(2) 直接相互制约关系

这种制约关系主要源于进程间的合作。比如进程B处理数据,进程A通过单缓冲向进程B提供数据。当缓冲空或者已满时,就会分别对进程B和进程A造成影响。

2. 临界资源

比如许多硬件资源,如打印机等都属于临界资源。进程间应该采取互斥方式实现对这种资源的共享。如生产者—消费者问题中两者之间设置的缓冲池就应该使用互斥方式实现共享。

3. 临界区

无论是硬件临界资源还是软件临界资源,多个进程必须互斥地对它进行访问。每个进程中访问临界资源的那段代码称为临界区。临界区前有一段检查是否能够进入临界区的代码,成为进入区,相应地,在临界区后面也要加一个退出区。除了临界区、进入区和退出区之外的其他代码相应地被成为剩余区

可以把一个访问临界资源的循环这样描述:

repeat
    entry section;
    critical section;
    exit section;
    remainder section;
until false;

4. 同步机制应该遵循的原则

(1) 空闲让进。当无进程处于临界区时,表明临界资源处于空闲状态。这用情况下,应该允许一个请求进入临界区的进程立即进入自己的临界区,以有效地利用临街资源。

(2) 忙则等待。当已有进程进入临界区时,表明临界资源正在被访问。此时其他试图进入临界区的进程必须等待,以保证对临界资源的互斥访问。

(3) 有限等待。要求访问临界资源的进程应该保证在有限时间内进入自己的临界区,以免进入“死等”状态。
(4) 让权等待。当进程不能进入自己的临界区时,应该立即释放处理机,以免陷入“忙等”状态。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值