【操作系统学习笔记07】
以下是下面链接中教程的笔记,如有侵权请联系我删除。随便学学可能不严谨,但如果有离谱错误烦请指正。
https://www.bilibili.com/video/BV1YE411D7nH?p=19&vd_source=febdc1a8028af6b442667407286a2750
调度程序包含:调度算法(谁运行)、时间片大小(运行多久)
调度程序运行时间点:
- 创建新进程
- 进程退出
- 进程阻塞
- I/O中断发生
非抢占式进程调度仅在运行进程阻塞或退出时运行调度程序
有内核级线程的操作系统,调度程序处理对象是内核线程,否则是进程
闲逛进程:没有任务时运行
- 优先级最低
- 运行的指令占一个完整的指令周期,末尾会检查中断
- 资源消耗少(非常基本的功能)
调度算法评价指标
- CPU利用率 = 忙碌时间 / 总时间
- 系统吞吐量 = 总共多少道作业 / 总时间
- 周转时间 = 作业提交给系统到作业完成
- 带权周转时间 = 周转时间 / 实际运行时间 = (完成时间 - 提交时间) / 实际运行时间
- 等待时间 = 等待处理机状态时间和
- 响应时间 = 提出请求到首次产生响应的时间
- ...
早期批处理系统中的典型调度算法
不关心响应时间,交互式系统中体验较差
-
先来先服务
1.作业完成时调用
2.非抢占式(除非进程主动放弃处理机)
3.1.优点:公平,算法实现简单
3.2.缺点:短作业用户体验不好
4.不导致饥饿 -
短作业优先
1.作业完成时调用
2.1.非抢占式
2.2.抢占式版本:最短剩余时间优先(新进来的进程比当前运行的进程剩余时间短会抢占处理机),等待队列变化时调用
3.1.优点:短平均等待时间,短平均周转时间
3.2.缺点:长作业用户体验不好
4.可能导致饥饿 -
高响应比优先
1.作业完成时调用。每次调度时计算响应比:(当前等待时间+要求服务的时间)/ 要求服务的时间
2.非抢占式
3.优点:综合考虑
4.不导致饥饿
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)