进程调度

作业的调度层次
一个作业从提交开始,往往要经历三次调度:高级调度,低级调度,中级调度。
1、高级调度:选择作业进入就绪队列或挂起就绪。调度执行频率很低,通常为几分钟一次,甚至更久。
2:进程调度(低级调度):选择哪个作业在cpu上运行(从就绪队列中选择一个进程并分配处理机:cpu),他是os种最基本的调度,调度频度非常高,一般几十毫秒一次,感觉不到,所以似乎像是独占cpu一样,常常采用非抢占(非剥夺)和抢占(剥夺方式),他也是引起进程调度的因素:1、进程正常终止或是异常终止 2、正在执行的进程因为某种原因而阻塞 3、在引入时间片的系统中,时间片用完
3、中级调度:暂时放在外存,有空间在放到内存
选择调度算法的原则:公平性:确保每个进程获得合理的cpu份额或其他资源份额,不会出现“饿死”现象
周转时间:从作业提交给系统开始,到作业完成为止的时间间隔(周转时间越短越好)
吞吐量:单位时间内处理的作业数目
周转时间/运行时间(cpu服务的时间)=带权周转时间(短较好,1是最好的)
平均周转时间用来衡量不同调度算法对同一作业流的调度性能
平均带权周转时间用来衡量同一个调度算法对不同作业流的调度性能,这两个值都是越小越好

作业和进程的关系:作业是任务实体,进程是完成任务的执行实体;
要完成任务首先要创建进程,没有作业任务,进程无事可做,没有进程,作业任务无法完成。
1、低级调度的主要功能
调度的程序两项任务:调度和分派
调度:实现调度策略,确定就绪进程/线程竞争使用处理器的次序的裁决原则
分派:具体地实现如何时分复用
2、进程调度的类型:
1、非抢占方式:一旦处理器分配给某进程后,便让进程一直执行,除非他完成或者是因为某个时间而被阻塞,才把处理机分配给其他进程
抢占方式:允许调度程序根据某种原则(时间片、优先权、短进程优先),停止正在执行的进程,而将处理机重新分配给另一进程

常见的调度算法:
先来先服务算法(FCFS):按照先后次序来分配的方法,一般采用非剥夺的调度方式
最短作业/进程优先算法:不可剥夺
最短剩余时间优先算法:
优先算法:R=作业周转时间/作业处理时间=1+w/T
w为等待时间 t为要求的cpu服务运行时间
时间片轮转调度算法:时间片用完后进程被抢占并插入就绪队列末尾
多级反馈队列调度算法:能满足各种用户 1.终端型 2.短批处理型作业用户 3.长批处理型作业用户
优先级调度算法:非抢占式优先级算法:优先级最高的进程后,进程一直执行下去
抢占式:也是分配给就绪中优先级最高的,但是遇到一个更高的优先级进程就换成优先级的执行。
静态优先数法:静态优先权是在创建进程时确定的,在整个运行期间不再改变。
动态优先数:在进程创建时创建一个优先数,但在其生命周期内优先数可以动态变化。如等待时间长优先数可改变
进程切换由进程状态变化引起的,而进程状态的变化又与出现中断事件有关

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值