存储器概述

为了解决对存储器要求容量大,速度快,成本低三者之间的矛盾,目前通常采用多级存储器体系结构 ,即使用高速缓冲存储器、主存储器和外存储器

 

 

名 称  简称       用  途     特 点
高速缓冲存储器  Cache

  高速存取指令和数据

 存取速度快,但存储容量小

 主存储器  主存 存放计算机运行期间的大量程序和数据  存取速度较快,存储容量不大
 外存储器  外存

存放系统程序和大型数据文件及数据库

 存储容量大,位成本低

 

 

主存储器的性能指标主要是存储容量、存取时间、存储周期和存储器带宽

   字存储单元即存放一个机器字的存储单元,相应的地址称为字地址。一个机器字可以包含数个字节,

所以一个存储单元也可包含数个能够单独编址的字节地址。

 

指 标        含  义    表  现   单 位
存储容量  在一个存储器中可以容纳的存储单元总数   存储空间的大小  字数,字节数
存取时间 启动到完成一次存储器操作所经历的时间   主存的速度   ns
存储周期  连续启动两次操作所需间隔的最小时间   主存的速度   ns
存储器带宽  单位时间里存储器所存取的信息量, 数据传输速率技术指标 位/秒,字节/秒

 

 

 

### 虚拟存储器的基本概念 虚拟存储器是一种内存管理技术,基于程序的局部性原理,为进程提供了比实际物理内存更大的地址空间[^1]。通过在磁盘和内存之间移动进程页,虚拟存储器实现了按需装入、共享和保护的功能。这种技术不仅提高了系统的性能和稳定性,还使得应用程序员能够在透明的情况下使用远超实际物理内存大小的虚拟地址空间[^2]。 ### 虚拟存储器的工作原理 虚拟存储器的工作依赖于操作系统和硬件的支持。当程序访问一个虚拟地址时,地址转换硬件会检测该地址所在的程序或数据页(或段)是否已经存在于主存中。如果页面已在主存中(即命中),则硬件将虚拟地址转换为主存地址,并由CPU根据主存地址完成数据的读取或写入操作。如果页面未在主存中(即失效),则操作系统将虚存地址转换为外存地址,并将所需的程序或数据从外存调入主存。与此同时,操作系统可能会选择最近不常用的页面作为替换对象,并将修改的数据送回外存以保持一致性[^2]。 由于虚拟存储器的管理和控制主要由硬件和操作系统共同完成,因此对于应用程序员来说是完全透明的。每个程序员都可以使用完整的虚拟地址空间进行编程,而无需关心底层的实际物理内存分配情况。用户程序运行在一个标准化的虚拟地址空间中,这个空间本身并无对应的存储实体,因此被称为“虚拟”存储器[^2]。 ```python # 示例代码:虚拟存储器的简单模拟 class VirtualMemory: def __init__(self, main_memory_size, disk_size): self.main_memory = [None] * main_memory_size # 主存模拟 self.disk = [None] * disk_size # 磁盘模拟 def load_page(self, page_number): if self.main_memory[page_number] is None: # 如果页面不在主存中 self.main_memory[page_number] = self.disk[page_number] # 从磁盘加载到主存 print(f"Page {page_number} loaded from disk to main memory.") def access_address(self, virtual_address): page_number = virtual_address // 4096 # 假设每页大小为4KB self.load_page(page_number) # 加载页面 print(f"Accessing address {virtual_address} in page {page_number}.") ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值