问答题假定计算机系统有R1设备3台,R2设备4台,它们被P1、P2、P3和P4这4个进程所共享,且已知这4个进程均以下面所示的顺序使用现有设备。
→申请R1→申请R2→申请R1→释放R1→释放R2→释放R1→假定当前处于非抢占调度策略,进程只有两种方式可以放弃CPU:一个是主动调用系统调度函数sysnc(),此时进程主动放弃CPU;另一个方式是当进程执行I/O操作时,系统将调度下一个进程。试分析以下3种进程对,何时会出现不符合下列原则,并说明原因:
1)空闲则入。
2)有限等待。
3)保证互斥。
第一种:
Thread1(){
sysnc();
----critical section----
g=g+b;
f=g-a;
----critical section----
}
Thread2(){
----critical section----
g=g+b;
f=g-a;
----critical section----
}
第二种:
Thread1(){
sysnc();
----critical section----
g=g+b;
f=g-a;
----critical section----
}
Thread2(){
----critical section----
g=g+b;
f=g-a;
----critical section----
sysnc();
}
第三种:
Thread1(){
sysnc();
----critical section----
g=g+b;
fstring=printf(…); //调用I/O
f=g-a;
----critical section----
}
Thread2(){
sysnc();
----critical section----
g=g+b;
f=g-a;
----critical section----
}