作业必须把它的程序和数据存放在内存中才能运行
操作系统本身也要存放在内存中并运行
多道程系统中,若干个程序和相关的数据要放入内存
→→操作系统要管理、保护程序和数据,使它们不至于受到破坏
1.存储器的层次结构
存储系统设计三个问题:
容量、速度和成本
存储访问局部性原理
提高存储系统性能的关键:
程序存储访问局部性原理
程序执行时,有很多循环和子程序调用,一旦进入这样的程序段,就会重复存取相同的指令集合
对数据存取也有局部性,在较短的时间内,稳定地保持在一个存储器的局部区域
处理器主要和存储器的局部打交道
经过一段时间以后,使用的代码和数据集合会改变
2.存储分块
存储最小单位:“二进位”,包含信息为0或1
最小编址单位:字节,一个字节包含八个二进位
主流个人电脑
主存:1G~4G之间
辅助存储器:在160GB~300GB
工作站、服务器
主存:512MB ~ 4GB之间
硬盘容量:数百GB
为简化分配和管理,存储器分成块,称一个物理页(Page)
块的大小:512B、1KB、4KB、8KB、16KB、64KB、256KB、1MB、4MB、16MB
3.存储保护设施
对内存中的信息加以严格的保护,使操作系统及用户程序不被破坏,是其正确运行的基本条件之一
多用户/多任务操作系统:
OS给每个运行进程分配一个存储区域
保护的硬件支持
解决方案 依赖于 配有特殊硬件的CPU
硬件可提供如下功能:
界地址寄存器(界限寄存器)
存储键
界地址寄存器(界限寄存器):一种存储保护技术
机制比较简单,易于实现
实现方法:
在CPU中设置一对下限寄存器和上限寄存器
存放用户作业在内存中的下限和上限地址
或者 将一个寄存器作为基址寄存器,另一寄存器作为限长寄存器(指示存储区长度)
每当CPU要访问内存时,硬件自动将被访问的内存地址与界限寄存器的内容进行比较,以判断是否越界
如果未越界,则按此地址访问内存,否则将产生程序中断——越界中断(存储保护中断)
存储键
每个存储块有一个由二进位组成的存储保护键
一用户作业被允许进入主存,OS分给它一个唯一的存储键号
并将分配给该作业各存储块存储键也置成同样键号
当OS挑选该作业运行时,OS将它的存储键号放入程序状态字PSW存储键(“钥匙”)域中
每当CPU访问主存时,都将该主存块的存储键与PSW中的“钥匙”进行比较
如果相匹配,则允许访问,否则,拒绝并报警
4.地址转换机制
同时有多个程序在内存
程序在内存的位置不是固定的而是随机的
地址转换机制
虚拟地址(逻辑地址)
处理器生成的指令或数据的二进制地址
这些地址用硬件和软件结合的方法转换成物理地址
MMU:内存管理单元,一种特殊硬件,完成转换工作