哈工大-操作系统L24

内存换入-请求调页

一.用户眼里的内存

二.换入

实现虚拟内存必须有换入换出,访问代码段这些个段的时候,从磁盘上换进来,建立映射

执行load[addr]的时候MMU没有找到页(缺页),不能执行,MMU给cpu上面的中断寄存器标记上1,load[addr]虽然没有找到页,但也执行完了,开始检查中断寄存器(程序每执行完一条指令都需要检查中断寄存器),检查到有中断,开始执行中断MMU从磁盘中读入到物理内存中,执行完之后按照之前的程序会跳转到下一条指令的位置,这里MMU处理完中断后回停在当前指令,这个时候就可以执行这个刚才缺页的指令了

两种方法都可,但现实系统中都用调页

trap_init(void)系统初始化,set_trap_gate规定14中断怎样处理

这么多压栈是为了保护现场,movl %cr2,%edx,cr2赋给edx,压入edx是为了赋值参数

do_no_page实现转入和建立表

address&=0xfffff000,得到虚拟页号,page=get_free_page得到一个空闲物理页,bread_page()将页读入空闲的内存地,put_page建立页表(修改页表)

  • 7
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值