1.描述一下内核在两个进程间进行上下文切换需要完成的工作。
进程间切换是CPU控制权从一个进程转到另一个进程的过程。这包括保存原进程的内容和装载新进程的内容。任何进程的数据都被保存在一个叫PCB(进程控制块)的数据结构中。典型数据有:进程状态、程序计数器、CPU寄存器、CPU时间分配信息、内存管理信息、计账信息和I/O状态等。
过程如下:
-
内核把旧进程的信息保存到PCB;
-
内核根据调度规则来决定哪个进程将要被执行,同时内核更新内部数据结构,这包括各种主要的队列。
-
内核为选定的进程装载PCB,并且把CPU寄存器的之值恢复到合适的状态。
-
新进程万一出现缺页情况,内核也必须从二级缓存装载一些页表或者装载一些内存页。
-
最后,内核会要CPU从刚才被中断的地方,继续执行新的进程。
2.
答案 :(2)a.因果变迁3→5会发生。当某个运行进程由于I/O请求而阻塞时,如果此时系统中不存在高优先级就绪进程而只存在低优先级就绪进程,则系统将选择一低优先级就绪进程投入运行。b.因果变迁6→4不会发生。发生4的原因只可能是时间片用完。c.因果变迁6→7不会发生。发生7的原因是进程在时间片用完前运行结束。
(3)(语言描述)调度策略:该系统的进程调度策略是多级队列调度策略,它将系统中的所有进程按照优先级的高低组织成高优先级和低优先级两个队列,两个队列均采用时间片轮转调度算法,但高优先级队列的时间片较短为100ms,低优先级队列的时间片较长为500ms,系统总是先调度高优先级队列上的进程,仅当该队列为空时,才调度低优先级队列上的进程。
调度效果:这种调度策略不仅体现了短进程优先的思想,同时也不会使长进程长期得不到处理,而且它还能较好地满足I/O型作业的需要。对每个进程来说,它总是先进入高优先级就绪队列,如果进程运行时间较短,则它便能以较小的周转时间完成;如果进程运行时间较长,则在运行100ms后它将进入低优先级就绪队列,而且当再次调度到该进程时,它的时间片将增大到500ms;如果是I/O型的进程,由于每次完成输入/输出工作后,它将进入高优先级的就绪队列,因此将被优先调度到,这将有效地提高系统中I/O设备的利用率和系统的吞吐量。
3.注意:
周转时间=(运行时间+等待时间)/运行时间
等待时间=完成时间-运行时间-到达时间(计算时间片轮转法RR的等待时间注意)