合集-《操作系统导论》学习
摘要:抽象:进程(原书第四章) 主要介绍的是“进程”这一概念,分别从进程的概念、进程的相关API、进程的状态以及操作系统中针对进程的一些必要的数据结构设计进行了介绍,也仅仅只是初步介绍,并没有过于深入,深入的内容在后续章节中会详细展开。 关键问题:如何提供有许多CPU的假象? 操作系统通过虚拟化CPU来提
阅读全文
摘要:进程调度:介绍(原书第七章) 问题:如何开发调度策略? 工作负载假设 在具体给出一个目标调度程序之前,先逐步分析,先给出一些列约束,这些约束看上去都非常理想化,不切实际,不过随着后面分析的深入,会逐步放开这些约束,这样最终的方案就是想要的一个比较理想的调度策略了。 假设如下: 每个工作运行时间相同
阅读全文
摘要:机制:受限直接执行(原书第六章) 时分共享技术带来的两个挑战 性能问题即 :在不增加系统开销的情况下实现虚拟化 控制权问题,如何有效的运行进程同时保留对CPU的控制 因此这里的目标就是:操作系统必须以高性能的方式虚拟化CPU,同时保持对系统的控制 基本技巧:受限直接执行 前面介绍过,操作系统在运行程
阅读全文
摘要:调度:多级反馈队列(MLFQ:Multi-Level Feed Queue) 续接上一节中最后的问题,没有完备的关于进程相关的知识背景,如何设计一个调度方案? 答:从历史中学习,MLFQ就是从历史经验中预测未来的一个典型例子,如果工作具有明显的阶段性行为,因此可以预测,那么此时可能会很有效,当然也需
阅读全文
摘要:# 内存操作API ## 内存类型 * 堆内存 * 栈内存 栈内存不需要程序员自己管理,一般都是编译器隐式管理,所以栈内存一般也被成为“自动”内存。 而程序员通过诸如malloc这样的函数申请的内存属于堆内存,这块区域需要程序员自己进行管控。 比如下面这段: ```C void func() { i
阅读全文
摘要:# 机制 地址转换 前面说到了关于内存的虚拟化,程序内部使用的其实都是虚拟地址,那么这里就涉及到一个虚拟基地和物理地址的映射方案。 类比前面的CPU虚拟化,在CPU虚拟化中,提出了一个概念叫:受限直接运行(Limited Direct Execution,LDE)。 这种模式下,程序本身可以运行大部
阅读全文
摘要:# 分段 根据前面介绍到的基址+界限寄存器对的方式,虽然很好的解决了地址转换的问题,但是可以看到,它也带来了一个问题:内存浪费。 根据前面介绍到的那种内存分配处理方式,堆和栈之间会有大量的空闲空间,而前面的介绍中,这些空间都会被一次性装入内存中,那在程序运行的初期,就会有大量没有被使用的内存被强行占
阅读全文

浙公网安备 33010602011771号