#OS
第五章:文件系统
文件系统这一章没有前面几章易读,个人在学习过程中没有感觉到乐趣,也不知道是不是文件系统本身无趣,还是作者的写作内容需要改进呢?
第四章:并发
同一进程下的多线程共享内存地址,对同一块内存地址的读不会引发数据竞争,但是修改会引发数据竞争。常用的办法是加锁保护临界区或保证修改的动作是原子的
第三章:内存虚拟化
当我们描述地址空间时,所描述的是操作系统提供给运行程序的抽象。程序不在物理地址 0~16KB 的内存中,而是加载在任意的物理地址。当操作系统这样做时,我们说操作系统在虚拟化内存,因为运行的程序自认为它被加载到特定地址(例如 0)的内存中,并且具有非常大的地址空间
第二章:CPU虚拟化
作者用分配桃子举例说明虚拟化,为了让这个例子更加合理,我们假定拿到桃子的人并不食用,仅是占有就心满意足了(当我后面谈食用或品尝也只是占有的意思,享用完之后就会归还)。每个小朋友(进程)都希望得到一个完整的桃子,可现实情况是篮筐中只有一个桃子,我需要为这个篮筐遮上一层布,“欺骗”小朋友这里面有很多很多的桃子(虚拟化),好让他们齐聚于此。我对每个伸手要桃子的小朋友说,你手里现在已经被分配一个完整的桃子,等你真正想要占有实体的时候我会具体的分配到你的手里。每个小朋友不可能一口吃掉这颗桃,等他需要品尝的时候,我就用小刀切割一块他所需的桃子交到他手里面(这是实际分配的,至于允诺的其它部分的桃子由于他暂时没有申请,视为我的可调用资源),给他慢慢享用。这样,其它小朋友来请求吃桃子的时候,我依旧能够满足他们的需求,因为我还有可调用资源。只要我不让他们看到这块布之后的桃子数量,他们永远都以为自己占有一个桃子
第一章:操作系统概述
我们已经了解了操作系统实际上做了什么:它取得 CPU、内存或磁盘等物理资源,并对它们进行虚拟化。它处理与并发有关的麻烦且棘手的问题。它持久地存储文件,从而使它们长期安全