浅谈操作系统——地址映射的一些问题

238 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第7天,点击查看活动详情

分页存储管理中的信息保护

信息保护要从两个方面实现

  • 在分离程序地址的页号和页内地址时判别访问地址是否越界
    • 如果产生的页号满足下面这个式子那就是合法的:
 0 <= 页号 < 程序地址空间的页数
- 判断由硬件自动做,如果不合法,硬件产生越界中断,由操作系统的越界中断处理程序来进行处理
  • 判断访问是否越权
    • 在页表中增加用于存储控制和存储保护的信息,当要访问某页的某个逻辑地址时系统要根据该页的存储控制和存储保护信息检查访问是否合法
  • 在前面说到的页地址变换过程中有一个严重的问题——每一次对内存的访问都要访问页表,页表是放在内存中的,也就是说每一次访问内存的指令至少要访问两次内存,运行速度要下降一半,这个问题是必须解决的。
  • 解决方法:
    • 把页表放在一组快速存储器中,从而加快访问内存的速度
    • 把这种快速存储器组成的页表称为快表,把存放在内存中的页表称为慢表。
    • 快表又称相连(联想)存储器

问题

一个程序可能会很大,如1M,若页长为1K,则该程序有1000个页,则页表就需要1000个表项,当程序更大时,页表会更大,那么应该有一个多大的快速存储器才能满足要求呢?遇到两个问题:

  • 可能快速存储器多大都是不够的,因为程序可能会更大·
  • 快速存储器是非常昂贵的。

实际上并不需要一个很大的快速存储器,有一个能存放16个页表表目的快速存储器就够了。硬件根据需要将页表中当前需要的少量表目读入快表,其它表目仍留在内存的页表中,当需要时读入新的表目,并淘汰适当的表目。

  • 快表表项:
    • 页号;内存块号;保护位;修改位;有效位

image.png 以上就是这篇文章的内容了,这一部分了解即可,不用死记硬背