第3题
假设当前处于非抢占调度策略,进程只有两种方式可以放弃CPU,一个是主动调用系统调度函数sysnc(),此时进程主动放弃CPU;另一个方式是当进程执行I/O操作时,系统将调度下一个进程。试分析如下三种进程对,何时会出现不符合下列原则,并说明原因: 1)空闲则人;2)有限等待;3)保证互斥。 第一种: Threadl(){ sysnc();—— ——critical section—— g=g+b; f=g—a; //临界区不能被打断 ——critical section—— } Thread2(){ ——critical section—— g=g+b; f=g—a; ——critical section—— } 第二种 Threadl(){ sysnc(); ——critical section—— g=g+b; f=g—a; ——criticaI section—— } Thread2(){ ——critical section—— g=g+b; f=g—a; ——critical section—— sysnc(); } 第三种; Threadl(){ 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—— sysnc(); }
第5题
在一个批处理系统中,有两个作业进程。有一作业序列,其到达时间及估计运行时间见表2-13。系统采用最高响应比优先调度算法(响应比=等待时间/估计运行时间)。作业进程的调度采用短作业优先的抢占式调度算法。
列出各作业的执行时间(即列出每个作业运行的时间片段,如作业i的运行时间序列为10:00~10:40,11:00~11:20,11:30~11:50结束)。
第8题
A.进程A的执行不能被中断,即临界区的代码具有原子性。
B.进程A的执行能被中断,但中断A后,不能将CPU调度给B进程。
C.进程A的执行能被中断,而且只要B进程就绪,就可以将CPU调度给B进程。
D.进程A的执行能被中断,而且只要B进程就绪,就必定将CPU调度给B进程。