- 1、本文档共136页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
操作系统原理
第二章 进程管理
第三节 进程同步
§ 主要内容
§ 进程同步的概念
§ 临界资源与临界区
§ 信号量机制
§ 管程机制
§ 典型的进程同步问题
1、进程同步的概念
§ 多道系统与多任务系统——程序的并发执
行——程序执行失去封闭型—— 引入进程的
概念——使得多进程能够并发执行并能够保
证运行环境封闭与进程的独立性—— 问题:
§ 如何进行资源共享?
§ 解决办法 (1)排队,有共享资源控制访问—
— 需要专门的守护进程,增加了开销
§ (2 )由用户进程控制访问——互
斥
1、进程同步的概念
§ 先看一个例子:进程P1、P2公用一个变量
COUNT ,初始值为0
当P1完成COUNT =1, 交错执行,进程执行完
当P2完成,COUNT =2 成后,COUNT =1
1、进程同步的概念
§ P1、P2两个进程的执行顺序是随机的,P1、
P2可能顺序执行或交错执行。 由图可见,不
同的执行顺序,COUNT值会不同,这是不允
许的。出现这种现象的原因,在于在一个进
程执行过程中,该进程能够修改的全局变量
如 COUNT应该不允许其他进程修改。即在
进程P1执行前,必须保证在P1执行过程中没
有其他进程修改COUNT 的值
1、进程同步的概念
§ 进程运行中的两种制约关系
§ 由于竞争资源形成的间接制约关系;
§ 由于相互合作造成的直接制约关系;
§ 进程同步指多个相关进程在执行次序上的协
调
2、临界资源与临界区
§ 临界资源(critical source)
• 在一段时间内只允许有限个进程访问的资源 ,如
打印机等I/O设备,缓冲区等
§ 临界区(critical section)
• 每个进程中访问临界资源的那段代码 ,被称之为
进程的临界区
§ 可把一个访问临界资源的循环进程描述如下:
2、临界资源与临界区
§ repeat
§
§ critical section;
§
§ remainder section;
§ until false;
2、临界资源与临界区
§ 同步机制应遵循的规则
§ 空闲让进;
§ 忙则等待;
§ 有限等待;对要求进入临界区的进程,应在
有限时间内使之进入,以免陷入 “死等”。
§ 让权等待;对于等待进入临界区的进程而言,
它必须立即释放处理机,以免进程 “忙等”
2、临界资源与临界区
§ 例:生产者-消费者问题
• 有一个或多个生产者生产某着类型的产品
(数据、记录、字符等等),并放置在缓冲区中;
有一个或多个消费者从缓冲区中取数据,每次取
一项;系统保证对缓冲区的操作是互斥进行的,
即每次只有一个进程能够访 问缓冲 区。
• 其中:缓冲区是临界资源,而访问缓冲区的代码
是临界区
3、信号量机制
§ 引例:生产者-消费者问题
§ 分析:首先需要定义产品的类型,缓冲区的
长度,读写指针,资源变量counter。
§ Int n;
§ Int in,out;
§ Structure item;
§ Item buffer[n];
§ Int counter;
3、信号量机制
§ Void procedure(){
§ while(true){
§ 生产一个产品放入 nextp;
§ while(counter n){no-op;}
§
文档评论(0)