- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第五的章 并发性:互斥和同步 浙江工业大学
并发性:互斥和同步 第五章 并发 (Concurrency) 多道程序设计技术、多处理器技术以及分布式处理技术使得操作系统设计时必须要面对多个进程并发的问题,设计时需要考虑下列问题: 并发进程间如何通信? 怎么解决资源的共享和竞争? 多个进程之间如何同步? 处理器的时间如何分配? 并发进程间的制约关系 在多道程序环境下,系统中各进程以不可预测的速度向前推进,进程的异步性会造成结果的不可再现性。为防止这种现象,异步的进程间推进受到两种限制: 1.资源共享关系 多进程共享资源,例如各进程争用一台打印机,这时各进程使用这台打印机时有一定的限制。每次只允许一个进程使用一段时间打印机,等该进程使用完毕后再将打印机分配给其它进程。这种使用原则称为互斥使用。 进程之间竞争资源面临三个控制问题: 互斥( mutual exclusion )指多个进程不能同时使用同一个资源; 死锁( deadlock )指多个进程互不相让,都得不到足够的资源; 饥饿( starvation )指一个进程一直得不到资源(其他进程可能轮流占用资源) 2.相互合作关系 在某些进程之间还存在合作关系,例如一个程序的输入、计算、打印三个程序段作为三个进程并发执行,由于这三个进程间存在着相互合作的关系,即先输入再计算、最后再打印的关系,所以这三个进程在并发执行时推进序列受到限制,要保证其合作关系正确,进程间这种关系称为同步关系。 一个简单的例子 void echo() { chin = getchar(); chout = chin; putchar(chout); } 一个简单的例子 Process P1 Process P2 . . chin = getchar(); . . chin = getchar(); . chout = chin; . putchar(chout); chout = chin; putchar(chout); 解决办法 控制访问共享资源。 必须强加一条规则:一次只允许一个进程访问共享资源。(互斥) 和并发相关的术语 临界资源 象打印机这类资源一次只允许一个进程使用的资源称为临界资源。属于临界资源的有硬件打印机、磁带机等,软件有消息缓冲队列、变量、数组、缓冲区等。当然还有一类象磁盘等资源,它允许进程间共享,即可交替使用,所以它称为共享资源,而临界资源又称独享资源。 临界区(critical sections) 多个进程共享临界资源时必须互斥使用,将程序中使用临界资源的那一段代码称为临界区。 如二个进程A和B它们的程序如下: A: { Input data 1 from I/O 1 ; Computer……; Print results 1 by printer ; A临界区 } B: { Input data 1 from I/O 2 ; Computer……; Print results 2 by printer ; B临界区 } 竞争条件 多个进程或线程在读写一个共享数据时,结果依赖于它们执行的相对时间,这种情形叫竞争。 例1: 两个进程p1和P2,共享同一个全局变量a。 P1和P2同时更新a,因此两个进程竞争地写变量a。a=? 例2:两个进程P3和P4,P3:b=b+c, P4:c=b+c (初始值b=1,c=2)。若P3先执行,则结果为b=3,c=5; 若P4先执行,则结果为 b=4,c=3 操作系统关注的问题 跟踪每个进程的信息:通过PCB 为进程分配和释放各种资源 处理器时间:进程调度 内存:内存管理 文件:文件系统 I/O 设备:I/O管理 保护进程的数据和资源,避免其他进程的干扰 一个进程的功能和输出结果必须与执行速度无关(进程同步机制) 多个进程的交互 进程间相互不知道对方:独立的进程,存在着资源竞争关系,会带来互斥、死锁和饥饿的问题 进程间通过共享对象间接知道对方:带来互斥、死锁、饥饿和数据一致性的问题 进程直接知道对方:进程间通过通信合作,会带来死锁和饥饿的问题 进程同步机制 进程在并发执行时为了保证结果的可再现性,各进程执行序列必须加以限制以保证互斥地使用临界资源,相互合作完成任务。 多个相关进程在执行次序上的协调称为进程同步。 用于保证多个进程在执行次序上的协调关系的相应机制称为进程同步机制。 所有的进程同步机制应遵循下述四条准则: 空闲让
文档评论(0)