第3单元 主存管理 第3节 分页存储管理 一页一页的放………… 怎么解决分段带来的碎片问题? 页与页框 地址映射 多级页表 快表 举例 第3节 分页存储管理 怎么解决分段带来的碎片问题? 一页一页的放………… 页与页框 地址映射 多级页表 快表 举例 分页和分段的区别 段页式
物理内存划分成大小相等的页框 程序被分割为大小相等的页,放到页框里 5 1 2 3 6 页框7 页框6 段0:页3 页框5 段0:页0 页框0 页框1 页框2 页框3 页框4 页框5 页框6 页框7 段0:页3 段0:页0 段0:页2 段0:页1 程序被分割为大小相等的页,放到页框里 5 1 2 3 6 页表
页已经载入了内存,接下来的事情… 页0放在页框5中,页0中的地址就需要重定位 Offset Page# 页中的仍然是逻辑地址 页框0 页框1 页框2 页框3 页框4 页框5 页框6 页框7 段0:页3 段0:页0 段0:页2 段0:页1 页0放在页框5中,页0中的地址就需要重定位 Offset Page# 12 11 15 页中的仍然是逻辑地址 第几页 页面尺寸(4K) mov [0x2240], %eax 0x02 逻辑地址 0x240 240 页表指针 页框号 保护 页号 5 R 1 R/W 3 2 6 3 PCB中应有此值 物理地址: 0x3240 权限检查
页表会很大,页表放置就又成了问题 纸上和实际使用总是存在很大差别! 页是用来解决碎片问题的 所以,页面尺寸应该不能太大,为什么? 页面尺寸通常为4K,而地址是32位的,有220个页面 如果页表中的页号不连续,则需要查找,折半log(220)=20,20次什么? 页框号 保护 页号 5 R 1 R/W 2 6 3 有效 页框号 保护 页号 5 R 1 R/W 3 问题:这意味着什么?
多级页表:页目录+页表 32位地址空间+ 4K页面+页号连续220个页表项 220个页表项都得放在内存中,需要4M内存;系统中并发10个进程,就需要40M内存 页框号 页号 5 1 2 6 3 有效 实际上大部分逻辑地址根本不会用到 32位: 总空间[0,4G]! 引入多级页表,页目录常驻内存,不需要映射的逻辑地址不需要在内存中建立页表项
多级页表如何减少了内存中的页表数量? Offset 物理页号 物理地址 逻辑地址 Offset 页号 页目录号 页目录指针 10 bits 12 bits 逻辑地址 Offset 页号 页目录号 4KB Offset 页目录指针 4 bytes 程序构成: 4M代码+4M数据+4M栈 页目录驻留内存(4K) 4 bytes 210个目录项4字节地址 = 4K,总共需要16K<<4M
多级页表提高了空间效率,但时间? 多级页表增加了访存的次数,尤其是64位系统 TLB是一组相联快速存储,是寄存器 逻辑地址 Offset 页号 TLB未命中(失效) 页框号 保护 页号 56 R 140 23 R/W 20 29 R/X 19 43 21 有效 1 修改 TLB Offset 物理页号 物理地址 相联! TLB命中 页表
TLB得以发挥作用的原因 TLB命中时效率会很高,未命中时效率降低 有效访问时间 = HitR(TLB+MA) + (1-HitR)(TLB+2MA) 命中率! 内存访问时间! TLB时间! 有效访问时间=80%(20ns+100ns) + 20%(20ns+200ns)=144ns 有效访问时间=98%(20ns+100ns) + 2%(20ns+200ns)=122ns 有效访问时间=10%(20ns+100ns) + 90%(20ns+200ns)=210ns 要想真正实现“只访存1次”,TLB的命中率应该很高 TLB越大越好,但TLB很贵,通常只有[64, 1024]
为什么TLB条目数可以在64-1024之间? 相比220个页,64很小,为什么TLB就能起作用? 程序的地址访问存在局部性 某内存引用模式 空间局部性(Locality in Space) 访问概率 内存地址 程序多体现为循环、顺序结构 计算机系统设计时应该充分利用这一局部性
分页管理的特征: 1.os管理,整个物理内存分系统区和用户区 2.内存分为等长页面(frame):又叫物理页、帧、页框架 3.程序分为等长页(page),又叫逻辑页,页与页框架通 常等长, 4.程序在内存存放时,页内连续、页间不一定连续(即 相邻页不一定放在相邻帧中) 5.程序不一定完整进入内存(实存/虚存) 6.地址映射只能采用动态重定位 7、页的分配与释放可以用位示图或者链表。算法简单。 注意”页 内连续页间不一定连续“指的是页而非页面。 旨在克服前4模式因连续和完整要求而导致的内存利用率低、需要用户自己解决程序大空间小问题、装入和交换速度慢等问题。
页式系统与段式系统的区别 用户地址空间的区别 页式系统中用户地址空间——一维地址空间 段式系统中用户地址空间——二维地址空间 段和页面的区别 段 页面 信息的逻辑划分 信息的物理划分 段长是可变的 页的大小是固定的 用户可见 用户不可见 w字段的溢出 w字段的溢出自动 将产生越界中断 加入到页号中
举例 在分页式存储管理系统中,分页是由 完成的 A.程序员 B.用户 C.操作员 D.系统 在分段式存储管理中,是由用户实施分段的。因此 。 在分页式存储管理系统中,分页是由 完成的 A.程序员 B.用户 C.操作员 D.系统 在分段式存储管理中,是由用户实施分段的。因此 。 A.段内和各段间的地址都是连续的 B.段内的地址是连续的,各段间的地址可以不连续 C.段内的地址可以不连续,但段间的地址是连续的 D.段内的地址和各段间的地址都是不连续的 分段管理的主要优点有( )。 A.可以实现有意义的共享 B.用户可以使用覆盖技术 C.方便地址转换 D.程序不需要连续的内存 E.可以实现动态链接 F.可以给不同段赋予不同存取权
问题:操作系统在管理内存时引入页的目的是? ( ) 问题:操作系统在管理内存时引入页的目的是? ( ) A. 更符合用户习惯 B. 进行地址翻译(运行时重定位)更快 C. 减少了外部内存碎片 D. 减少了内部内存碎片
下列存储器哪些可用来存储页表? A.Cache B.磁盘 C.主存 D.快表
段页式存储管理 段、页结合: 程序员眼中看见的是段,物理按页划分区域,所以…
段、页同时存在时的重定位(地址翻译) 段号+偏移(cs:ip) 逻辑地址 页号 偏移 偏移 物理地址 物理页号 称为虚拟地址 基址 长度 保护 段号 0x4000 0x0800 R 0x4800 0x1400 R/W 1 0xF000 0x1000 2 0x0000 0x3000 3 逻辑地址 页号 偏移 偏移 物理地址 物理页号 称为虚拟地址 页框号 保护 5 R 1 R/W 3 7
这种方案,实质是分页方案,不同的是以段为单位分页 19