计算机操作系统-进程调度

进程调度机制

排队器:事先将系统中就绪进程按照一定策略拍成一个或多个队列 就是给就绪进程排一个队
分派器:根据进程调度程序所选定的进程 将选定进程从就绪队列中取出 成为下一个分配cpu的进程
上下文切换器:当进程a时间片结束要执行进程b时 会发生两对上下文的切换操作
1.把刚执行进程a的cpu寄存器内容(当前环境上下文)保存到进程a的进程控制块(PCB)相应单元(方便下次还原) 在装入分派程序(就是上面的分派器)的上下文 以便分派程序运行
2.移除分派程序的上下文 将进程b的进程控制块(PCB)相应单元的上下文装入到cpu的各个相应寄存器中(如果进程b有上下文的话)

进程调度方式

非抢占方式:
一旦处理机分配给某进程后 就一直让他运行下去 在发生阻塞或者执行完毕才会把处理机分配给其他进程
抢占调度方式:
根据某种原则去暂停正在执行的进程a 将已经分配给进程a的cpu分配给进程b
(基于时间片的)轮转调度算法:
让就绪队列上的每一个进程每一次仅允许一个时间片
系统根据先来先服务策略 将所有就绪进程排成一个就绪队列 设置一个时间片时间(例如20s)每个进程就执行一个时间片时间就中断 将cpu分给下一个进程
优先级调度算法:
非抢占式优先级调度算法:分配给优先级最高的进程 并且不能抢占
抢占式优先级调度算法:先分配给优先级最高的进程 当有进程新增进就绪队列时 进行优先级比较 如果此时新增进程高于当前允许进程优先级 则重新分配cpu给新的高优先级进程
多队列调度算法
将不同类型或性质的进程固定分配在不同的就绪队列 不同的就绪队列采用不同的调度算法,不同的优先级
能采用不同就绪队列的原因是:在多处理机操作系统中为每一个处理机都安排一个就绪队列 从而使每个处理机中都不会互相影响 每个处理机都可以有自己的调度策略
多级反馈队列
不必知道各种进程所需要好的执行时间还可以满足各进程的需求
设置多个就绪队列
第一个就绪队列中的优先级最高 但是时间片也最短 后面的就绪队列优先级逐个降低 时间片逐个增加
每个队列都用先来先服务算法 每个新进程进入内存时都放置第一队列队尾按先来先服务等待调度 如果进程执行时在规定时间片内执行完了就退出队列 如果没用执行完则将其转入第二队列的末尾 一此类推 知道进程完成
先会把第一队列中的进程时间片执行完才会执行第二队列中的程序
如果处理机正在执行第i队列中的某进程 此时又有新进程进入任意一个优先级更高的队列时 必须立即把正在运行的程序放回第i队列的末尾 去执行新来的那个进程
保证调度算法
他的保证是对性能的保证,做到调度的公平性
例如 如果在系统中有n个相同的进程同时运行 为公平起见,需要保证每个进程都获得象用的处理机时间1/n

实时调度算法没有看!!!!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值