操作系统ch3进程同步
123页1、第三章 进程的同步与通信,进程互斥 信号量和、操作 进程同步 经典的进程同步问题 进程通信,1,进程互斥,基本概念 利用软件方法解决进程互斥问题 利用硬件方法解决进程互斥问题 用上锁开锁原语实现进程互斥,2,案例,与时间有关的错误: 一飞机订票系统,两个终端,运行T1、T2进程 T1 : T2: . . Read(x); Read(x); if x=1 then if x=1 then x:=x-1; x:=x-1; write(x); write(x); . .,3,基本概念(1),同步:对于进程操作的时间顺序所加的某种限制,如操作应在之前执行。 互斥:同步的特例,多个操作决不能同时执行, 如:操作和操作不能在同时执行。 (注意:理解不能同时执行的准确含义),4,基本概念(2),临界资源(critical resource):一次仅允许一个进程访问的资源。 如:进程共享一台打印机,若让它们交替使用则得到的结果肯定不是我们希望的。 临界资源可能是硬件,也可能是软件:变量,数据,表格,队列等。 并发进程对临界资源的访问必须作某种限制,否则就可能出与时间有关的错误,如:联网售票。,5,基本
2、概念(3),临界区(critical section):临界段,在每个程序中,访问临界资源的那段程序。 注意:临界区是对某一临界资源而言的,对于不同临界资源的临界区,它们之间不存在互斥。 如有程序段A、B是关于变量X的临界区,而C、D是关于变量Y的临界区,那么,A、B之间需要互斥执行,C、D之间也要互斥执行,而A与C、B与D之间不用互斥执行。,6,解决互斥的准则,为了禁止两个进程同时进入临界区内,可以采用软件办法或系统提供的同步机构来协调它们的关系。但是,不论用什么办法都要遵循下述准则: 1、当有若干进程欲进入它的临界区时,应在有限时间内使进程进入临界区。换言之,它们不应相互阻塞而致使彼此都不能进入临界区 2、每次至多有一个进程处于临界区。 3、进程在临界区内仅逗留有限的时间。,7,软件方法解决进程互斥,现在很少用软件方法解决互斥,但通过学习软件解法能使读者了解到,在早期进程互斥问题的解决并不是一件很简单的事。 假如有两个进程Pi和Pj,它们共享一个临界资源R。如何用软件方法使进程Pi和Pj能互斥地访问R。 下面介绍四个算法。,8,算法1,设整型变量turn,用于指示被允许进入临界区的
3、进程的编号,即若turn=i,表示进程Pi可进入。turn =j表示进程Pj可进入。,9,算法1的实现,进程Pi : Repeat While turni do no_op; Critical section turn:=j; Other code Until false;,10,算法1的问题,该算法可确保每次只允许一个进程进入临界区。但它强制两个进程轮流进入。如当Pi退出时将turn置为j,以便 Pj能进入,但Pj暂不需要进入,而这时Pi又需要进入时,它无法进入。这不能保证准则1。,11,算法2,设var flag:array01 of boolean,若flagi=true,表示进程Pi正在临界区内。flagi=false表示进程Pi不在临界区内。若flagj=true,表示进程Pj正在临界区内。flagj=false表示进程Pj不在临界区内。,12,算法2的实现,Pi进程: Repeat While flag j do no_op; flagi:=true; Critical section flagi:=false; Other code Until false;,13,算法2
4、的问题,该算法可确保准则1。但又出现新问题。当pi和pj都未进入时,它们各自的访问标志都为false。如果pi和pj几乎同时要求进入,它们都发现对方的标志为false,于是都进入了。 这不能保证准则2。,14,算法3,算法2 的问题在于:当进程Pi观察到进程Pj的标志为false后,便将自己的标志由false改为true,而正是在这两步之间,可能发生进程切换。当Pj运行时,它会观察到Pi的标志为false,从而可以将自己的标志设为true,并进入临界区。若在临界区的执行过程中发生了进程切换,Pi可能获得处理机而进入临界区。 在算法3 中,设var Flag:array01 of boolean,若flagi=true,表示进程Pi希望进入临界区内。若flagj=true,表示进程Pj希望进入临界区。,15,算法3的实现,Pi进程: Repeat flagi:=true; While flagj do no_op; Critical section flagi:=false; Other code Until false;,16,算法3的问题,该算法可确保准则2。但又出现新问题。它可能造
《操作系统ch3进程同步》由会员san****019分享,可在线阅读,更多相关《操作系统ch3进程同步》请在金锄头文库上搜索。
高中化学实验方案的设计第一节制备实验方案设计
高中生物实验室配置
高中体育与健康课程田径必修模块单元教学方案
高中通用技术方案的构思方法-设计分析教案苏教版必修
高中生物室配置
高中信息技术网络技术应用选修模块教学评价方案
骆小学教师戏曲知识培训方案(I)
麻村小学阳光体育活动计划及实施方案
高桥小学幼小衔接活动方案
马摆小学控辍保学实施方案
金阳街道中心小学未成年人思想道德建设实施方案
龙扬小学第32个爱国卫生月活动方案
魏家井联小学度控辍保学工作方案
高区第九届初中骨干教师课堂教学能力展示活动
长沙县2018年度小学生课外阅读知识竞赛及书目
阳江中心小学一月一事之五月主题活动方案
长营小学校园体育活动实施方案
高考历史备考方案-陈军
高考语文第5课父亲课前预案苏教版选修现代散文选读
高考语文第9课铃兰花课前预案苏教版选修现代散文选读
2024-04-11 25页
2024-04-11 37页
2024-04-11 28页
2024-04-11 31页
2024-04-11 36页
2024-04-11 29页
2024-04-11 22页
2024-04-11 27页
2024-04-11 34页
2024-04-11 32页