习题
3.1论述长期、中期、短期调度之间的区别。
答:
1) 长期调度(又称作业调度)是从大容量存储设备(通常为磁盘)的缓冲池中选择进程,并装入内存以准备执行。长期调度程序执行得并不频繁,在系统内新进程的创建之间可能有数分钟的间隔,它主要用来控制内存中进程的数量。只有当进程离开系统后,才可能需要长期调度程序。当作业执行完毕时,长期调度还负责回收系统资源。在批处理系统中,需要有作业调度的过程,以便将它们分批地装入内存,在分时系统和实时系统中,通常不需要长期调度。
2) 中期调度(又称交换调度)的核心思想是能将进程从内存或从CPU竞争中移出,从而降低多道程序设计的程度,之后进程能被重新调入内存,并从中断处继续执行,这种交换的操作可以调整进程在内存中的存在数量和时机。其主要任务是按照给定的原则和策略,将处于外存交换区中的就绪状态或等待状态的进程调入内存,或把处于内存就绪状态或内存等待状态的进程交换到外存交换区。
3) 短期调度(又称CPU调度)从准备执行的进程中选择进程,并为之分配CPU。短期调度程序会频繁地为CPU选择新进程,通常每100ms至少执行一次。
3.2 描述内核在两个进程间进行上下文切换的过程。
答:
将CPU切换到另一个进程需要保存当前进程的状态并恢复另一个进程的状态,这一任务成为上下文切换。当发生上下文切换时,内核会将旧进程的状态保存在PCB中,然后装入经调度要执行的并已保存的新进程的上下文。进程上下文用进程的PCB表示,它包括CPU寄存器的值、进程状态和内存管理信息等。通常通过执行一个状态保存来保存CPU当前状态(不管它是内核模式还是用户模式),之后执行一个状态恢复重新开始运行。
3.4 使用图3.24所示的程序,说明LINE A可能输出什么。
答:
当控制回到父进程时,它的值会保持在5,而子进程将更新并拷贝这个值。
3.5下面设计的优点和缺点分别是什么?系统层次和用户层次都要考虑。
a.同步和异步通信
b.自动和显式缓冲
c.复制传送和引用传送
d.固定大小和可变大小消息
答:
a) 同步和异步通信:所谓同步通信,就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回。按照这个定义,其实绝大多数函数都是同步调用(例如sin, isd