操作系统学习笔记2.2调度
文章目录
- 调度的概念和层次
- 七状态模型
- 总结
- 进程调度的时间,切换
- 调度方式
- 调度器和闲逛进程
- 调度算法的评价指标
- 调度算法
- 先来先服务
- 短作业优先
- 最短剩余时间优先算法
- 时间片轮转
- 优先级调度算法
- 多级反馈队列调度(Multilevel Feedback Queue Scheduling)
- 上下文切换
- 上下文切换的过程
- 上下文切换的类型
- 其它杂七杂八知识点
调度的概念和层次
七状态模型
总结
进程调度的时间,切换
调度方式
调度器和闲逛进程
调度算法的评价指标
利用率:CPU利用世家
系统吞吐量:总共完成作业/时间
周转时间:
等待时间:
调度算法
先来先服务
先后顺序
原理:按照进程到达的顺序来调度,先到达的进程先执行。
优点:简单易实现,公平性较好。
缺点:平均等待时间较长,容易发生“短进程等待长进程”的问题,导致“队头阻塞”现象。
有利于长作业,不利于短作业,CPU繁忙
短作业优先
比较谁作业时间短
原理:选择执行时间最短的进程优先执行,以最小化平均等待时间。
优点:可以减少平均等待时间,适用于批处理系统。
缺点:需要事先知道各进程的执行时间,不适合实时系统,容易导致长作业的饥饿。
最短剩余时间优先算法
谁先拉好屎谁占着坑位,时间长让出来。
时间片轮转
原理:为每个进程分配一个固定的时间片(Time Quantum),进程按顺序循环执行,每次执行不超过时间片的长度。
优点:适合时间共享系统,公平性好,每个进程都有机会执行。
缺点:如果时间片太长,算法会退化为FCFS;如果时间片太短,会导致频繁上下文切换,增加开销。
优先级调度算法
原理:每个进程被赋予一个优先级,优先级高的进程先执行。
分类:
抢占式:高优先级进程到来时,可以中断当前进程。
非抢占式:当前进程完成后,调度下一个优先级最高的进程。
优点:适合对任务重要性区分明显的场景。
缺点:可能导致低优先级任务饥饿,通常需要老化机制来解决。
多级反馈队列调度(Multilevel Feedback Queue Scheduling)
原理:结合优先级调度和轮转调度,进程首次进入系统时,优先级较高,随着时间推移优先级降低,且允许进程在不同队列之间移动。
优点:动态调整进程优先级,适应性强,可以防止饥饿问题。
缺点:调度机制复杂,参数设置影响算法效果。
上下文切换
上下文切换(Context Switching)是操作系统多任务处理中的一个重要概念,指的是在多任务系统中,CPU从执行一个进程切换到另一个进程的操作。
上下文切换的过程
-
保存当前进程的状态:操作系统保存当前运行进程的状态,包括CPU寄存器、程序计数器、内存管理信息等,以便稍后可以恢复该进程。
-
加载新进程的状态:操作系统从先前保存的某个进程的上下文信息中恢复数据,然后将这些数据加载到CPU中,准备执行新的进程。
-
恢复新进程的执行:恢复的进程开始从之前停止的地方继续执行。
上下文切换的类型
-
进程上下文切换:操作系统在两个不同的进程之间切换。每个进程拥有自己的地址空间,所以上下文切换需要保存和恢复更多的状态信息。
-
线程上下文切换:同一进程的不同线程之间切换,由于线程共享同一地址空间,所以只需切换部分状态(如寄存器、栈指针等)。