操作系统
文章平均质量分 85
分享操作系统学习资料、心得体会
Skylar Lin
“不闻不若闻之,闻之不若见之,见之不若知之,知之不若行之。”
展开
-
【操作系统导论】内存篇——页面置换
例如,给定一组进程,系统可以决定不运行部分进程,希望减少的进程工作集(它们活跃使用的页面)能放入内存,从而能够取得进展。当硬盘 I/O 完成时,OS 会更新页表,将此页标记为存在,更新 PTE 的 PFN 字段以记录新获取页的内存位置,并重试指令;如果页有效且存在于物理内存中,则硬件从 PTE 中获得 PFN,将其插入 TLB,并重试该指令,这次产生 TLB 命中。如果存在位为 0,则页不在内存中,而在硬盘上。最后,重试该指令,在 TLB 命中,得到最终的内存物理地址,并获取所需的数据或指令。原创 2023-12-19 11:28:41 · 1088 阅读 · 0 评论 -
【操作系统导论】内存篇——分页
一个地址空间中大约有一百万个虚拟页面,乘以页表项的大小,则一个页表大小为 4MB。假设有一个 8 位的虚拟地址空间,页帧大小为 16 字节,虚拟地址划分为 4 位的 VPN 和 4 位的 offset;对于典型的 4KB 大小的页来说,这种密集的数组访问会实现极好的 TLB 性能,每个页的访问只有一次「未命中」。包含了存在位(P),读/写位(R/W),用户/超级用户位(U/S),访问位(A),脏位(D);个「页表项」,假设每个 PTE 的大小为 4 字节,则页表的大小为 1KB,占 16 个页帧。原创 2023-12-14 20:10:37 · 1200 阅读 · 0 评论 -
【操作系统导论】内存篇——分段
最佳适应算法和最坏适应算法的开销较大。首次适应算法和邻近适应算法的开销较小;原创 2023-12-14 20:06:39 · 1177 阅读 · 0 评论 -
【操作系统导论】比例份额调度
彩票调度的基本思想:每隔一段时间,都会举行一次彩票抽奖,以确定接下来应该运行哪个进程;越是应该频繁运行的进程,越是应该拥有更多地赢得彩票的机会。关键在于如何按比例分配 CPU。利用了随机性(randomness),具有以下优势:随机方法很轻量,几乎不需要记录任何状态;随机方法很快,只要能很快地产生随机数,做出决策也就很快;随机方法常常可以避免奇怪的边角情况,较传统的算法可能在处理这些情况时遇到麻烦。原创 2023-12-12 21:34:15 · 1029 阅读 · 0 评论 -
【操作系统导论】多级反馈队列
1962 年,Corbato 首次提出了多级反馈队列(Multi-level Feedback Queue,MLFQ),并应用于兼容时分共享系统(CTSS)。Corbato 因在 CTSS 中的贡献和在 Multics 中的贡献,获得了 ACM 图灵奖(Turing Award)。MLFQ 的基本思路如下:MLFQ 中有许多独立的队列,每个队列具有不同的优先级(priority level);一个工作只能存在于一个队列中,并且 MLFQ 总是优先执行较高优先级的工作(即在较高级队列中的工作)。原创 2023-12-12 21:23:17 · 606 阅读 · 0 评论 -
【操作系统导论】进程调度介绍
我们介绍了调度的基本思想,包括两种调度指标以及结合 I/O 的场景。通过运行最短的工作,从而优化周转时间;通过交替运行所有工作,从而优化响应时间;在 I/O 期间,通过“重叠”来更好地利用资源。但是,我们很难做到“鱼与熊掌兼得”,这是系统中常见的、固有的折中。并且,操作系统通常对每个作业的长度和知之甚少,SJF / STCF 调度程序好似难以实现?后面,我们将看到如何通过构建一个调度程序,利用最近的历史预测未来,从而解决这个问题。原创 2023-12-11 20:34:23 · 1098 阅读 · 0 评论 -
【操作系统导论】虚拟化机制:受限制直接执行(LDE)
在使用计算机或笔记本时,我们会同时运行多种程序,如浏览器、音乐播放器、微信,等等。实际上,一个正常的系统可能同时会有上百个程序同时在运行;而我们知道计算机的CPU是有限的,这看起来却好似有无数个CPU在工作,究竟是怎么做到的呢?这其实是操作系统的虚拟化技术(CPU时分共享技术),通过让一个进程只运行一个时间片,然后切换其他进程,从而达到提供多个虚拟CPU的假象。而要实现CPU的虚拟化,操作系统就需要使用一些低层的机制和高级的调度策略。受限制直接执行(LDE机制)。原创 2023-09-09 18:39:49 · 289 阅读 · 0 评论 -
【操作系统导论】在python3环境下运行process-run.py
这个名为的程序允许你查看进程状态在CPU上运行时如何变化。如本章所述,进程可以处于几种不同的状态:运行状态 - 进程当前正在使用CPU就绪状态 - 进程可能正在使用CPU,但(遗憾的是)有其他进程等待状态 - 进程正在等待I/O操作完成状态 - 进程执行完成在这份作业中,我们将看到这些进程状态在程序运行时如何变化,从而更好地了解这些工作原理。原创 2023-09-08 16:52:00 · 475 阅读 · 0 评论