CSNotesCSNotes
TODO
LeetCode
数据结构
计算机组成原理
操作系统
计算机网络
数据库
Java
SSM
React
实用工具
GitHub
TODO
LeetCode
数据结构
计算机组成原理
操作系统
计算机网络
数据库
Java
SSM
React
实用工具
GitHub
  • 第一章 计算机系统概述

    • 1.1 操作系统的基本概念
    • 1.2 操作系统的发展历程
    • 1.3 操作系统运行环境
    • 1.4 操作系统结构
  • 第二章 进程与线程

    • 2.1 进程与线程
    • 2.2 处理机调度
    • 2.3 同步与互斥
    • 2.4 死锁
  • 第三章 内存管理

    • 3.1 内存管理概念
    • 3.2 虚拟内存管理
  • 第四章 文件管理

    • 4.1 文件系统基础
    • 4.2 文件目录
    • 4.3 文件系统
  • 第五章 输入/输出(I/O)管理

    • 5.1 I/O 管理概述
    • 5.2 设备独立性软件
    • 5.3 磁盘和固态硬盘

5.3 磁盘和固态硬盘

5.3.1 磁盘

磁盘的每一个盘片表面都覆盖着磁性物质,信息就记录在表面上。

现代的磁盘在外围的磁道有更多的扇区。

扇区是磁盘读写的最小单位,一般为 512B。

磁盘地址“柱面号·盘面号·扇区号”

写扇区回找到一个磁道写,然后写完一个柱面才移动磁头,因为移动磁头臂时间长。

磁盘从外侧计数,所以一般情况下 C 盘读写速度最快。

磁盘逻辑格式化程序所做的工作是:

一个新的磁盘是一个空白版,必须分成盘区以便磁盘控制器能读和写,这个过程称为低级格式化(或物理格式化)。低级格式化为磁盘的每个扇区采用特别的数据结构。包括校验码。

磁盘存储器的最小读写单位为一个扇区,即磁盘按块读取。磁盘存储数据之前需要进行格式化,将磁盘分成扇区,并写入信息,因此磁盘的格式化容量比非格式化容量小。

磁盘时可共享设备(分时共享),是指某段时间内可以有多个用户进行访问。但某一时刻只能有一个作业进行访问。

5.3.2 磁盘的管理

1.磁盘初始化

2.分区

将磁盘分为由一个或多个柱面组成的分区(C 盘、D 盘)

5.3.3 磁盘调度算法

磁盘调度是对访问磁道次序的调度,如果没有合适的磁盘调度,寻找时间会大大增加。

寻找时间$T_{s}$:磁盘在读写信息前,将磁头移动到指定磁道所需的时间。磁头沿着磁盘半径移动。

其中启动磁臂时间 s 约为 2ms,跨越 n 条磁道,跨越一条磁道约为 0.2ms。

$T_{s}=m\times n+s$

平均寻找时间约为 3~15ms。而 SSD 的寻找时间就快多了,平均寻找时间约为 0.08~0.16ms。

旋转延迟时间$T_{r}$:磁头定位到某一磁道的扇区所需时间。磁头沿着同心圆转圈。就是转半圈的时间。

假设旋转速度为 5400 转/分,也就是$T_{r}$=5.55ms。

$T_{r}=\frac{1}{2r}$

传输时间

$T_{t}=\frac{b}{rN}$

b/n 个磁道,每个磁道 1/r。

总时间=扇区时间(转半圈的时间)+ 寻道时间 + 读取时间 + 延迟时间。

(1)先来先服务(FCFS)算法

磁盘请求队列中的请求顺序分别为 55,58,39,18,90,160,150,38,184。

(2)最短寻找时间优先(SSTF)算法

(3)扫描(SCAN)算法

双向进行。

需要到达磁盘端点。

(4)循环扫描(C-SCAN)算法

单向进行。

需要到达磁盘端点。

(5)LOOK 调度

双向进行。

磁头只需要到达最远端的一个请求即可返回,不需要到达磁盘端点。

(6)C-LOOK 调度

磁头只需要到达最远端的一个请求即可返回,不需要到达磁盘端点。

单向进行。

5.3.4 固态硬盘

固态硬盘是如今最常见的存储设备。固态硬盘比磁盘快且小。

固态硬盘基于闪存技术,没有机械部件,随机读写不需要机械操作,因此速度明显高于磁盘。缺点是容易磨损。

一个闪存由 B 块组成,每块由 P 页组成,页的大小为 512B~4KB,每块由 32~128 页组成,块的大小为 16KB~512KB。数据以页为单位读写。只有某页所在块完全擦出才能写这页。

磨损均衡

闪存擦写寿命只有几百到几千次。所以读写操作尽量均匀分在每个块中。

(1)动态磨损均衡。写入数据时,自动写入较新的闪存块。

(2)静态磨损均衡。让老闪存块存储无需写的数据,读写操作都在新闪存块中进行。

编辑此页
上次更新:
Prev
5.2 设备独立性软件