文档介绍:Linux操作系统分析与实践97
寄存器是指令在CPU内部作处理的过程中暂存数据、地址以及指令信息的存储设备
在计算机的存储系统中它具有最快的访问速度
高速缓存处于CPU和物理内存之间
一般由控制器中的内存管理单元(MMU:M
支持OS运行硬件环境的一个重要方面:
作业必须把它的程序和数据存放在内存中才能运行
多道程系统中,若干个程序和相关的数据要放入内存
操作系统要管理、保护程序和数据,使它们不至于受到破坏
操作系统本身也要存放在内存中并运行
、存储器的类型
半导体存储器 实现 内存
存储器芯片的内部组织结构
静态存储器(SRAM)
异步动态随机存储器(DRAM)
同步动态随机存储器(SDRAM)
双倍数据速率SDRAM(DDR SDRAM)(开放标准)
Rambus公司的SDRAM
只读型存储器
ROM( Read-Only Memory) :只能从其中读取数据,但不能随意用普通方法写入数据(写入数据只能用特殊方法)
在微机中,一些常驻内存的模块以微程序形式固化在ROM中,如:PC BIOS和CBASIC解释程序被固化于ROM中
PROM:可编程只读存储器,使用特殊PROM写入器写入数据
EPROM:电可擦写可编程只读存储器,用特殊的紫外线光照射此芯片,以“擦去”信息,恢复原来状态,再使用特殊EPROM写入器写入数据
闪存(flash memory)
存储器的类型
、存储器的层次结构
存储系统设计三个问题:
容量、速度和成本
容量:需求无止境
速度:能匹配处理器的速度
成本问题:成本和其他部件相比应在合适范围之内
容量、速度和成本
三个目标不可能同时达到最优,要作权衡
存取速度快,每比特价格高
容量大,每比特价格越低,同时存取速度也越慢
解决方案:采用层次化的存储体系结构
当沿着层次下降时
每比特的价格将下降,容量将增大
速度将变慢,处理器的访问频率也将下降
层次化的存储体系结构
存储访问局部性原理
提高存储系统效能关键点:程序存储访问局部性原理
程序执行时,有很多的循环和子程序调用,一旦进入这样的程序段,就会重复存取相同的指令集合
对数据存取也有局部性,在较短的时间内,稳定地保持在一个存储器的局部区域
处理器主要和存储器的局部打交道
在经过一段时间以后,使用的代码和数据集合会改变
、存储分块
存储最小单位:“二进位”,包含信息为0或1
最小编址单位:字节,一个字节包含八个二进位
主流个人电脑
主存:128MB~512MB之间
辅助存储器:在20GB~70GB
工作站、服务器
主存:512MB ~ 4GB之间
硬盘容量:数百GB
为简化分配和管理,存储器分成块,称一个物理页(Page)
块的大小:512B、1K、4K、8K
、存储保护设施
对主存中的信息加以严格的保护,使操作系统及其他程序不被破坏,是其正确运行的基本条件之一
多用户,多任务操作系统:
OS给每个运行进程分配一个存储区域
问题:
多个程序同时在同一台机器上运行,怎样才能互不侵犯?
如何处理重定位?
保护的硬件支持
解决方案 依赖于 配有特殊硬件的CPU
硬件可提供如下功能:
界地址寄存器(界限寄存器)
存储键
地址转换机制
界地址寄存器(界限寄存器)
界地址寄存器被广泛使用的一种存储保护技术
机制比较简单,易于实现
实现方法:
在CPU中设置一对下限寄存器和上限寄存器
存放用户作业在主存中的下限和上限地址
也可将一个寄存器作为基址寄存器,另一寄存器作为限长寄存器(指示存储区长度)
每当CPU要访问主存,硬件自动将被访问的主存地址与界限寄存器的内容进行比较,以判断是否越界
如果未越界,则按此地址访问主存,否则将产生程序中断——越界中断(存储保护中断)
界地址寄存器
存储保护技术
存储键
每个存储块有一个由二进位组成的存储保护键
一用户作业被允许进入主存,OS分给它一个唯一的存储键号
并将分配给该作业各存储块存储键也置成同样键号
当OS挑选该作业运行时,OS将它的存储键号放入程序状态字PSW存储键(“钥匙”)域中
每当CPU访问主存时,都将该主存块的存储键与PSW中的“钥匙”进行比较
如果相匹配,则允许访问,否则,拒绝并报警
地址转换机制
同时有多个程序在内存
程序在内存的位置不是固定的而是随机的
用户程序A
内存
用户程序B
CPU
MMU
内存
磁盘
控制器
总线
虚拟地址
物理地址
MMU:内存管理单元
地址转换机制
虚拟地址(逻辑地址)
处理器生成的指令或数据的二进制地址
这些地址用硬件和软件结合的方法转换成物理地址
MMU:内存管理单元,一种特殊硬件,完成转换工作
三