8.3 内存共享和保护
多个用户进程能够在VM系统下共享内存。在多用户环境,多个进程可以执行同样的可执行程序二进制代码;而在老的UNIX实现里,每个进程都有自己独立的一份二进制代码拷贝——这是对内存资源的巨大浪费。当一个进程的多个实例被同时执行的时候,Solaris虚拟内存系统通过在进程间共享程序的二进制代码和应用数据来减少内存浪费。Solaris内核扩展了这个概念并且在SunOS(早期的Solaris版本)里引入了动态链接库,从而使进程可以共享C库。
为了更好地支持多用户,VM系统实现了内存保护。例如,一个用户的进程不可以访问其他进程的内存空间;否则系统安全性会受到影响,并且一个程序里的错误可能导致其他程序甚至影响到整个系统的运行失败。内存管理单元从硬件上通过防止一个进程访问它的合法地址之外的空间(除了明确在进程间共享的内存)来进行内存保护。
| 回书目 上一节 下一节 |