(尚未完整,预计2018-06-18完成)
- 虚拟内存:用辅助存储器(一般指磁盘)作为内存的补充。虚拟内存允许进程执行时只将部分程序放入内存,因此程序可以比物理内存大。虚拟内存的大小**受计算机寻址机制和可用的辅助存储器容量大限制,而不受内存容量的限制。
特征:①运行进程时只把现在要执行的页/段装入内存,其余页/段放在外存,需要时再利用请求调入页/段功能和置换功能将其调入内存。
②在逻辑上扩充内存容量
③访问速度接近于内存,没位(bit)成本接近于外存。 - 虚拟地址:即逻辑地址,虚拟内存中某个字节的地址,仿佛该字节在内存中(其实可能位于磁盘,但这对用户是透明的)。
- 虚拟地址空间:分配给某个进程(程序)的虚拟地址范围。
- 实地址:即物理地址。物理内存中某个字节的地址。
- 驻留集:进程运行时装入内存的部分。
- 内存管理单元MMU:集成在CPU中,或作为一个协处理器。
功能:分解逻辑地址;逻辑地址到物理地址的转换;查找更新快表TLB;进程切换时清空TLB;发出缺页中断或越界中断;设置和检查页表中各个特征位等。
!#当访问一个不再内存的逻辑地址时,产生缺页中断/缺段中断;OS阻塞该进程;启动磁盘I/O;装入所需的页/段后,将阻塞进程设置为就绪态。
?#就绪挂起态和阻塞挂起态进程的换入/换出内存和虚拟存储的换入/换出内存有什么区别?
答:挂起态进程的所有内存驻留页/段全部被换出,解除挂起时,所有以前的驻留页/段再重新读回内存。且CPU不会调度就绪挂起态进程。
虚拟内存将任一进程(运行态。就绪态和阻塞态)的部分页/段换入和换出内存。
虚拟页式管理中的页表:
缺页中断(页错误)Page Fault:
- 在一条指令执行期间,当要范围的页不在内存是,产生和处理缺页中断,然后重新执行该指令。
- 一条指令的执行可能会引起多次缺页中断。
- 虚拟地址<页号,页内偏移> ――>实地址<页框号,页内偏移>
2.2涓ょ骇椤佃〃
- 两级页表中的地址转换
- 倒排页表为内存的每一页框设置了一个页表项。
- 内容为该帧所属的进程标识和页号
文章来源: 操作系统――虚拟内存