OS-李治军-L24-内存换入与请求调页

内存换入与请求调页

为了实现虚拟内存,就应该有换入换出。
用户可以随意使用该内存,如char *p, p=3G,实际上就是使用该地址,而后续该内存如何映射到物理内存是对用户透明的。
如果逻辑地址空间比物理地址空间更大怎么办?这就引入了换入。
先把东西放到disk上,要用到的时候再放到内存当中来。

mmu查页表,发现对应的页表中目标项是缺失的,就发出缺页中断。
此时,cpu检测到中断,然后为其分配一个物理空间,并从disk中读出相关的程序,放到页表当中。

实际工作:
从缺页中断开始。

完成了初始化工作。

cr2中是页错误的线性地址(虚拟地址)。
压栈是参数,然后调用c函数。
去掉页内偏移量,得到页号,
得到一个page,
去磁盘上读,
把物理页和虚拟地址联系。

就是把项目填到页表当中。

posted @ 2020-10-28 14:58  HermioneGranger  阅读(125)  评论(0)    收藏  举报