20、土地需求扩大与保障:如何表示虚拟内存你好,我是LMOS。 在现实中,有的人需要向政府申请一大块区域,在这块区域中建楼办厂,但是土地有限且已经被占用。所以可能的方案是,只给你分配一个总的面积区域,今年湖北有空地就在湖北建立一部分厂房,明年广东有空地就在广东再建另一部分厂房,但是总面积不变...2025-12-07操作系统实战45讲
21、土地需求扩大与保障:如何分配和释放虚拟内存你好,我是LMOS。 今天,我们继续研究操作系统如何实现虚拟内存。在上节课,我们已经建立了虚拟内存的初始流程,这节课我们来实现虚拟内存的核心功能:写出分配、释放虚拟地址空间的代码,最后实现虚拟地址空间到物理地址空间的映射。 这节课的配套代码,你可以点...2025-12-07操作系统实战45讲
22、瞧一瞧Linux:伙伴系统如何分配内存你好,我是LMOS。 前面我们实现了Cosmos的内存管理组件,相信你对计算机内存管理已经有了相当深刻的认识和见解。那么,像Linux这样的成熟操作系统,又是怎样实现内存管理的呢? 这就要说到Linux系统中,用来管理物理内存页面的伙伴系统,以及负责...2025-12-07操作系统实战45讲
23、瞧一瞧Linux:SLAB如何分配内存你好,我是LMOS。 上节课我们学习了伙伴系统,了解了它是怎样管理物理内存页面的。那么你自然会想到这个问题:Linux系统中,比页更小的内存对象要怎样分配呢? 带着这个问题,我们来一起看看**SLAB分配器的原理和实现。**在学习过程中,你也可以对照...2025-12-07操作系统实战45讲
24、活动的描述:到底什么是进程你好,我是LMOS。 在前面的课程里,我们已经实现了数据同步、hal层的初始化,中断框架、物理内存、内存对象、虚拟内存管理,这些都是操作系统中最核心的东西。 今天,我再给你讲讲操作系统里一个层次非常高的组件——进程,而它又非常依赖于内存管理、中断、硬...2025-12-07操作系统实战45讲
25、多个活动要安排(上):多进程如何调度你好,我是LMOS。 上节课,我们了解了什么是进程,还一起写好了建立进程的代码。不知道你想过没有,如果在系统中只有一个进程,那我们提出进程相关的概念和实现与进程有关的功能,是不是就失去了意义呢? 显然,提出进程的目的之一,就是为了实现多个进程,使系统...2025-12-07操作系统实战45讲
26、多个活动要安排(下):如何实现进程的等待与唤醒机制你好,我是LMOS。 上节课,我带你一起设计了我们Cosmos的进程调度器,但有了进程调度器还不够,因为调度器它始终只是让一个进程让出CPU,切换到它选择的下一个进程上去运行。 结合前面我们对进程生命周期的讲解,估计你已经反应过来了。没错,多进程调度...2025-12-07操作系统实战45讲
27、瞧一瞧Linux:Linux如何实现进程与进程调度你好,我是LMOS。 在前面的课程中,我们已经写好了Cosmos的进程管理组件,实现了多进程调度运行,今天我们一起探索Linux如何表示进程以及如何进行多进程调度。 好了,话不多说,我们开始吧。 Linux如何表示进程在Cosmos中,我们设计了一个...2025-12-07操作系统实战45讲
28、部门分类:如何表示设备类型与设备驱动你好,我是LMOS。 小到公司,大到国家,都有各种下属部门,比如我们国家现在有教育部、科学技术部、外交部,财政部等,这些部门各自负责完成不同的职能工作,如教育部负责教育事业和语言文字工作,科学技术部负责推动解决经济社会发展的重大科技问题。 既然大道相...2025-12-07操作系统实战45讲
29、部门建立:如何在内核中注册设备你好,我是LMOS。 在上节课里,我们对设备进行了分类,建立了设备与驱动的数据结构,同时也规定了一个驱动程序应该提供哪些标准操作方法,供操作系统内核调用。这相当于设计了行政部门的规章制度,一个部门叫什么,应该干什么,这些就确定好了。 今天我们来继续探...2025-12-07操作系统实战45讲