null第三章 处理机管理第三章 处理机管理null 处理机管理是操作系统的主要功能之一,
处理机管理的实现策略决定了操作系统的类
型。
调度是操作系统的基本功能,是系统设计
的一个中心问
题
快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题
,CPU是计算机 最主要的调
度资源。
处理机调度可分为三级,即:
作业调度(高级调度)。
进程挂起与对换(中级调度)。
进程调度(低级调度)。 3.1 作业调度3.1 作业调度3.1.1 调度级别
调度:选出待分派的作业或进程。
处理机调度的主要目的就是为了分配处
理机。
作业从进入系统到最后完成,可能要经
历三级调度:高级调度、中级调度、低
级调度。 null高级调度:又称作业调度。基本功能是选择有权竞争CPU的作业。
中级调度:实际上就是存储器管理中的对换功能,目的是为了提高内存的利用率和系统吞吐量。
3) 低级调度 :又称进程调度。主要功能是根
据一定的算法将CPU分派给就绪队列中的
一个进程。执行低级调度功能的程序称做
进程调度程序,由它实现CPU在进程间的
切换。进程调度是操作系统最基本的一种
调度。 null3.1.2 作业状态
提交状态——用户向系统提交一个作业 时,该作业所处的状态。
后备状态——用户作业经输入设备送入输入井中存放,等待进入内存时所处的状态。
执行状态——作业分配到所需的资源,被调入内存,并且在处理机上执行相应的程序时所处的状态。
完成状态——作业完成了任务,最后由系统回收分配给它的全部资源,准备推出系统时的状态。
作业状态变迁:提交→后备→执行→完成null3.1.3 作业调度
1. 作业控制块JCBnull 2. 作业调度的功能
作业调度的主要任务是完成作业从后备状态到
执行状态和从执行状态到完成状态的转换。
作业调度的功能:
记录系统中各个作业的情况。
按照某种调度算法从后备作业队列中挑选作业。
为选中的作业分配内存和外设等资源。
为选中的作业建立相应的进程。
作业结束后进行善后处理工作。
作业概念主要用于批处理系统。3.2 进程调度3.2 进程调度3.2.1 进程调度的功能和时机
进程调度程序的完成进程状态从就绪 态
到运行态的转化。
1、进程调度的功能:
①保存现场 ②挑选进程 ③恢复现场
2、进程调度的时机:
①完成任务 ②等待资源 ③运行到时
④发现标志 null3.2.2 两级调度模型
作业调度和进程调度的区别:
作业调度是宏观调度,是为进程活动作准备,进程调度是微观调度,它使进程活动起来。
作业调度次数少,进程调度频率高。
有的系统不设作业调度,但进程调度比不可少。 null两级调度简化队列图作业调度和进程调度是CPU主要的两级调度3.3 调度性能的评价3.3 调度性能的评价3.3.1 选择调度算法时应考虑的主要因素
所用算法应保证实现系统的设计目标。
对所有作业或进程应公平对待,使每个进程能公平地共享CPU。
均衡使用资源,尽量使系统中各种资源都同时得到利用,提高资源的利用率。
兼顾响应时间和资源利用率。
基于相对优先级,但避免无限延期。
系统开销不应太大。null3.3.2 调度性能评价准则
CPU利用率。
吞吐量:单位时间内CPU完成作业的数量。
周转时间:从作业提交到作业完成的时间间隔。
作业 i 的周转时间 T i 为: T i = t c i - t s i
系统中 n 个作业的平均周转时间T 为:
带权周转时间 W = T / R
平均带权周转时间 W =
null4. 就绪等待时间。
5. 响应时间:从提交第一个请求到产生第一个响应所用的时间3.4 常用调度算法3.4 常用调度算法3.4.1 先来先服务法(FCFS)null3.4.2 时间片轮转法(RR)
考虑 A , B , C , D 四个进程依次“同时”进入就
绪队列,四个进程分别需要运行12 , 5 , 3 , 6 个时间
单位。下图给出时间片q=1和q=4时运行的情况。null时间片的大小对轮转法的性能有很大影响RR调度算法的性能null 时间片的长短由以下几个因素确定:
系统的响应时间:在进程数目一定时,时间片的长短直接正比于系统对响应时间的要求;
就绪队列进程的数目:当系统要求的响应时间一定时时间片的长短反比于就绪队列中的进程数;
进程的转换时间:若进程的转换时间为 t , 时间片为 q ,应使比值 t /q 不大于某一数值,如 1/10;
CPU运行指令速度: CPU运行速度快,时间片可以短些;反之,则应长些。null3.4.3 优先级法
进程调度时,当前就绪队列中有最高有
限级的进程获得CPU的使用权。
非抢占式优先级法。
抢占式优先级法。
进程优先级的确定:
内部决定优先级:利用某些可度量的量来定义一个进程的优先级。
外部决定优先级:按操作系统以外的标准设置的。null进程优先级的确定方式:
静态优先级:在创建进程时就确定下来,而且在进程的整个运行期间保持不变。
动态优先级:优先级随着进程的推进而不断改变。注:对于作业调度同样可采用优先级法。null3.4.4 其它调度算法简介
短作业优先法(SJF)
主要用于作业调度,是一种非抢占的策略。
最短剩余时间优先法
是短作业法的变型,采用抢占式策略。
多级队列法
各个队列之间通常采用固定优先级的抢占式调度。
多级反馈队列法
在多级队列法的基础上加进“反馈”措施。3.5 UNIX常用调度命令及命令执行过程3.5 UNIX常用调度命令及命令执行过程3.5.1 UNIX 系统中的进程调度
UNIX 系统的进程调度采用多级反馈队列轮转法。
系统核心动态调整用户态进程的优先级。
1. 调度时机:
进程调用sleep程序;
进程终止;
进程从系统调用返回到用户态时,它并不是最适宜运行的进程;
核心处理完中断后,进程回到用户态,但存在比它更适宜运行的进程。null 2. 调度算法:
进程调度是由 swtch 程序实现的。算法如下:
输入:无 输出:无
{ if (当前进程不是0#进程)
{ 保存当前进程的环境变量
恢复0#进程的运行环境 }
while (没有进程被选中执行)
{ for (所有在就绪队列中的进程)
选出优先级最高且在内存的一个进程;
if ( 没有合适进程可以执行) 机器作空转;
/* 当中断发生后,使机器摆脱空转状态 */
}
从就绪队列中移走该选中进程;
恢复选中进程的现场,令其投入运行;
} null优先级队列不可
中断可以
中断分界优先级用户态优先级核心态优先级图:
进程优先级的级别null 系统核心改变进程优先级的方式:
对核心态进程设置优先数:核心态进程因等待某一事件而调用sleep程序去睡眠时,核心根据该进程睡眠的原因,为它设置一个确定的优先数。
对用户态进程计算优先数:当系统调用执行结束,进程由核心态返回用户态以及进程正在用户态下运行时,核心通过计算方式来调整其优先数。
例:UNIX S_5系统进程优先级的计算null3.5.2 UNIX 常用调度命令
nohup命令
nohup命令的功能是以忽略挂起和退出的方
式执行指定的命令。
命令格式:nohup command [ arguments ]
at命令
at命令允许指定命令执行的时间
命令格式:at time command
batch命令
batch命令提交的作业的优先级比at命令提交的作业的优先级低。nulljobs 命令
jobs命令用来显示当前shell下正在运行哪些
作业。
5. fg命令
fg命令把指定的后台作业移道前台。
命令格式:fg [ job … ]
6. bg命令
bg命令可以把前台进程换到后台执行。
命令格式:bg [ job … ]null3.5.3 shell命令执行过程
在UNIX系统中,shell是用户与操作系统
之间的界面, shell命令语言解释程序以用户
态方式运行, 基本功能是解释并执行用户输
入的各种命令,实现用户与UNIX核心的接口。 shell命令执行过程:
读命令
判对错
建子进程
等待完成null子进程运行
子进程终止
父进程运行
发提示符
nullshell命令执行过程示意图