一 设备管理
在计算机系统中,除了CPU和内存之外,其余的大部分硬件设备称为外部设备。外部设备包括常用的I/O(输入/输出)设备、外存设备以及终端设备等。
1、I/O设备的类型
●按设备的所属关系可以将I/O设备分为两类:系统设备 、用户设备 。
●按设备的信息交换的单位可将I/O设备分为两类:字符设备 、块设备。
●按设备的共享属性可将I/O设备分为三类:独占设备 、共享设备 、虚拟设备 。
2、设备管理的任务和功能
主要任务
●选择和分配I/O设备以便进行数据传输操作。
●控制I/O设备和CPU(或内存)之间交换数据。
●为用户提供一个友好的透明接口,把用户和设备硬件特性分开,使得用户在编制应用程序时不必涉及具体设备,由系统按用户的要求来对设备的工作进行控制。
●提高设备和设备之间、CPU和设备之间以及进程和进程之间的并行操作程度,以使操作系统获得最佳效率。
主要功能
●提供和进程管理系统的接口
●进行设备分配
●实现设备和设备、设备和CPU等之间的并行操作
●进行缓冲管理
●设备控制与驱动
3、设备控制器
为实现设备控制器的功能,大多数设备控制器都由以下三部分组成。
(1) 设备控制器与处理机的接口
(2) 设备控制器与设备的接口
(3) I/O逻辑
4、I/O通道
虽然在CPU与I/O设备之间增加了设备控制器后,已能大大减少CPU对I/O的干预,但当主机所配置的外设很多时,CPU的负担仍然很重。为此,在CPU和设备控制器之间又增设了通道。设置I/O通道的目的是为了建立独立的I/O操作,不仅使数据的传送能独立于CPU,而且也希望有关对I/O操作的组织、管理及其结束处理也尽量独立,以保证CPU有更多的时间去进行数据处理。
5、缓冲技术
引入缓冲区的主要原因
●缓和CPU与I/O设备间速度不匹配的矛盾。
●减少对CPU的中断频率,放宽对CPU中断响应时间的限制。
●提高CPU和I/O设备之间的并行性。
6、设备驱动
设备驱动程序又称为设备处理程序,它是I/O进程与设备控制器之间的通信程序,是一种低级的系统例程。
设备驱动程序的处理过程
●将抽象要求转换为具体要求
●检查I/O请求的合法性
●读出和检查设备的状态
●传送必要的参数
●工作方式的设置
●启动I/O设备
二 设备控制
1、I/O控制方式
在I/O控制方式的整个发展过程中,始终贯穿着这样一条宗旨,即尽量减少主机对FO控制的干预,把主机从繁杂的I/O控制事务中解脱出来,以便更多地去完成数据处理任务。
⑴ 程序I/O方式
⑵中断驱动I/O控制方式
⑶ DMA控制方式
⑷ I/O通道控制方式
2、设备分配与共享
在多道程序环境下,系统中的设备不允许用户(进程)自行使用,而是由操作系统中的设备分配程序负责。在某次设备分配可能和安全的前提下,设备分配程序向提出设备请求的进程分配设备。
⑴设备分配中的数据结构
●系统设备表(System Device Table,SDT)
●设备控制表(Device Control Table,DCT)
●控制器表(Controler Control Table,COCT)
●通道控制表(Channel Control Table,CHCT)
⑵设备分配时应考虑的因素
●设备的固有属性
●设备分配算法 :先来先服务 、优先级最高者优先
●设备分配中的安全性 :静态分配、动态分配
●设备独立性
⑶独占设备的分配程序
若不考虑设备独立性和多通路的情况,当某进程提出I/O请求后,系统的设备分配程序将按下述步骤进行设备分配。
●分配设备
●分配控制器
●分配通道
注意:只有在设备、控制器和通道三者都分配成功时,这次设备分配才算成功。随后,便可启动I/O设备进行数据传送。
3、虚拟设备技术
在设备管理中,通过SPOOLing技术可将一台物理I/O设备虚拟为多台逻辑I/O设备,这就实现了所谓的虚拟设备。
⑴ SPOOLing技术的定义
为了缓和CPU的高速性与I/O设备的低速性之间的矛盾,曾引入了脱机输入/输出技术。该技术是利用专门的外围控制机,将低速I/0设备上的数据传送到高速磁盘上,或者相反。此时的外围操作与CPU对数据的处理可以同时进行,我们把这种在联机情况下实现的同时外围操作称为SPOOLing(Simultaneaus Periphemal Operating On-Line),或称为假脱机操作。
⑵SPOOLing系统的组成
主要由3部分组成 :
●输入井和输出井
●输入缓冲区和输出缓冲区
●输入进程SPi和输出进程SPo
4、磁盘存储器管理
磁盘存储器不仅容量大,存取速度快,而且可以实现随机存取,是当前存放大量程序和数据的理想设备,故在现代计算机系统中,都配置了磁盘存储器,并以它为主来存放文件。
⑴磁盘性能简介
磁盘的每个盘片有正反两个磁表面,若干张盘片可以组成一个盘组。每个盘面上有多条同心圆磁道,不同盘面上具有相同编号的磁道在同一个柱面上,从“0”开始按由外向里的次序顺序编号,称为“柱面号”。为区分不同的盘面,从“0”开始给每个盘面编号,称为“磁头号”。在磁盘初始化时把每个盘面划分成相等数量的扇区,按磁盘旋转的反向从“0”开始给各扇区编号,称为“扇区号”。每个扇区将磁道分割成弧段,我们称它为“块”。磁盘的每块上存放相等数量的信息,块是磁盘信息读写的最小单位。由此,要确定一个块所在的位置,就必须给出3个参数:柱面号、磁头号和扇区号。
启动磁盘执行输入输出操作时,首先要把移动臂移动到指定的柱面,称为寻道。同时磁盘控制器控制磁盘高速旋转,待指定的扇区旋转到磁头位置下时,读写控制电路让指定的磁头进行读写。
目前常用的磁盘调度算法有:
●先来先服务(FCFS)算法
●最短寻道时间优先(SSTF)算法
●扫描(SCAN)算法
●循环扫描(CSCAN)算法
三 Linux设备管理
1、设备文件
●设备类型
●主设备号与次设备号
●设备文件
2、设备驱动程序概述
●驱动程序
●设备驱动程序的特点
●查询与中断
●DMA
●设备驱动程序与内核的接口
3、设备驱动程序的结构
●设备驱动程序的实现方法
●字符设备驱动程序的结构
●块设备驱动程序的结构
4、Linux系统中光盘的使用
在光盘驱动器中插入这张MP3光盘,进入/mnt目录,看到有cdrom目录和floppy目录,前一个很明显是用来安装光盘文件系统的,后一个则是用来安装软盘文件系统的。
用mount命令进行文件系统的安装。mount命令的基本格式如下:
mount系统设备名称安装点
现在安装光盘文件系统,可以在命令行上键人:
mount/dev/cdrom/mnt/cdrom
稍候片刻,光盘文件系统便安装上了
四 目录与文件系统简介
●文件:Linux系统和Unix系统一样,把一切都视为文件,包括目录、硬件接口设备等。
●目录:其中包含许多文件项目的一类特殊文件。
●子目录:被包含在另一个目录中的目录
●文件名:用来标识文件的字符串,它保存在一个目录文件项中。
●路径名:由斜线字符(/)结合在一起的一个或多个文件名的集合。
●文件命名:Linux的文件名几乎可以由ASCII字符的任意组合构成,文件名最长可多达255个字符。
管理文件的约定:
●文件名应尽量简单,并且应反映出文件的内容。
●除斜线(/)和空字符(ASCII字符为\0)以外,文件名可以包含任意的ASCII字符。
●习惯上允许使用下线符(-)和点(.)来区别文件的类型,使文件名更易读;但是应避免使用 ;| < > ` ” ’$ ! % & * ? \() [ ] 。
●同类文件应使用同样的后缀或扩展名。
●以圆点(.)开头的文件名是隐含文件,默认方式下使用ls命令并不能把它们在屏幕上显示出来。
五Linux文件系统管理
文件系统是操作系统中负责存取和管理信息的程序模块,它用统一的方法管理用户和数据信息的存储、检索、更新、共享和保护,并为用户提供方便有效的文件使用和操作方法。
1、Linux基本文件系统与Linux支持的文件系统
2、文件名和通配符
●文件名
Linux系统对文件名有以下规定:
◆文件名中不能包含任何对Shell有特殊含义的字符。这些字符是!?$ # * & ! \ ; < > [ ] { } ( ) ^ @ % | / 等。
◆可使用长文件名,最长为256个字符。
◆文件名区分大小写。
●文件分类
◆普通文件
◆目录文件
◆链接文件
◆设备文件
●Linux基本文件系统
●Linux系统支持的文件系统
●通配符
通配符的作用是代替一个或多个字符。
常用通配符及含义如下:
◆“*”代表若干个任意字符。
◆ “?”代表一个任意字符。
◆ “[…]”表示匹配方括号内的任意一个字符。
◆“[a-y]”表示匹配方括号内两个字符之间的任意一个字符。
◆“[!…]”表示匹配不在方括号内的任意一个字符。
3、Linux文件系统结构
Linux操作系统将所有的文件系统放在唯一的根目录(/)下形成树形结构,采用树形目录结构来组织和管理系统的所有文件。根是所有目录的起始点,根目录下主要有以下的子目录。
● /bin 存放常用命令和实用程序
● /sbin
● /boot 该目录存放Linux引导程序,操作系统内核,以及相关文件
● /dev 存放与硬件设备驱动程序有关的设备文件
● /etc 又称杂项目录,存放了大量系统配置文件
● /home 用于存放各用户的主目录,用户文件
● /lib 存放常用程序的库函数文件
● /mnt:移动存储设备的挂载点目录
● /proc:存放操作系统运行时,进程(正在运行中的程序)信息及内核信息
● /root: Linux系统超级权限用户root的主目录
● /tmp: 临时文件目录,有时用户运行程序的时候,会产生临时文件
● /usr 存放用户服务例程
● /var 包括用于管理和维护本地计算机的文件,主要是一些进程频繁变动的文件
Linux系统对计算机的所有的外部设备进行统一的分配和控制,对设备驱动、设备分配和共享等操作等进行统一的管理。
Linux设备管理主要是从Linux设备的原理、设备的控制方式和虚拟设备等方面来展开的;无论是哪个类型的设备,Linux都把它统一当作文件来处理,只要安装了驱动程序,任何用户都可以像使用文件一样来使用这些设备,而不必知道它们的具体存在形式。Linux把外部设备当作文件来处理,并根据数据交换的特性将外部设备分为三类:字符设备、块设备和网络设备。