进程同步与互斥

目录

 

一、进程同步

二、进程互斥的软件实现方法

三、进程互斥的硬件实现方法


一、进程同步

1.同步:进程之间协调工作次序而产生的的直接制约关系。

2.互斥:一个时间段内只允许一个进程使用的资源称为临界资源,临界资源的访问需要互斥进行,等待一个进程结束访问,释放资源才能有新进程访问。

             1>进入区:若可进入,设置访问临界资源的标志,防止其他进程进入。

             2>临界区:访问临界资源。

             3>退出区:解除访问临界资源的标志。

             4>剩余区:结束后的其他处理。

3.临界资源访问原则 空闲让进,忙则等待,有限等待,让权等待(不能进入就释放)。

二、进程互斥的软件实现方法

1.单标志法:进程访问完临界区后,将权限交给另一进程,即进程进入临界区权限只能被另一个进程赋予。声明 int turn=允许进入的进程号。

                      违背了“空闲让进”原则

2.双标志先检查法:设置布尔型数组,数组下标代表进程号,布尔值代表想进入临界区的意愿。进入前,先检查是否有其他进程想进入,若没有就进入,设置索引为true,完成后还原。

                     可能出现两进程同时访问的问题,违背了“忙则等待”原则。

3.双标志后检查法:先修改想进入状态true,在判断是否有其他进程想进入,使其他进程无法抢占进入。

                     违背了“空闲让进,有限等待”原则。在进程异步执行阶段,判断“进入区”阶段会发生冲突。

4.皮特森(peterson)算法:结合双标志法和但标志法,设置布尔数组代表进程和意愿,设置数字代表允许进入的进程号。同时满足意愿(true)与允许进入(为true的布尔下标=int)则进入临界区。 

                     过程:争取(boolean[index]=true)----谦让(int)----检查执行(while (boolean==true&& boolean_index==int ){执行;还原 true-->false})

                     遵循了空闲让进、忙则等待、有限等待原则。未遵循 让权等待 原则

三、进程互斥的硬件实现方法

1.中断屏蔽: 利用开关中断指令实现。关中断----临界区-----开中断

                     不适用于多处理机,只适用于操作系统内核进程,不适用于用户进程。

2.TestAndSet(TS),TestAndSetLock(TSL):利用硬件实现,不允许中断。

                     伪代码:
            

boolean TSL(boolean lock){
    boolean old=lock;
    lock=true;//上锁
    return old;//判断原始状态
}

3.Swap:伪代码:

Swap(boolean a,boolean b){
    boolean temp=a;
    a=b;
    b=temp;
}

TSL ,Swapd都是交换新旧状态,上锁后判断,适用于多处理机环境,不满足“让权等待”。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值