《操作系统原理教学课件》chapter3同步通信与死锁.ppt

《操作系统原理教学课件》chapter3同步通信与死锁.ppt

  1. 1、本文档共151页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
什么叫临界区(critical section) ? 在并发进程中,对共享变量操作的那段程序叫临界区。或把不允许多个并发进程交叉执行的一段程序称为临界区。 例一、 假设一个飞机定票系统有两个终端,分别运行进程T1和T2,由于T1和T2是两个可同时运行的并发进程。系统会出现何种情况. 其中Cobegin和Coend表示在它们之间的程序是并发执行的,交叉调用。 变量 X 表示系统中剩余的票数。 main( ) { Cobegin T1(x); T2(x); Coend } Void T1( x ) int x ; { read ( x ); if ( x = 1 ) then x = x -1; write ( x ); } 这两个进程按各自的速率执行,两种情况(交叉执行)。 第二种情况: 什么叫互斥? 一组并发进程中的一个或多个程序段,因共享某一公有资源而导致它们必须以一个不允许交叉执行的单位执行。即不允许两个以上的共享该资源的并发进程同时进入临界区称为互斥。 临界区的管理 计算机专家 Dijkstra 1968年提出临界区设计原则,即一组并发进程互斥执行时必须满足: ① 每次至多有一个进程处于临界区。 ② 当若干进程同时要求进入它们的临界区时,应在有限时间内使一进程进入临界区,它们不应相互堵塞而致使彼此不能进入临界区。 ③ 进程仅在临界区内逗留有限的时间。 3.1.2 进程互斥(mutual exclusion) 1.锁和上锁、开锁操作 当一个进程使用某个临界资源之前必须完成下列操作: 1、考察锁位的值; 2、若原来的值是为“0”,将锁位置为“1”; (占用该资源); 3、若原来值是为“1”,该资源已被别人占用),则转到第1步。 4、当进程使用完资源后,将锁位置为“0 ” ,称为开锁操作。 2. 用上锁原语和开锁原语实现互斥 假设有两个进程共享打 印机,两个进程中使用 打印机的程序段为临界 区。 为保证打印的正确,设 置打印机的锁位 print, 其初值为“0”,表示 打印机可打印。 3.1.3 信号灯和 P、V操作 1. 信号灯(semaphore)的概念 信号灯的概念是由Dijkstra提出的(1968)。 他把互斥的概念抽象到信号量这个概念中。 信号量是一个被保护的变量,只有P操作、V操作和一种称为信号量初始化操作才能访问和改变它的值。 信号灯的定义: 信号灯是一个确定的二元数组(s,q) s :是一个有非负初值的整型变量, q :是一个初始状态为空的等待队列。 S:代表资源的实体。在实际应用中应准确地说明s的意义和初值。 2 . P、V操作 信号灯的值仅能由P、V操作来改变。 对信号灯的P操作记为:P(S),P操作是一个原子操作。 对信号灯的V操作记为:V(S), V操作是一个原子操作。 在实际操作系统中,一般情况下是由机器硬件提供P、V操作的指令,当然是原子操作。若机器不提供P、V操作的指令,则操作系统提供P、V操作原语。 (1)s值减1; (2)若相减结果大于等于0,则进程继续执行; (3)若结果小于0,则该进程挂起。 注:挂起该进程包括:保留调用进程CPU现场;置“等待”状态;入等待队列;转进程调度; (1)s值加1; (2)若相加结果大于0,进程继续执行; (3)否则,唤醒一个等待该信号灯的进程,然后本进程继续执行。 3. 用信号灯实现进程互斥 用两个进程共享打印机的例子。 设信号灯print表示打印机,初值为1,表示打印机可用(也可理解为有一台打印机)。 print也可用于互斥的信号灯,设置为mutex。 3.1.4 进程同步(synchronism) 1 . 同步的例子 引例 1 :两位同学约好星期天去东湖,早上8:00在校门口,不见不散。 当一个同学先来到校门口,要等另一个同学,到齐后一道打的去东湖 在现实生活中,同步的例子是俯拾皆是。 例如,在一辆公共汽车上,司机的职责是驾驶车辆;售票员的工作是售票、开关车门,各有各的职责范围。但两者的工作又需要相互配合、协调。当汽车到站时,驾驶员将车辆停稳后,售票员才能将车门打开让乘客上下车,然后关车门,

您可能关注的文档

文档评论(0)

***** + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档