用c语言描述进程的同步与互斥,进程同步、互斥及实现方法

本文介绍了进程同步和互斥的概念,以及在C语言中实现进程互斥的几种方法,包括单标志法、双标志先检查法、双标志后检查法、Peterson算法,同时探讨了各种方法的优缺点和适用场景。
摘要由CSDN通过智能技术生成

1 进程同步

回顾进程的特征:动态性、并发性、异步性、独立性、结构性。

由于进程的异步性,各个进程按各自独立的、不可预知的速度向前推进,例如下面两段伪代码:

P0进程

{

代码1; ............1

代码2; ............2

代码3; ............3

}

P1进程

{

代码4; ............4

代码5; ............5

代码6; ............6

}

如P0进程先获取到CPU执行权,先执行了代码1,之后切换到P1进程,执行了代码4、5、6,之后再切换到P0进程,执行了代码2和代码3。

如果P0进程先获取到CPU执行权,可能先执行了代码1、2,之后切换到P1进程,执行了代码4和代码5....

由于进程间的切换,导致了进程以不可预知的速度(顺序)执行。

举个例子,在进程通信中有一种通信方式——管道通信。在读写进程并发的条件下,由于读写进程执行的先后顺序是不确定的,但是实际要求必须按照先写再读顺序。

6526078a1fab

所以为了能够实现上述的需求,操作系统就需要提供“进程同步机制”。

同步亦称直接制约关系,它是指为完成某种任务而建立的两个或多个进程,这些进程因为需要在某些位置上协调它们的工作次序而产生制约关系。

2 进程互斥

6526078a1fab

临界资源:是指一个时间段内只允许一个进程使用的资源。许多物理设备(如摄像头、打印机)都是属于临界资源。此外,很多变量,数据、内存缓冲区都是临界资源。

对临界资源的访问,必须互斥的进行。进程互斥指一个进程访问某个临界资源时,另一个进程想要访问这个临界资源必须要等当前访问临界资源的进

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值