PALS2课本50页第20题 ■T/(T+取下整(T/Q)*S+S) T/T+S) T/T+S) ■T/(T+取上整(T/Q)*S) 50 0
2.课本50页第20题 ◼ T/(T+取下整(T/Q)*S+S) ◼ T/(T+S); ◼ T/(T+S); ◼ T/(T+取上整(T/Q)*S) ◼ 50% ◼ 0
3.下列解决互斥的方法各 PS盒有什么缺陷? 关中断 设置lock变量 Peterson算法
3.下列解决互斥的方法各 有什么缺陷? ◼ a) 关中断 b) 设置lock变量 c) Peterson算法
PS4 Sleep/Wake-up方法 如果简单采用 SLEEP/WAKE-UP方法 (课本P28图2-10)来实现生产者一消 费者问题,有可能导致生产者和消费者 同时处于睡眠状态。是什么原因导致了 这个缺陷?改用信号量的方法(课本P30 图2-11)能解决上述缺陷吗?若能,它 是怎样解决的?若不能,你认为如何改 进算法才能解决?
4.Sleep/Wake-up方法 ◼ 如果简单的采用SLEEP/WAKE-UP方法 (课本P28图2-10)来实现生产者-消 费者问题,有可能导致生产者和消费者 同时处于睡眠状态。是什么原因导致了 这个缺陷?改用信号量的方法(课本P30 图2-11)能解决上述缺陷吗?若能,它 是怎样解决的?若不能,你认为如何改 进算法才能解决?
PkL!cs5PV操作的问题 问题: 推广读写者问题中的消息缓冲处理。消 息缓冲区为k个,有m个发送进程,n个 接收进程,每个接收进程对发送来的消 息都必须取一次
5.PV操作的问题 问题: 推广读写者问题中的消息缓冲处理。消 息缓冲区为k个,有m个发送进程,n个 接收进程,每个接收进程对发送来的消 息都必须取一次
Type BufferType= record msg: MessageType count: integer; mutex: semaphore;{初值为l} empty: semaphore;{初值为l} full: array ln] of semaphore {初值全为0} End Ⅴ ar mutex: semaphore; {初值为1} s: integer;{初值为0} buff: array [ 0.k-1 of BufferType; k是缓冲区大小;n是接收进程个数} {m是发送进程个数,通过s进行“写互斥”}
Type BufferType = Record msg:MessageType; count:integer; mutex:semaphore; {初值为1} empty: semaphore; {初值为1} full: array [1..n] of semaphore; {初值全为0} End Var mutex: semaphore; {初值为1} s: integer; {初值为0} buff: array [0..k-1] of BufferType; { k是缓冲区大小; n是接收进程个数 } { m是发送进程个数,通过s 进行“写互斥” }