进程调度
1. 进程调度的任务 进程调度的主要有三项任务: (1) 保存处理机的现场信息 (2) 按某种算法选取进程 (3) 把处理器分配给进程
2. 进程调度机制 为了实现进程调度,在进程调度机制中,应具有如下三个基本部分:(1) 排队器;(2) 分派器;(3) 上下文切换器。
3. 进程调度方式 1) 非抢占方式(Nonpreemptive Mode) 在采用这种调度方式时,一旦把处理机分配给某进程后,就一直让它运行下去,决不会因为时钟中断或任何其它原因去抢占当前正在运行进程的处理机,直至该进程完成,或发生某事件而被阻塞时,才把处理机分配给其它进程。引起进程调度的因素有:①正在执行的进程运行完毕,或因发生某事件而使其无法再继续运行;②正在执行中的进程因提出I/O请求而暂停执行;③在进程通信或同步过程中,执行了某种原语操作,如Block原语。 优点:实现简单,系统开销小,适用于大多数的批处理系统。但是不能用于分时系统和大多数实时系统。
2) 抢占方式(Preemptive Mode) 这种调度方式允许调度程序根据某种原则,去暂停某个正在执行的进程,将已分配给该进程的处理机重新分配给另一进程。在现代OS中广泛采用抢占方式,这是因为:对于批处理机系统,可以防止一个长进程长时间地占用处理机,以确保处理机能为所有进程提供更为公平的服务。 在分时系统中,只有采用抢占方式才有可能实现人—机交互。在实时系统中,抢占方式能满足实时任务的需求。但抢占方式比较复杂,所需付出的系统开销也较大。