操作系统――虚拟内存

匿名 (未验证) 提交于 2019-12-03 00:28:02

(尚未完整,预计2018-06-18完成)

  • 虚拟内存:用辅助存储器(一般指磁盘)作为内存的补充。虚拟内存允许进程执行时只将部分程序放入内存,因此程序可以比物理内存大。虚拟内存的大小**受计算机寻址机制和可用的辅助存储器容量大限制,而不受内存容量的限制。
    特征:①运行进程时只把现在要执行的页/段装入内存,其余页/段放在外存,需要时再利用请求调入页/段功能和置换功能将其调入内存。
    ②在逻辑上扩充内存容量
    ③访问速度接近于内存,没位(bit)成本接近于外存。
  • 虚拟地址:即逻辑地址,虚拟内存中某个字节的地址,仿佛该字节在内存中(其实可能位于磁盘,但这对用户是透明的)。
  • 虚拟地址空间:分配给某个进程(程序)的虚拟地址范围。
  • 实地址:即物理地址。物理内存中某个字节的地址。
  • 驻留集:进程运行时装入内存的部分。
  • 内存管理单元MMU:集成在CPU中,或作为一个协处理器。
    功能:分解逻辑地址;逻辑地址到物理地址的转换;查找更新快表TLB;进程切换时清空TLB;发出缺页中断或越界中断;设置和检查页表中各个特征位等。

!#当访问一个不再内存的逻辑地址时,产生缺页中断/缺段中断;OS阻塞该进程;启动磁盘I/O;装入所需的页/段后,将阻塞进程设置为就绪态。
?#就绪挂起态和阻塞挂起态进程的换入/换出内存和虚拟存储的换入/换出内存有什么区别?
答:挂起态进程的所有内存驻留页/段全部被换出,解除挂起时,所有以前的驻留页/段再重新读回内存。且CPU不会调度就绪挂起态进程。
虚拟内存将任一进程(运行态。就绪态和阻塞态)的部分页/段换入和换出内存。

虚拟页式管理中的页表

缺页中断(页错误)Page Fault
- 在一条指令执行期间,当要范围的页不在内存是,产生和处理缺页中断,然后重新执行该指令
- 一条指令的执行可能会引起多次缺页中断。

  • 虚拟地址<页号,页内偏移> ――>实地址<页框号,页内偏移>

2.2涓ょ骇椤佃〃

  • 两级页表中的地址转换

  • 倒排页表为内存的每一页框设置了一个页表项。
  • 内容为该帧所属的进程标识和页号
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!