IO设备分为块设备和字符设备。磁盘属于前者,键盘和打印机属于后者(以字符为单位传输)。
块设备的基本特征是将数据存储到固定大小的块中,每个块都是可寻址的,而且互相独立于其他块可进行读写。
存储容量 = 磁头数 × 磁道(柱面)数 × 每道扇区数 × 每扇区字节数
上图磁盘是一个 3个圆盘6个磁头,7个柱面(每个盘片7个磁道) 的磁盘,图2中每条磁道有12个扇区,所以此磁盘的容量为6712*512字节(252KB)。
磁盘读取时间 = 寻道时间 + 旋转时间 + 传输时间
当需要从磁盘读取数据时,系统会将数据逻辑地址传给磁盘,磁盘的控制电路按照寻址逻辑将逻辑地址翻译成物理地址,即确定要读的数据在哪个磁道,哪个扇区。为了读取这个扇区的数据,需要将磁头放到这个扇区上方,为了实现这一点,磁头需要移动对准相应磁道,这个过程叫做寻道,所耗费时间叫做寻道时间,然后磁盘旋转将目标扇区旋转到磁头下,这个过程耗费的时间叫做旋转时间。
根据局部性原理,如果某处用户用到,那么附近的数据不久后也会用到。所以磁盘IO会预读取一定长度的数据。由于顺序读取效率很高,所以预读取会提高IO效率。
预读取的长度一般是页的整数倍,操作系统中页的大小是4K。内存和磁盘以页作为数据交换的单位。磁盘找到数据后,会在起始位置读取一个或多个页的数据。
The speed of the disk drives determine how fast you can read and write data from and to it. The faster the better. The speed of a disk consists of two numbers: Search time and transfer time.
Search time tells how fast the disk can search to a certain position on the disk. The transfer time tells how fast the disk can transfer data once it is in the right position.
Some disks have a bit of **read cache RAM **to speed up reading of data from the disk.When a chunk of data is requested from the disk, the disk will read a bigger chunk into the cache, hoping that the next chunk requested will be within the data stored in the disk cache memory.
Since SSDs work like memory, the search time is very low. Every memory cell can be addressed directly the search time is very low.
顺便对比一下网络延时而网络IO主要延时包括以下几部分:
服务器响应延时 + 带宽限制 + 网络延时 + 跳转路由延时 + 本地接收延时
(一般为几十到几千毫秒,受环境干扰极大)
网友评论