230 likes | 424 Views
存储系统. 支持 OS 运行硬件环境的一个重要方面: 作业必须把它的程序和数据存放在主存储器(内存)中才能运行 多道程系统中,若干个程序和相关的数据要放入主存储器 操作系统要管理、保护程序和数据,使它们不至于受到破坏 操作系统本身也要存放在主存储器中并运行. 1 、 存储器的类型. 两类存储器:读写型的存储器 只读型的存储器 读写型的存储器 可把数据存入其中任一地址单元,并可在以后的任何时候把数据读出,或者重新存入新的数据的一种存储器 常被称为随机访问存储器 ( RAM : Random Access Memory )
E N D
存储系统 支持OS运行硬件环境的一个重要方面: • 作业必须把它的程序和数据存放在主存储器(内存)中才能运行 • 多道程系统中,若干个程序和相关的数据要放入主存储器 • 操作系统要管理、保护程序和数据,使它们不至于受到破坏 • 操作系统本身也要存放在主存储器中并运行
1、存储器的类型 两类存储器:读写型的存储器 只读型的存储器 读写型的存储器 • 可把数据存入其中任一地址单元,并可在以后的任何时候把数据读出,或者重新存入新的数据的一种存储器 • 常被称为随机访问存储器(RAM:Random Access Memory) • RAM主要用作存放随机存取的程序的数据
只读型的存储器: • 只能从其中读取数据,但不能随意用普通方法写入数据(写入数据只能用特殊方法) • 称为只读存储器(ROM:Read-Only Memory) 变型:PROM和EPROM • PROM:一种可编程只读存储器,使用特殊PROM写入器写入数据 • EPROM:用特殊的紫外线光照射此芯片,以“擦去”信息,恢复原来状态,然后使用特殊EPROM写入器写入数据 在微机中,一些常驻内存的模块以微程序形式固化在ROM中 如:PC BIOS和CBASIC解释程序被固化于ROM中
2、存储器的层次结构 存储系统设计三个问题: 容量、速度和成本 • 容量:需求无止境 • 速度:能匹配处理器的速度 • 成本问题:成本和其它部件相比应在合适范围之内
容量、速度和成本 • 三个目标不可能同时达到最优,要作权衡 • 存取速度快,每比特价格高 • 容量大,每比特价格越低,同时存取速度也越慢 解决方案:采用层次化的存储体系结构 • 当沿着层次下降时 • 每比特的价格将下降,容量将增大 • 速度将变慢,处理器的访问频率也将下降
存储访问局部性原理 提高存储系统效能关键点:程序存储访问局部性原理 • 程序执行时,有很多的循环和子程序调用,一旦进入这样的程序段,就会重复存取相同的指令集合 • 对数据存取也有局部性,在较短的时间内,稳定地保持在一个存储器的局部区域 处理器主要和存储器的局部打交道 在经过一段时间以后,使用的代码和数据集合会改变
设计多级存储的体系结构 原则:级别较低存储器比率小于级别较高存储器比率 假设两级存储器: • 第I级包含1KB,存取时间为0.1μs • 第II级包含1MB,存取时间为1μs 存取I级中的内容,直接存取 存取II级,首先被转移到I级,然后再存取 假设确定内容所在位置时间可以忽略 若在I级存储器中发现存取对象的概率是95%,则平均访问时间为: 结果非常接近I级存储的存取时间
T1:I级存储器的存取时间 T2:II级存储器的存取时间 一个简单二级存储系统的性能
3、存储分块 • 存储最小单位:“二进位”,包含信息为0或1 • 最小编址单位:字节,一个字节包含八个二进位 主流个人电脑 • 主存:128MB~512MB之间 • 辅助存储器:在20GB~70GB 工作站、服务器 • 主存:512MB~4GB之间 • 硬盘容量:数百GB 为简化分配和管理,存储器分成块,称一个物理页(Page) • 块的大小:512B、1K、4K、8K
存储保护设施 对主存中的信息加以严格的保护,使操作系统及其它程序不被破坏,是其正确运行的基本条件之一 多用户,多任务操作系统: OS给每个运行进程分配一个存储区域 问题: 多个程序同时在同一台机器上运行 怎样才能互不侵犯?
保护的硬件支持: 为了保证软件程序只影响程序的内部 硬件可提供如下功能: • 界地址寄存器(界限寄存器) • 存储键 • 地址转换
界地址寄存器(界限寄存器) • 界地址寄存器被广泛使用的一种存储保护技术 • 机制比较简单,易于实现 实现方法: • 在CPU中设置一对下限寄存器和上限寄存器 存放用户作业在主存中的下限和上限地址 • 也可将一个寄存器作为基址寄存器,另一寄存器作为限长寄存器(指示存储区长度) • 每当CPU要访问主存,硬件自动将被访问的主存地址与界限寄存器的内容进行比较,以判断是否越界 • 如果未越界,则按此地址访问主存,否则将产生程序中断——越界中断(存储保护中断)
界地址寄存器 存储保护技术
存储键 • 每个存储块有一个由二进位组成的存储保护键 • 一用户作业被允许进入主存,OS分给它一个唯一的存储键号 • 并将分配给该作业各存储块存储键也置成同样键号 • 当OS挑选该作业运行时,OS将它的存储键号放入程序状态字PSW存储键(“钥匙”)域中 • 每当CPU访问主存时,都将该主存块的存储键与PSW中的“钥匙”进行比较 • 如果相匹配,则允许访问,否则,拒绝并报警
地址转换 同时有多个程序在内存 程序在内存的位置不是固定的而是随机的
物理地址 虚拟地址 物理空间 Translation Box (MMU) CPU 数据读或写 (不需转换) 现代体系结构中的地址转换
data2 stack1 code1 heap1 code2 stack2 data1 heap2 OS code OS data OS heap & stacks code data heap stack code data heap stack 程序 1 虚地址空间 程序2 虚地址空间 地址转换 内存
五、缓冲技术 缓冲区是硬件设备之间进行数据传输时,用来暂存数据的一个存储区域 缓冲技术三种用途: • 处理器与主存储器之间 • 处理器和其它外部设备之间 • 设备与设备之间的通信 目的:解决部件之间速度不匹配的问题
多缓冲区(Cache)技术 单缓冲区: • 设备向缓冲区输入数据直到装满后 必须等待CPU将其取完,才能继续向其中输入数据 • 为了提高设备利用率,单缓冲区不够 多缓冲区(Cache)技术: • Cache:离CPU最近,使CPU快速访问常使用的数据 • CPU首先到一级Cache中找 • 如果没有,CPU到二级Cache中找 • 如果没有,CPU到系统内存中找
一级Cache,CPU先访问,性能对系统性能作用很大一级Cache,CPU先访问,性能对系统性能作用很大 Cache与主存储器
Cache与主存储器的对应 主存储器: • 主存视作一些固定大小的块构成 • 每块含K个字,主存划分为M=2n/K个块 Cache: • C个存储槽,每个槽K个字,C远小于M • 主存中一些块的集合驻留在Cache的相应槽中 对应处理: • 若某块中的一个字,不在Cache槽中,那个块整个被移到一个槽中 • 替换那一个槽中的内容由处理器的Cache管理单元按照一定的策略来选择 • 并且相应的Cache槽中会有一个专门的标记 • 以表明对应是主存的什么地址块