操作系统-内存换入
程序员文章站
2022-04-03 21:41:58
操作系统为了让用户使用,进行分段,但是效率不行,所以引出了分页,后来应该分段也应该分页,所以使用了虚拟内存,分段分页的核心就是虚拟内存,而要实现虚拟内存,就需要进行内存的换入和换出 1. 段页同时存在 2. 用户眼中的内存 3. 用换入、换出实现‘大内存’ 在用户眼中0 4G就是特别大的内存,相当于 ......
操作系统为了让用户使用,进行分段,但是效率不行,所以引出了分页,后来应该分段也应该分页,所以使用了虚拟内存,分段分页的核心就是虚拟内存,而要实现虚拟内存,就需要进行内存的换入和换出
1. 段页同时存在
2. 用户眼中的内存
3. 用换入、换出实现‘大内存’
在用户眼中0-4g就是特别大的内存,相当于一个仓库,在仓库里有各种货,而物理内存相当于店面,店面小只能摆一些货,当有人需要货a,就从仓库里取(虚拟内存)放到柜台上(物理内存),有人需要货b,货a放回仓库,在从仓库里取货b放到柜台上,只要速度足够的快,柜台上就一直都有你想要的货
4. 请求调页
- 当程序访问地址,看页表发现缺页,说明一段代码没有在页表中,不能取指执行,所以一缺页程序就不能执行下去,需要调页,此时进行中断,先执行其他的进程
- 产生了中断,就要执行中断处理程序,也就是页错误处理程序
- 页错误处理程序需要到磁盘中找到这一页程序,使用某个算法
- 找到之后需要在物理内存中找一个空闲页,需要把这一页从磁盘上读进来,这就是请求调页,换入,已经从磁盘上换入了
- 接下来把这个映射做好,对应的页表中,此时中断处理结束,
- 继续执行中断那个时候发生的指令,从用户的角度来看,好像什么事都没有发生过
例题