I can do all things...
22.Beyond Physical Memory:Policies 22.Beyond Physical Memory:Policies
22. Beyond Physical Memory: Policies 接着上一节的内容来学习replacement policy,问题:OS如何决定从内存中替换哪些page? 22.1 Cache Management 内存中保存了
21.Beyond Physical Memory:Mechanisms 21.Beyond Physical Memory:Mechanisms
21. Beyond Physical Memory: Mechanisms 目前为止,我们一直假设page是全部保存在内存中的。但是,由于内存有限的原因,再加上可能运行的进程数很多导致有许多page,实际上内存往往还保存在 hard di
20.Paging:Smaller Tables 20.Paging:Smaller Tables
20. Paging: Smaller Tables 继续之前的问题,page table可能过大,上一节采用了TLB缓存的方法,这一节来看看不同的方法。问题来了,如何让page table 变小呢?有哪些方法?这些方法又会带来哪些问题?
19.Paging:Faster Translations(TLBs) 19.Paging:Faster Translations(TLBs)
19. Paging: Faster Translations (TLBs) Page table存在内存中,因此使用paging的方法需要额外的内存访问,因此比较耗时。问题:如何加速地址翻译并且避免额外的内存访问?需要哪些硬件支持?OS又
18.Paging:Introduction 18.Paging:Introduction
18. Paging: Introduction 内存管理有两种,一种是采用变长的chunk,也就是之前讲的segmentation。这章来讲一讲第二种方法,采用定长的chunk,这种方法叫做paging。我们把地址空间分成大小相等unit
17.Free-Space Management 17.Free-Space Management
17. Free-Space Management 这节就接着上节来讲讲怎么进行内存管理。具体来说,我们要讨论的就是paging的概念。简单点的话,把内存分成固定大小的块,管理这些块即可。复杂点来说,当这些块的大小不固定时,变长时该如何管理
16.Segmentation 16.Segmentation
16. Segmentation 接上一节的问题,当我们把地址空间放到物理内存中的时候,stack和heap中会出现内部碎片,存在空间浪费。再如下图: 因此,简单地使用一对base and bounds寄存器的方法是不行滴。要解决的问
15. Mechanism:Address Translation 15. Mechanism:Address Translation
15. Mechanism: Address Translation 提供即高效又能保持OS控制的虚拟化内存方法。 高效需要硬件的支持;控制意味着OS必须保证一个程序不能访问别的程序的内存空间,也不能访问OS的内存空间;最后还要灵活,也就是
13.The Abstraction:Address Spaces 13.The Abstraction:Address Spaces
13. The Abstraction: Address Spaces13.1 Early Systems 从内存的角度来说,早期的机器并没有提供很多的抽象给用户,因此比较简单,如下图: 13.2 Multiprogramming a