主存和外存的数据交换单位
1. 主存 (Main Memory) 的访问单位
-
从CPU(硬件)的角度看:字节 (Byte) 或 字 (Word)
-
可寻址的最小单位是“字节 (Byte)”
-
CPU进行数据存取的单位通常是“字 (Word)”。
-
2. 外存 (External Storage) 的访问单位
-
从硬件(磁盘驱动器)的角度看:扇区 (Sector)
- 磁盘上的数据在物理上被划分为一个个大小固定的扇区。扇区是磁盘可以进行读/写的最小物理单位。典型的扇区大小为512字节或4KB。磁盘控制器一次只能读/写整数个扇区,无法只读一个扇区中的某几个字节。
-
从操作系统(文件系统)的角度看:块 (Block) 或 簇 (Cluster)
-
操作系统为了方便管理,屏蔽掉底层硬件的细节,它将磁盘空间在逻辑上划分为一个个的**“块”(在UNIX/Linux中称为Block)或“簇”**(在Windows中称为Cluster)。
-
一个块通常由一个或多个连续的扇区组成(块的大小是扇区大小的整数倍,且通常是2的幂,如1KB, 2KB, 4KB)。
-
操作系统对磁盘进行I/O操作(文件读写)的基本单位是“块”。即使你只想读取文件中的1个字节,操作系统也必须将包含这个字节的整个块从磁盘读入到内存的缓冲区中,然后再从中提取出你需要的字节。同理,写数据也是以块为单位。
-
-
为什么这么做?
-
提高效率: 磁盘I/O的寻道和旋转延迟非常高,远大于数据传输时间。如果每次只读写一个字节,那绝大部分时间都将浪费在寻道和旋转上。一次性读写一个较大的数据块,可以大大摊销这些机械延迟的成本,提高I/O吞吐率。
-
简化管理: 以块为单位进行地址映射和空间管理,比以字节或扇区为单位要简单得多,可以减少文件系统元数据(如FAT表、i-node)的大小。
-
总结与对比表格
存储介质 | 硬件/物理访问单位 | 操作系统/逻辑访问单位 |
---|---|---|
主存 (内存) | 字节 (Byte) 是最小可寻址单位。 字 (Word) 是CPU一次操作传送的数据单位。 |
通常与硬件层面一致,操作系统可以直接按字节或字进行内存分配和访问。 |
外存 (磁盘) | 扇区 (Sector) 是磁盘控制器进行读/写的最小物理单位。 | 块 (Block) / 簇 (Cluster) 是文件系统进行I/O操作的最小逻辑单位。 |
核心要点:
-
CPU可以直接访问主存的任一字节。
-
CPU不能直接访问外存,必须通过操作系统发出I/O请求。
-
操作系统对外存的访问是成块进行的,无法只读/写一个字节或一个扇区。