三层调度
内存调度是为了提高内存的利用率,系统将那些暂时不能运行的进程挂起来,当内存空间宽松时,再将其唤醒。
调度的时机
应该调度的情况:
1. 主动放弃:进程正常终止。运行过程中发生异常而终止。主动阻塞(如等待 I/O )。
2. 被动放弃:分给进程的时间片用完。有更紧急的事情需要处理(如 I/O 中断)。有更高优先级的进程进入就绪队列。
不能调度的情况:
1. 在处理中断的过程中。
2. 进程在操作系统内和程序临界区中。
3. 原子操作过程中(原语)
进程调度方式
1. 非抢占方式,即非剥夺调度方式。一旦把 CPU 分配给一个进程,该进程就会保持 CPU 直到终止。
2. 抢占方式,即剥夺调度方式。若有某个更为重要或紧急的进程需要使用处理机,则立即暂停正在执行的的进程,将处理机分配给更为重要或紧急的进程。
调度算法
先来先服务调度算法(FCFS)
算法规则:按照作业/进程到达的先后顺序进行服务。
是否可抢占:非抢占式。
优点:公平、算法实现简单。
缺点:对长作业比较有利,但对短作业不利。有利于 CPU