二、操作系统进程管理(7)——进程互斥的软件实现方法:

本文详细介绍了进程互斥的四种软件实现方法:单标志法、双标志先检查、双标志后检查以及Peterson算法,分析了各自的主要问题和遵循的原则。例如,单标志法不遵循“空闲让进”原则,而Peterson算法可能导致“忙等”。
摘要由CSDN通过智能技术生成

4.进程互斥的软件实现方法:


    (1)单标志法:

        int turn = 0; //turn表示当前允许进入临界区的进程号。
P0进程:                    P1进程:
while(turn!=0);①            while(turn!=1);⑤       //进入区
critical section;②          critical section;⑥     //临界区
turn = 1;③                  turn = 0;⑦             //退出区
remainder section;④         remainder section;⑧    //剩余区

        分析:turn的初值为0,即刚开始只允许0号进程进入临界区。若P1先上处理机运行,则会一直卡在⑤。直到P1的时间片用完,发生调度,切换P0上处理机运行。代码①不会卡住P0,P0可以正常访问临界区,在P0访问临界区期间切换回P1,P1依然会卡在⑤。只有当P0退出区将turn改为1后,P1才能进入临界区。

        对于临界区的访问,一定是按照P0->P1->P0->P1->...轮流访问的。这种访问带来的问题是,如果P0一直不访问临界区,就算此时的临界区空闲,也不允许P1访问。


        算法思想:两个进程在访问完临界区后会把使用临界区的权限转交给另一个进程。每个进入临界区的权限只能被另一个进程赋予。
            在进入区只做检查,不"上

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值