CPT101计算机系统概念(存储系统部分)

存储系统

包括了主存和辅存两部分:
主存:随机存储器(RAM,Random Access Memory),一般指内存(内存条)。
辅存:只读存储器(ROM,Read Only Memory),一般指硬盘(固态硬盘,机械硬盘,光盘,软盘等)。
硬盘和内存对比:

  1. 两者读写速度都快
  2. 硬盘的读写速度比内存慢,有几个数量级的差距。
  3. 内存直接和CPU交互,硬盘上的数据需要先加载到内存才能被CPU使用。
  4. 内存中的数据在断电后会消失,硬盘可以在断电情况下长期保存数据。
  5. 相同容量的内存通常比硬盘贵。

三种存储器

随机存取存储器(random access storage):现代的随机存取存储器几乎是所有访问设备中写入和读取速度最快的
直接存取存储器(direct access storage):直接存取存储器可以直接存取信息而不必对存储媒质进行事先顺序搜索的存储器
顺序存取存储器(sequential storage):SAM中的数据存储单元按照线性顺序排列,因而只能依顺序访问(类似于盒式录音带)。如果当前位置不能找到所需数据,就必须依次查找下一个存储单元,直至找到所需数据为止。

内存(Memory)

内存

可以高效的进行数据读写。
速度在CPU高速缓存之下,硬盘之上。

页(Pages)

页是操作系统与内存交互时的最小单位,其大小通常为4kb。
词汇:物理页面通常被称作Page Frames,而虚拟地址空间的页面通常被称为pages.Linux以page为单位管理内存。

寻址逻辑(Virtual Memory Addressing)

一般的4KB页系统中,用户程序的地址都是32位。
其中低12位是页内地址,高20位是页编号。
MMU(Memory Management Unit):将逻辑地址映射到物理内存区域中的物理地址上。
原理:物理地址 = 段地址 + 偏移地址
偏移地址是指段内相对于段起始地址的偏移值,例如一个存储器的大小是1KB,可以把它分为4段,第一段的地址范围就是0—255,第二段的地址范围就是256-511,依次类推。。这些段内的偏移地址就是在0-255的范围内的。
段地址就是每一段的首地址,第一段的段地址就是0,计算它们的物理地址只需要把段地址左移4位就可以了,再加上偏移地址就可以了。

硬盘缓冲(Disk cache)

内存中有一部份区域,会被用来存储硬盘中一些需要经常被读取或修改的数据。

注意:硬盘不直接与CPU交互,其中的数据必须先被加载到内存中才能被CPU使用,缓存只是为了减少硬盘IO次数,而让一部分的硬盘资源驻留在内存中。

硬盘(Hard disk)

硬盘

硬盘结构

硬盘的主要部分:
Heads(磁头):负责读写数据。
Tracks(磁道):每个盘面可以划分多个磁道,最外圈的磁道是0号磁道,向圆心增长依次为1磁道、2磁道…磁盘的数据存放就是从最外圈开始的
sectors(扇区):根据硬盘的规格不同,磁道数可以从几百到成千上万不等。每个磁道可以存储数 Kb 的数据,但是计算机不必要每次都读写这么多数据。因此,再把每个磁道划分为若干个弧段,每个弧段就是一个扇区。扇区是硬盘上存储的物理单位,现在每个扇区可存储 512 字节数据已经成了业界的约定。也就是说,即使计算机只需要某一个字节的数据,但是也得把这个 512 个字节的数据全部读入内存,再选择所需要的那个字节。
cylinders(柱面):柱面是我们抽象出来的一个逻辑概念,简单来说就是处于同一个垂直区域的磁道称为柱面 ,即各盘面上面相同位置磁道的集合。需要注意的是,磁盘读写数据是按柱面进行的,磁头读写数据时首先在同一柱面内从 0 磁头开始进行操作,依次向下在同一柱面的不同盘面(即磁头上)进行操作,只有在同一柱面所有的磁头全部读写完毕后磁头才转移到下一柱面。因为选取磁头只需通过电子切换即可,而选取柱面则必须通过机械切换。数据的读写是按柱面进行的,而不是按盘面进行,所以把数据存到同一个柱面是很有价值的。

硬盘容量

硬盘容量 = 盘面数 × 柱面数 × 扇区数 × 512字节

硬盘寻址模式

标准硬盘模式:cylinder, head and sector (CHS),限定硬盘容量柱面为 1024,最大容量为 540MB,现在市场上已经没有了。

大硬盘寻址模式(课件中没提到):LARGE寻址模式把柱面数除以整数倍、磁头数乘以整数倍而得到的逻辑磁头/柱面/扇区参数进行寻址,所以表示的已不是硬盘中的物理位置,而是逻辑位置。

逻辑块寻址模式:absolute sector number (LBA),LBA寻址模式是直接以扇区为单位进行寻址的,不再用磁头/柱面/扇区三种单位来进行寻址。但为了保持与CHS模式的兼容,通过逻辑变换算法,可以转换为磁头/柱面/扇区三种参数来表示,但表示的也和LARGE寻址模式一样,已不是硬盘中的物理位置,而是逻辑位置了。

虚拟内存(Virtual Memory)

与硬盘缓存相反,虚拟内存使用硬盘空间来代替部分内存,使得电脑可以运行大于内存容量的程序。但其运行速度会相应降低。

操作系统启动后,在内存中维护着一个虚拟地址表,进程需要的虚拟地址在虚拟地址表中记录。一个程序被加载运行时,只是加载了很少的一部分到内存,另外一部分在需要时再从磁盘载入。被加载到内存的部分标识为“驻留”,而未被加载到内存的部分标为“未驻留”。操作系统根据需要读取虚拟地址表,如果读到虚拟地址表中记录的地址被标为“未驻留”,表示这部分地址记录的程序代码未被加载到内存,需要从磁盘读入,则这种情况就表示"缺页"。这个时候,操作系统触发一个“缺页”的硬件陷井,系统从磁盘换入这部分未“驻留”的代码。
引入了分页机制(也就有了缺页机制),则系统只需要加载程序的部分代码到内存,就可以创建进程运行, 需要程序的另一部分时再从磁盘载入并运行,从而允许比内存大很多的程序同时在内存运行。

  • 12
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值