第八章进程调度和时间 UNX是分时多进程操作系统,进程间的运行调度是整个 系统运行控制的最根本内容。 进程调度的基本方式: 把每一次硬件时钟中断称为一个时钟“滴答”,由若干 个时钟滴答构成一个时间片。 核心给每一个用户进程分配一个时间片,当该进程的时间 片用完后,核心抢先该进程并调度另外一个进程运行。一段 时间以后,核心又会重新调度该进程继续运行下去。以此方 式,核心让各个进程轮流运行。 核心进程的运行:或者运行在不可被抢先的状态下;或者 睡眠在某个中断级别上。 1
第八章 进程调度和时间 UNIX是分时多进程操作系统,进程间的运行调度是整个 系统运行控制的最根本内容。 进程调度的基本方式: 把每一次硬件时钟中断称为一个时钟“滴答”,由若干 个时钟滴答构成一个时间片。 核心给每一个用户进程分配一个时间片,当该进程的时间 片用完后,核心抢先该进程并调度另外一个进程运行。一段 时间以后,核心又会重新调度该进程继续运行下去。以此方 式,核心让各个进程轮流运行。 核心进程的运行:或者运行在不可被抢先的状态下;或者 睡眠在某个中断级别上。 1
8.1多级反馈循环调度算法 1、算法思想 核心给进程分配一个CPU时间片,抢先一个超过其时间片的 进程,并把它反馈到若干优先级队列中的某一个队列上。 当进程的上下文切换结束时,核心执行schedule_process 算法来调度一个进程,即从处于“在内存中就绪(状态3)”和 “被抢先(状态7)”状态的进程中,选取优先权最高的就绪进 程。 如果若干个进程都具有相同的最高优先权,则核心选择在“ 就绪”状态时间最长的进程。 如果没有可运行的合格进程,核心则休闲等待,直到下次中 断,下次中断最迟发生在下一个时钟滴答时。 2
8.1 多级反馈循环调度算法 1、算法思想 核心给进程分配一个CPU时间片,抢先一个超过其时间片的 进程,并把它反馈到若干优先级队列中的某一个队列上。 当进程的上下文切换结束时,核心执行schedule_process 算法来调度一个进程,即从处于“在内存中就绪(状态3)”和 “被抢先(状态7)”状态的进程中,选取优先权最高的就绪进 程。 如果若干个进程都具有相同的最高优先权,则核心选择在“ 就绪”状态时间最长的进程。 如果没有可运行的合格进程,核心则休闲等待,直到下次中 断,下次中断最迟发生在下一个时钟滴答时。 2
算法schedule_process 输入:无 输出:无 { while(没有能被选取运行的进程) for(就绪队列中的每个进程) 取已装入内存的、优先级最高的进程; f(没有合格运行的进程) 机器休闲;*下次时钟中断使机器脱离休闲状态,重新开始循环*/ } 将选取的进程从就绪队列中移出; 切换到被选取进程的上下文,恢复其执行; } 3
算法 schedule_process 输入:无 输出:无 { while (没有能被选取运行的进程) { for (就绪队列中的每个进程) 取已装入内存的、优先级最高的进程; if (没有合格运行的进程) 机器休闲; /* 下次时钟中断使机器脱离休闲状态,重新开始循环 */ } 将选取的进程从就绪队列中移出; 切换到被选取进程的上下文,恢复其执行; } 3
2、调度参数 核心态优先权 优先级 进程 进程对换 等待磁盘VO 中断 等待缓冲区 等待索引节点 等待tty输入 中断 等待tty输出 等待子进程退出 优先权阈值 用户级0 用户级1 :: 用户态优先权 用户级n 4
2、调度参数 4 核心态优先权 优先级 优先权阈值 用户态优先权 不可中断可中断 进程 进程对换 等待磁盘I/O 等待缓冲区 等待索引节点 等待tty输入 等待tty输出 等待子进程退出 用户级 0 用户级 1 用户级 n ……
核心在三种情况下计算进程的优先权: ①、核心给一个即将进入睡眠态的进程赋予一个特定的优先权。 越是等待系统紧俏资源的进程,获得的优先权越高。 ② 核心调整从核心态返回到用户态的进程的优先权。 一进程在核心态下运行时拥有的较高优先权,必须在返回 用户态时降低为用户级优先权。此外,该进程刚占用了宝贵的 CPU时间,为公平起见也需降低本进程的优先权。 ③、时钟中断处理程序每隔一个“时钟滴答”调整所有用户态进 程的优先权。 一核心运行调度算法,防止某个进程垄断CPU的使用。 5
核心在三种情况下计算进程的优先权: ①、核心给一个即将进入睡眠态的进程赋予一个特定的优先权。 —— 越是等待系统紧俏资源的进程,获得的优先权越高。 ②、核心调整从核心态返回到用户态的进程的优先权。 —— 进程在核心态下运行时拥有的较高优先权,必须在返回 用户态时降低为用户级优先权。此外,该进程刚占用了宝贵的 CPU时间,为公平起见也需降低本进程的优先权。 ③、时钟中断处理程序每隔一个“时钟滴答”调整所有用户态进 程的优先权。 —— 核心运行调度算法,防止某个进程垄断CPU的使用。 5