操作系统【进程同步】

同步机制应遵循的准则

1. 空闲让进。临界区空闲时,可以允许一个请求进入临界区的进程立即进入临界区。
2. 忙则等待。当已有进程进入临界区时,其他试图进入临界区的进程必须等待。
3. 有限等待。对请求访问的进程,应保证能在有限时间进入临界区,保证不饥饿。
4. 让权等待。当进程不能进入临界区时,应立即释放处理机,防止进程忙等待。

实现临界区互斥的基本方法

1. 单标志法。违背 “ 空闲让进 ”。
2. 双标志先检查。违背 “ 忙着等待 ”。
3. 双标志后检查。可能导致饥饿。
4. 皮特森算法。结合1、3,遵循了空闲让进,忙则等待,有限等待三个原则,但未遵循让权等待。

信号量机制

利用信号量实现进程互斥

互斥是不同进程对同一信号量进行 P、V 操作实现的。

semaphore S = 1;
P1() {
    ...
    P(S);   //准备开始访问临界资源,加锁
    进程 P1 的临界区
    V(S);   //访问结束,解锁
    ...
}

P2() {
    ...
    P(S);
    进程 P2 的临界区
    V(S);
    ...
}

利用信号量实现同步

例如:语句 x 执行完成后才能执行语句 y。要对 y 语句执行前进行上锁,即执行 P(S)

semaphore S = 0;

P1() {
    x;
    V(S); //解锁
    ...
}

P2() {
    ...
    P(S); //上锁
    y;
}

归纳:
1. 设置同步信号量 S ,初值为 0。

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值