一 设备管理

在计算机系统中,除了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把外部设备当作文件来处理,并根据数据交换的特性将外部设备分为三类:字符设备、块设备和网络设备。

Linux操作系统的设备独立性,Linux的设备管理相关推荐

  1. linux操作系统的体系架构,linux操作系统的体系架构_linux操作系统的关机指令

    linux操作系统的体系架构 Linux系统结构一般有3个主要部分:内核kernel.命令解释层Shell或其他操作环境.实用工具. 1.Linux内核 内核是系统的核心,是运行程序和管理磁盘.打印机 ...

  2. linux cdc设备驱动程序,Linux Kernel 'cdc-wdm' USB设备驱动程序堆缓冲区溢出漏洞

    发布日期:2013-03-14 更新日期:2013-03-19 受影响系统: Linux kernel 3.x Linux kernel 2.6.x 描述: --------------------- ...

  3. linux查看设备硬件,linux查看硬件信息及驱动设备相关整理

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 联系我登录 首页 业界新闻 技术文章 资源分享 微语 linux查看硬件信息及驱动设备相关整理[转] 蓝猫 发布于:2014-5-30 17:48 分类: ...

  4. linux iic 设备驱动,linux IIC设备驱动.doc

    linux IIC设备驱动 //---------------IIC的linux驱动------------------#include #include #include #include #inc ...

  5. linux操作系统的五大支柱,Linux 的五大支柱

    通过上述说明,我们可以对上述Linux 的五大支柱归纳如下: ① UNIX 操作系统 -- UNIX 于1969 年诞生在Bell 实验室.Linux 就是UNIX 的一种克隆系统.UNIX的重要性就 ...

  6. linux裸设备文件系统,Linux当中的文件系统

    1. 设备专用文件(设备文件) 设备专用文件与系统的某个设备相对应.在内核中,每种设备类型都有阈值向对应的设备驱动程序,用来处理设备的所有I/O请求.可以将设备划分为字符设备和块设备两种. 每个设备文 ...

  7. linux fb设备驱动,linux设备驱动归纳总结(八):1.总线、设备和驱动

    linux设备驱动归纳总结(八):1.总线.设备和驱动 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ...

  8. linux 打开设备 流程,Linux系统启动流程

    1.linux系统启动流程 1.加载BIOS的硬件信息,获取第一个启动设备 Power-On-Self-Test,加电自检,是BIOS功能的一个主要部分.负责完成对CPU.主板.内存.硬盘子系统.显示 ...

  9. linux ioctl 设备只读,linux – 尝试SSH时设备的ioctl不合适

    我正在尝试SSH几台服务器并尝试获取每台服务器的sudo -l输出. 下面是我正在执行的脚本 #!/bin/bash serverlist="/tmp/servers" while ...

最新文章

  1. 面试官问:说说悲观锁、乐观锁、分布式锁?都在什么场景下使用?有什么技巧?...
  2. etal斜体吗 参考文献_论文格式与论文参考文献格式
  3. linux内核版本 2.6.39,linux – 为什么这个内核模块在2.6.39上被标记为永久
  4. matlab 低秩矩阵分解,低秩分解的matlab代码看不懂,分解的两个矩阵在哪呀??...
  5. Swift之深入解析“属性”的底层原理
  6. Java死了还是无敌?
  7. 【常见笔试面试算法题12】动态规划算法案例分析
  8. iOS开发-网络-合理封装请求接口
  9. 数据:42家公司持有超135万枚BTC 价值逾650亿美元
  10. VegasMovie Studio无法安装怎么办?
  11. javasocket编程(javasocket通信)
  12. windows 控制台cmd乱码(及永久修改编码)的解决办法
  13. 采用计算机发布调度命令时 必须严格遵守,关于调度命令规范格式.doc
  14. 用python爬虫写一个属于自己的彩虹屁生成器!
  15. Samsung Bada程序介绍——CurrencyShow
  16. 怎么建立局域网_tp-link无线路由器怎么设置 tp-link无线路由器设置方法【图文教程】...
  17. Angel investor
  18. 前端flyUI的方法使用注意事项
  19. 成功解决error: no match for ‘operator<<’ (operand types are ‘std::basic_ostream<char>’ and ‘Eigen::Quate
  20. FRAM芯片扩展在低功率应用中的耐力

热门文章

  1. Python urllib.urlencode
  2. 六个免费网站统计平台工具对比推荐 你的网站统计用哪个
  3. Linux中chmod命令的用法
  4. 图书速读 | 一分钟读完《学会如何学习》
  5. coreldraw x4怎么写字_CorelDRAW实例:给文字排版的几个小技巧(4)
  6. 搭配online:抖音企业号数量破400万,奇妙好物节即将开启
  7. CouchDB使用小记
  8. 教你怎么添加自己QQ为QQ好友 最新方法
  9. CF1485C(整除分块+根号分块)
  10. Static Clutter Removal DPU