🏳️🌈个人网站:code宝藏 👈,欢迎访问🎉🎉
🙏如果大家觉得博主写的还不错的话,可以点点关注,及时获取我的最新文章
🤝非常感谢大家的支持与点赞👍
📚笔记整理自小林coding的《图解系统》,作者写的很不错,我自己整理一下方便后期复习
进程调度
1、先来先服务调度算法
先来后到,每次从就绪队列选择最先进⼊队列的进程,然后⼀直运⾏,直到进程退出或被阻塞,才会继续从队列中选择第⼀个进程接着运⾏
2、最短作业优先调度算法
优先选择运⾏时间最短的进程来运⾏,这有助于提⾼系统的吞吐量
3、⾼响应⽐优先调度算法
该算法是对先来先服务调度算法和短作业优先调度算法的一种综合平衡,同时考虑每个作业的等待时间和估计的运行时间。
每次进⾏进程调度时,先计算「响应⽐优先级」,然后把「响应⽐优先级」最⾼的进程投⼊运⾏
4、时间⽚轮转调度算法
每个进程被分配⼀个时间段,称为时间⽚(Quantum),即允许该进程在该时间段中运⾏
- 如果时间⽚⽤完,进程还在运⾏,那么将会把此进程从 CPU 释放出来,并把 CPU 分配另外⼀个进 程;
- 如果该进程在时间⽚结束前阻塞或结束,则 CPU ⽴即进⾏切换
5、最⾼优先级调度算法
从就绪 队列中选择最⾼优先级的进程进⾏运⾏,这称为最⾼优先级(Highest Priority First,HPF)调度算法
6、多级反馈队列调度算法
多级反馈队列(Multilevel Feedback Queue)调度算法是「时间⽚轮转算法」和「最⾼优先级算法」的 综合和发展
-
「多级」表示有多个队列,每个队列优先级从⾼到低,同时优先级越⾼时间⽚越短。
-
「反馈」表示如果有新的进程加⼊优先级⾼的队列时,⽴刻停⽌当前正在运⾏的进程,转⽽去运⾏优 先级⾼的队列;
内存页面置换算法
1、最佳页面置换算法(OPT)
置换在「未来」最⻓时间不访问的⻚⾯。该算法实现需要计算内存中每个逻辑⻚⾯的「下⼀次」访问时间,然后⽐较,选择未来最⻓时间不 访问的⻚⾯
2、先进先出置换算法(FIFO)
选择在内存驻留时间很⻓的⻚⾯进⾏置换,这个就是「先进先出置换」算法的思想
3、最近最久未使⽤的置换算法(LRU)
发⽣缺⻚时,选择最⻓时间没有被访问的⻚⾯进⾏置 换,也就是说,该算法假设已经很久没有使⽤的⻚⾯很有可能在未来较⻓的⼀段时间内仍然不会被使⽤。
这种算法近似最优置换算法,最优置换算法是通过「未来」的使⽤情况来推测要淘汰的⻚⾯,⽽ LRU 则是 通过「历史」的使⽤情况来推测要淘汰的⻚⾯。
缺点:
为了完全实现 LRU,需要在内存中维护⼀个所有⻚⾯的 链表,最近最多使⽤的⻚⾯在表头,最近最少使⽤的⻚⾯在表尾。在每次访问内存时都必须要更新「整个链表」。在链表中找到⼀个⻚⾯,删除它,然后把它移 动到表头是⼀个⾮常费时的操作
4、时钟⻚⾯置换算法(LOCK)
把所有的⻚⾯都保存在⼀个类似钟⾯的「环形链表」中,⼀个表针指向最⽼的⻚⾯
5、最不常⽤算法
当发⽣缺⻚中 断时,选择「访问次数」最少的那个⻚⾯,并将其淘汰。
它的实现⽅式是,对每个⻚⾯设置⼀个「访问计数器」,每当⼀个⻚⾯被访问时,该⻚⾯的访问计数器就 累加 1。在发⽣缺⻚中断时,淘汰计数器值最⼩的那个⻚⾯