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