非连续分配:提高内存利用效率和管理灵活性
允许一个程序的使用非连续的物理地址空间;允许共享代码和数据;支持动态加载和动态链接。
段式存储管理:
段地址空间有多个段组成:主代码段、子模块代码段、公用库代码段、堆栈段stack、堆数据heap、初始化数据段、符号表等。更细粒度和灵活的分离和共享。
段:访问方式和存储数据等属性想通透的一段地址空间;对应一个连续的内存“块”;若干个段组成进程逻辑地址空间。
段访问:逻辑地址有二元组(s,addr)表示,段号和段偏移;
页式存储管理:页帧Frame,物理页面;页面Page:逻辑页面。
页帧Frame:内存物理地址表示,二元组(f,o),帧号和帧内偏移;物理地址为f*2s+o.
页面Page:逻辑地址表示,二元组(p,o),页号和页内偏移,虚拟地址=P*2S+o.
页式存储中的地址映射:页到帧的映射,逻辑地址中的页号是连续的,物理地址中的帧号是不连续的,不是所有的页都有对应的帧。
页式存储管理机制访问一个内存单元需要2次内存访问,先读页表项,后访问数据。
块表TLB,translation look-aside buffer:缓存近期访问的页表项,TLB使用关联存储实现,具备快速访问性能;
多级页表:间接引用,简历页表“树”,减少每级页表的长度
反置页表:对于大地址系统,多级页表变得繁琐