SMS Derfflinger
Just for fun.
首页
文章
标签
分类
关于
Lec28-31 Virtual Memory, IO
最近更新:2025-01-26
|
字数总计:1.8k
|
阅读估时:6分钟
|
阅读量:
次
Operating Systems Basic
硬件只能完成特定的功能,要想完成复杂的功能要依靠编程的软件,最重要的系统软件就是操作系统(废话)。
操作系统使得计算机可以运行多个程序,而不是一次只能运行一个。
在访问内存时,例如访问地址为0x1000处的内存时,发出的实际是这个进程拥有的虚拟地址,操作系统将其映射到物理地址,并维护一张页表,这种功能是由硬件提供的。
针对不同用户有不同权限的模式:用户模式、机器模式、管理模式
一般通过更改控制和状态寄存器(CSR)实现
计算机启动的过程:
Operating Systems Functions
中断:由外部事件引起,独立于当前运行程序,例如键盘输入,不必立即处理
异常:由程序内部引起,通常是严重错误,必须立即处理
中断和异常的处理方式类似:trap handling
在处理时,需要完整的保存寄存器的状态,处理之后恢复
操作系统同时运行大量的程序,通过上下文切换来实现
Virtual Memory
为了实现同时运行大量的程序,需要一种内存共享机制
虚拟内存让运行的程序有一种错觉:认为它在任何时候都有非常非常大的内存可供使用
可以将磁盘作为扩展的内存
虚拟内存使操作系统实现了隔离性,运行的进程彼此互不影响
Physical Memory and Storage
Memory
DRAM(动态随机存取存储器)
用途
:DRAM通常用作计算机系统的主内存或RAM,因为它具有较高的存储密度和较低的成本。
特点
:
高密度
:能够在较小的物理空间中存储大量数据。
需要刷新
:由于数据存储在电容器中,需要定期刷新以保持数据。
SRAM(静态随机存取存储器)
用途
:SRAM常用于实现CPU缓存(如L1、L2、L3缓存),因为它的访问速度较快。
特点
:
速度快
:比DRAM更快,适合需要高频率快速访问的场景。
不需要刷新
:数据存储在寄存器中,不会自动丢失,因此不需要定期刷新。
DRAM和SRAM中的数据是易丢失的
DRAM比SRAM更易丢失,需要定时刷新数据
Storage
SSD(固态硬盘)
存储介质
:SSD使用闪存(通常是NAND闪存)来存储数据。
闪存
:闪存通过电流改变存储单元的状态来编程数据,而擦除则是将其恢复到初始状态。一个重要特点是,闪存通常以块为单位进行擦除,这意味着在写入新数据之前,必须先擦除整个块。
特点
:
速度快
:SSD具有较低的访问时间和较高的读取/写入速度。
无移动部件
:由于没有机械结构,SSD更加耐用,抗震动能力强。
功耗低
:在待机状态下,SSD的功耗通常低于HDD。
HDD(机械硬盘)
存储介质
:HDD使用磁性盘片(通常是铝或玻璃制成)来存储数据,数据通过机械臂在盘片上读取和写入。
特点
:
容量大
:HDD通常提供更高的存储容量,价格相对较低。
速度慢
:相比于SSD,HDD的读取/写入速度较慢,访问时间长,因为需要物理移动机械臂。
易受损
:由于有移动部件,HDD更容易受到物理损坏。
Memory Manager
内存管理器的任务:
Paged Memory
Paged Memory(分页内存)是一种内存管理方案,它将物理内存和虚拟内存划分为固定大小的块,称为“页”(pages)和“页框”(page frames)。这种机制使得系统能够更有效地使用内存资源,并支持虚拟内存的实现。
当程序访问虚拟地址时,分页机制通过页表(page table)将虚拟地址转换为物理地址,物理地址有可能在磁盘中。
实际上分配的物理地址可能是不连续的
页表通常存储在主内存(RAM)中,因为页表的大小对于缓存来说太大了
可以将页表中被经常访问的部分存在缓存中以加快访问速度
Page Faults
Blocks vs. Pages
Page fault:程序访问不在物理内存中的虚拟地址时
虚拟地址对应的物理地址在磁盘中
未访问过此虚拟地址,将重新分配页面
Hierarchical Page Tables
在32位系统中,页大小一般为4KB,页面数量为
,页表大小为4MB
假如要支持256个进程,页表总大小为1GB,在64位系统中可能更大
减小页表总大小的措施:
增加页大小:会加重内存浪费
层次页表:将页表分为多个级别,每个级别的页表指向下一级的页表或最终的物理页面。这种结构使得只有在需要时才会分配内存,从而节省资源。
Translation Lookaside Buffers
层次页表实际上增加了内存的访问次数,需要进行硬件加速
使用TLB(Translation Lookaside Buffer):一种用于加速虚拟地址到物理地址转换的缓存机制,一种快速缓存,用于存储最近被访问的页表项。
访问TLB可以在大约一个周期内完成
替换策略一般为FIFO,LRU,Random
TLB的访问次序先于缓存,缓存中保存的是
物理地址
TLB in Datapath
位于缓存的前面
在绝大多数情况下TLB都会命中,少数未命中的情况下需要多次访问内存加载页表
上下文切换:上下文切换(Context Switching)是操作系统中的一个重要概念,用于在多任务环境中高效地管理进程或线程的执行。它指的是操作系统保存当前进程或线程的状态,并加载另一个进程或线程的状态,从而实现任务之间的切换。
IO Devices
计算机通过统一的IO接口与IO设备交互
可以通过内存映射IO设备实现,在系统设计阶段,操作系统或硬件平台会为每个 I/O 设备分配一块地址范围。这些地址范围不会与主内存地址冲突。
IO Polling
IO轮询:CPU 定期检查一个或多个 I/O 设备的状态寄存器,以确定设备是否需要服务或者是否可以进行数据传输。
实现简单,效率不高
是处理器主动发起的
IO Interrupts
允许设备在需要 CPU 处理时主动通知 CPU,而不是让 CPU 不断轮询设备状态。
适用于速度不高的IO设备(鼠标、键盘)
DMA
直接访问内存:外部设备直接与系统内存进行交互,而无需通过 CPU 进行中介。
涉及大量数据的IO设备通常基于DMA
2024-10-03
该篇文章被 Derfflinger
打上标签:
System
Virtual-Memory
TLB
归为分类:
CS61C