Linux的设备管理

一 设备管理    

     在计算机系统中,除了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

Linux的设备管理_第1张图片

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的设备管理_第2张图片

●文件名:用来标识文件的字符串,它保存在一个目录文件项中。 
●路径名:由斜线字符(/)结合在一起的一个或多个文件名的集合。 
●文件命名: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把外部设备当作文件来处理,并根据数据交换的特性将外部设备分为三类:字符设备、块设备和网络设备。 

你可能感兴趣的:(Linux)