Linux 进程管理 -------进程互斥和同步

进程的互斥和同步
进程的互斥概念:是指当有若干进程都要使用某一共享资源时,任何时刻最多允许一个进程使用,其他要使用该进程必须等待,直到点用该进程释放了该资源为止。

临界资源
操作系统中将一个次只允许一个进程访问的资源称为临界资源。

临界区:
把进程中访问临界资源的那段程序代码段称为临界区。为实现对临界资源的互斥访问,应保证诸进程互斥地进入各自的临界区,必须在临界区前面增加一段用于进行上述检查的代码,我们把这段代码段称为进入区(Entry Section);相就地,在临界区后面也要加上一段代码称为退出区(Exit Section) 的代码,用于将临界区正被访问的标志恢复为示被访问的标志。

同步机制就遵循的准则
(1)空闲证进。
(2)忙则等待。
(3)让权等待。
(4)有限等待。

进程同步
同步的概念:把异步环境下的一组并发进程因直接制约,使得各进种按一定的速度执行的过程称为进程间的同步。具有同步关系的一组并发进程称为合作进程,合作进程间互相发送信号称为消息或事件。

同步与互斥的关系
进程的同步与进程的互斥都涉及到并发进程共享资源的问题,进程的互斥实际上是进程同步的一种特殊情况。
有进也把进程的互斥与进程的同步统称为进程的同步。

信号量机制
(1)记录型信号量
struct semaphore
{
  int value;
  PCB *L;
}S;

(2)P、V原语操作
除了给信号量S初始化,信号量的数值域仅能由P、V原语操作改变(P和V分别是荷兰语Passeren和Verhoog的第一个字母,相当于英文的pass和Increment的意思)。

P原语操作的主要动作是:
(1)S.value减1;
(2)若S.value减1后仍大于或等于零,则进程继续扫行;
(3)若S.value减1后小于零,则该进程被阻塞,进入与该信号量相对应的等待队列L中,然后转进程调度。
P原语操作的功能见附件。

V原语操作的主要动作是:
(1)S.value加1;
(2)若S.value加1后结果大于零,进程继续执行;
(3)若S.value加1后结果小于或等于零碎,则从该信号量的等待列L中唤醒一个等待进程,然后再返回原进程继续执行或转进程调度
V原语操作的功能框图见附件。


进程互斥的同步实现
代码略,再写

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值