进程调度总结

1 进程调度指标

周转时间

T 周转时间 = T 完成时间 − T 到达时间 T_{周转时间}=T_{完成时间}-T_{到达时间} T周转时间=T完成时间T到达时间

响应时间

T 响应时间 = T 首次运行 − T 到达时间 T_{响应时间}=T_{首次运行}-T_{到达时间} T响应时间=T首次运行T到达时间

2 进程调度算法

先进先出 FIFO

最短任务优先 SJF

最短完成时间优先 STCF

轮转 RR

3 多级反馈队列 MLFQ

基本概念

(1) 多个独立队列,具有不同的优先级;

(2) 任何时刻,一个工作只能存在于一个队列中;

(3) 优先执行较高优先级队列中的工作;

(4) 每个队列中的工作具有同样的优先级,使用轮转调度;

关键

如何设置和调整优先级

一种设计方案

(1) 如果A的优先级>B的优先级,运行A;

(2) 如果A的优先级=B的优先级,轮转运行A和B;

(3) 工作进入系统时,放在最高优先级队列;

(4) 一旦工作用完了其在某一层的时间配额,就降低其优先级;

(5) 经过一段时间,就将系统中的所有工作重新加入最高优先级队列;

4 多处理器调度

区别

与单CPU调度的区别在于:

(1) 对硬件缓存的使用

(2) 多处理器之间共享数据的方式

缓存一致性

总线窥探:每个缓存都通过监听链接所有缓存和内存的总线,来发现内存访问。如果一个CPU发现其本地缓存中的数据在其他CPU缓存或内存中更新,作废或更新其本地缓存。

缓存亲和度

由于缓存,一个进程保持在一个CPU上执行会更快。

单队列多处理器调度 SQMS

所有CPU共用一个调度队列。

缺点:

(1) 缺乏可扩展性。需要加锁保证队列的原子性,存在性能损失。

(2) 缓存亲和度难以保证。

多队列多处理器调度 MQMS

每个CPU拥有一个自己的调度队列。

缺点:负载不均。

解决方案:通过工作窃取进行跨CPU迁移,达到负载均衡。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值