虚拟存储器-存储器保护工具

虚拟存储器-存储器保护工具读书笔记:
现在计算机系统对存储器系统的访问需要提供控制手段。



现在计算机系统主要通过虚拟存储器来间接控制存储器的访问,主要表现在以下几个方面:
1 禁止修改用户进程的只读文本段;
2 不允许进程读和修改内核中的代码和数据结构;
3 不允许读取其它进程的数据和私有存储器;
4 不允许修改任何同其它进程共享的虚拟页面(除非所有的共享对象都申明可以修改)。

由于操作系统对每一个进程都提供一个页表(独立的地址空间),所以分离不同进程中的私有变量变得非常容易。但是,地址翻译机制可以以一种自然的方式扩展到更好的访问控制。因为每次cpu生成一个地址时,地址翻译单元都会读一个pTE,通过这个pte上添加一些额外的许可位来控制对一个虚拟页面内容的访问,变的十分简单。
虚拟存储器
在上图中, 虚拟存储器是通过在进程页表中设置三个位来控制读写 访问三个权限
SUP:代表进程是否表现运行在内核(超级用户)模式下才能访问该页;运行在内核模式下的进程可以放任何页面,运行在用户模式的进程只允许访问SUP为no的页面。
READ: 控制用户模式对页面的读;
WRITE: 控制用户模式对页面的写;
上图进程i,如果运行在用户态,可以读vp0,读写vp1,由于vp2 sup位为yes,所以对vp2禁止访问。
当进程违反这一规则,则会触发”一般保护性故障”,”段错误” segmentation fault。


虚拟存储器对存储器的保护主要体现在,通过设置页表的三个位来控制当前页是否可以有权限访问某一部分的存储器,起到保护存储器的作用。
相关阅读:
虚拟存储器-存储管理工具