1、,睡眠理发师问题,Process customer P(seat) ; V(customers); /向理发师发信号wait_for_haircut(); ,睡眠理发师问题 方法1,Var customers,seat: Semaphore:=0, 5,Process barber While(1)P(customers); /接收顾客信号Cut_hair();V(seat); ,Process customer P(seat) ; V(customers); /向理发师发信号P(barbers); /接收理发师信号V(seat);Get_haircut(); ,Var customers,b
2、arbers,seat: Semaphore:=0,0,5,Process barber While(1)P(customers); /接收顾客信号V(barbers);/向顾客发信号Cut_hair(); ,Process customer P(mutex);If (waitingCHIRS) then waiting=waiting+1;V(customers); /向理发师发信号V(mutex);P(barbers); /接收理发师信号Get_haircut();elseV(mutex); ,睡眠理发师问题 方法3,#define CHIRS=5 Var customers,barber
3、s,mutex: Semaphore:=0,0,1 int waiting=0;,Process barber While(1)P(customers );/接收顾客信号P(mutex);waiting=waiting-1;V(barbers);/向顾客发信号V(mutex);Cut hair(); ,练习,吸烟者问题(1971,Patil):在一个房间内有三位吸烟者、一位材料供应者。其中: a) 吸烟者: 需要拥有三种材料“烟草(Tobacco)、卷烟纸(Cigarette-paper)、火柴(Match)”才能吸烟: 第一位吸烟者有丰富的烟草; 第二位吸烟者有丰富的卷烟纸; 第三位吸烟者有
4、丰富的火柴; ; 当吸烟者拿到所需要的材料后,唤醒供应者进行下一次投放; b) 材料供应者:不吸烟,且有丰富的Tobacco、Cigarette-paper、Match三种材料; 每次随机地将三种材料中的两种投放到桌子上; 允许拥有另一种材料的吸烟者吸烟。 【要求】编写算法用信号量和P、V操作实现它们之间的同步关系。,(第三章 进程管理)小结,顺序执行和并发执行 进程:相关概念;(与程序比较);静态表示(上下文,包括PCB),动态表示(状态) 进程控制:状态转换(注意:挂起和激活) 互斥和同步:临界资源、临界区;信号量、PV操作;经典同步问题、同步问题;管程 进程间通信IPC:基本概念;三种通信方式;直接、间接方式 死锁问题:原因,条件,解决方法;银行家算法 线程:引入原因,与进程比较 处理机调度:分为几个层次(作业调度、中级调度、进程调度);评价调度算法的指标;调度算法各自的特点;采用不同的算法计算进城的周转时间、调度顺序等;实时调度概念、常见算法,