内容发布更新时间 : 2024/11/15 3:34:01星期一 下面是文章的全部内容请认真阅读。
Linux系统设备如何管理
摘要:文章从缓冲技术、设备分配技术、磁盘调度和管理以及Linux系统的设备管理 来逐渐深入的解释Linux的设备管理方法。
一.概述 (一)设备分类 1. 存储设备
存储设备也称为外存或后备存储器、 辅助存储器。 它们主要是计算机用来存储信息的设备, 虽然它们的存储速度较内存慢, 但比内存容量大得多, 价格也相对便宜。 存储设备通常包括磁盘、 CD-ROM、 磁带等。 特别是磁盘, 在现代计算机系统中得到广泛应用, 多数处理过程都是基于磁盘系统的。
磁盘提供了基本的联机信息(程序和数据)的存储。 大多数程序, 像编译程序、 汇编程序、 编辑程序、 格式化程序以及用户程序, 等等, 都是以文件形式存放在磁盘上, 在使用时才调入内存的。 在这类设备上存储的信息, 在物理上往往是按字符块组织的, 每一块有固定的大小, 并且有自己的磁盘地址。 常用块的大小从512字节到32 768字节。
2.输入/输出设备
它们又可分为输入和输出两类。 输入设备是计算机用来接受来自外部世界信息的设备, 例如终端键盘输入、 卡片输入机、 鼠标等。 输出设备是将计算机加工处理好的信息送向外部世界的设备, 例如终端屏幕显示或打印输出部分、 激光打印机、 卡片输出机等。 而modem设备既可以输入, 也可以输出。 设备管理的功能
设备的种类繁多, 而其物理特性和使用方式各不相同, 所以设备管理程序在整个操作系统中占很大比重。 设备管理要达到的目标主要是:
(1) 向用户提供使用方便而且独立于设备的界面。 (2) 提高各种外设的使用效率。
3) 在设计上, 对各种外设尽可能采用统一的管理方法, 使得设备管理系统简练、 可靠且易于维护。
为了实现上述目标, 操作系统的I/O管理子系统主要实现如下功能: (1) 监视设备状态。 (2) 进行设备分配。 (3) 完成I/O操作。 (4) 缓冲管理与地址转换。 (二)通道技术 1. 输入/输出系统结构
比较典型的输入/输出系统具有四级结构: 内存、 通道、 控制器和外部设备。
外部设备通常由机械和电子两部分组成。 由于许多设备往往不是同时使用的, 因此为降低成本常将电子部分从设备中独立出来构成一个部件, 称为控制器。 一个控制器可交替地控制几台同类设备。
2. 通道的类型
虽然各种I/O通道的基本功能是相同的, 但其形式和规模却相差很大。 有的很简单, 有的甚至用CPU作为I/O通道。 根据信息交换的方式, 通道可以分成三种类型: 字节多路通道、 选择通道和成组多路通道。 (三) 设备控制器
在大多数微型机和小型机中都使用单总线实现CPU与控制器之间的通信,控制器是I/O设备的电子部分, 它协调和控制一台或多台I/O设备的操作, 并实现设备操作与整个系统操作的同步。 在小型机和微型机上, 控制器往往以印刷电路卡的形式插入计算机中。 很多控制器可以管理2台、 4台甚至8台同样的设备。 操作系统总是与控制器打交道, 而不是与设备直接作用。 6. 缓冲技术(Buffering) 二.缓冲技术的引入
计算机系统中各个部件间速度的差异是很大的。 CPU的速度是以微秒甚至毫微秒量级计算的, 而外设一般的处理速度是以毫秒甚至秒量级计算的。 在不同时刻, 系统中各部分的负荷也常常很不均衡。 缓冲技术同样适用于输出的情况, CPU把产生的记录放入缓冲区, 输出设备从中取出来输出它们。
实际上, 缓冲区不仅限于CPU和I/O设备之间, 凡是数据到达速率和离去速率不同的地方都可设置缓冲区。 三. 设备分配技术
1. 与设备分配相关的因素
各种设备是系统掌管的资源。 在一般系统中, 进程个数往往多于设备数, 从而引起进程对设备的竞争。
(1) I/O设备的固有属性。 (2) 系统所采用的分配算法。 (3) 设备分配应防止死锁发生。
(4) 用户程序与实际使用的物理设备无关。 2. 设备分配技术
根据设备的使用性质可将设备分为独占设备、 共享设备和虚拟设备三种。 针对这三种设备采用三种分配技术: 独占分配、 共享分配和虚拟分配。 3. 设备分配算法
设备分配算法就是按照什么原则把设备分给进程。 对设备的分配算法与进程的调度算法有相似之处, 但比较简单。 常用的算法有先来先服务和优先级高的优先服务。
四.磁盘调度和管理
几乎所有的计算机都用磁盘存储信息, 这是由于磁盘相对于内存有如下三个主要优点:
(1) 容量很大;
(2) 每位的价格非常低;
(3) 当关掉电源后存储信息不丢失。 1. 物理特性
磁盘在物理性能上相对来说是简单的(如图6-10所示)。 每个盘有一串同心圆和一个读/写头。 由磁性物质覆盖在它的两个表面上, 信息就记录在磁表面上。
(一)磁盘调度算法 1. 先来先服务调度(FCFS)
先来先服务(First Come, First Served)调度算法是最简单的一种形式, 它最容易实现, 但是并没有提供最佳的服务(平均来说)。
2. 最短寻道时间优先法(SSTF)
在把磁头移到远处为另外的请求服务之前, 应先把接近于磁头当前位置的所有请求都服务完。 这种假定是根据最短寻道时间优先(Shortest Seek Time First)调度算法得来的。 SSTF选择的请求距当前磁头所在位置有最小的寻道时间。 由于寻道时间通常正比于两个请求的磁道差值, 因此磁头移动总是移到距当前磁道最近的磁道上去。 3. 扫描法(SCAN)
由于请求从本质上看服务的队列具有动态性质, 因此可采用扫描算法。 读/写磁头从磁盘的一端出发, 向另一端移动, 遇到所需的磁道时就进行服务, 直至到达磁盘的另一端。 在另一端上, 磁头移动方向倒过来, 继续做下面服务。 这样磁头就连续从盘的一端扫到另一端。 4. 巡回扫描法(C-SCAN)
C-SCAN(巡回扫描法)是SCAN的变种, 可使等待时间变得更均匀。 与SCAN相同, C-SCAN也是把磁头从盘的一端移向另一端, 到达请求的道就进行服务。 然而, 当它到达另一端时, 就立即返回到盘的开头, 在返回过程中不进行服务。 C-SCAN把磁盘视为一个环, 它的最后一道挨着最初一道。 (二)磁盘管理