王道考研操作体系之IO打点_lo控制及设置-CSDN博客

第 5 章 i/o打点

5.1 i/o打点概述

5.1.1 啥是i/o设备

5.1.1.1 总览

5.1.1.2 啥是i/o设备

i/o设备就是可以将数据输入到核算机归于核算机中的硬件部件

unix体系将外部设备笼统为一种特别的文件用户可以运用与文件操作相同的方法对外部设备进行操作

write操作向外部设备写出数据

read操作从外部设备读入数据

5.1.1.3 i/o设备的分类

按运用特性分类

人机交互类外部设备数据传输速度慢鼠标、键盘、打印机等——用于人机交互

存储设备数据传输速度快存储设备:移动硬盘、光盘等――用于数据存储

网络通讯设备数据传输速度介于上述二者之间调制解调器等――用于网络通讯

按传输速率分类

低速设备鼠标、键盘等――传输速率为每秒几个到几百字节

中速设备如激光打印机等——传输速率为每秒数千至上万个字节

高速设备如磁盘等——传输速率为每秒数千字节至千兆字节

按信息交流单位分类

块设备如磁盘等——数据传输的根柢单位是“块”

字符设备鼠标、键盘等——数据传输的根柢单位是字符

5.1.2 控制i/o设备的i/o控制器

5.1.2.1 总览

5.1.2.2 i/o设备的构成

i/o设备由机械部件和电子部件构成

机械部件

i/o设备的机械部件首要用来实施具体i/o操作。 如咱们看得见摸得着的鼠标/键盘的按钮移动硬盘的磁臂、磁盘盘面

i/o设备的电子部件一般是一块刺进主板扩展槽的打印电路板。

电子部件—i/o控制器的功用

cpu无法直接控制i/o设备的机械部件用于完成cpu对设备的控制。

这个电子部件就是i/o控制器又称设备控制器。cpu可控制i/o控制器又由i/o控制器来控制设备的机械部件。

    承受和辨认cpu宣告的指令

如cpu发来的read/write指令i/o控制器中会有相应的控制存放器来存放指令和参数

    向cpu陈述设备的状况

i/o控制器中会有相应的状况存放器0标明繁忙

    数据交流

i/o控制器中会设置相应的数据存放器。输出时之后cpu从数据存放器中取走数据。

    地址辨认

类似于内存的地址也需要给各个存放器设置一个特定的“地址”。i/o控制器经过cpu供给的“地址”来判别cpu要读/写的是哪个存放器

5.1.2.3 i/o控制器的构成

cpu与控制器的接口数据

i/o逻辑并担任对设备宣告指令

控制器与设备的接口用于完成控制器与设备之间的通讯

留心

值得留心的小细节称为内存映像i/o即存放器独立编址。

5.1.2.4 i/o控制器的两种存放器编址方法

内存映像——独立编址

内存映像i/o

内存映射i/o。控制器中的存放器与内存地址统编址利益简化了指令。可以选用对内存进行操作的指令来对控制器进行操作

存放器独立编制

存放器独立编制。控制器中的存放器运用单独的地址缺陷还要指明控制器的编号

5.1.3 控制i/o设备的几种方法

程序直接控制方法、中止驱动方法、dma、通道控制

5.1.3.1 总览

i/o控制方法——即用啥样的方法来控制i/o设备的数据read/write

5.1.3.2 程序直接控制方法

key word轮询

结束一次读/写操作的流程图

①cpu向控制器宣告读指令。所以设备建议

②轮询查看控制器的状况

③输入设备预备好数据后将数据传给控制器并陈述本身状况

④控制器将输入的数据放到数据存放器中

⑤cpu发现设备已放置稳当再把cpu存放器中的内容放入内存

⑥若还要持续读入数据则cpu持续宣告读指令

下面以c言语代码和流程图来分析程序直接控制方法

分析一下在思维导图中说到的几个疑问

    结束一次读/写操作的流程key word轮询cpu干与的频率

很频频而且在等候i/o结束的进程中cpu需要不断地轮询查看。

    数据传送的单位

每次读/写一个字

    数据的流向

读操作→内存写操作内存→cpu→i/o

    首要缺陷和首要利益

利益缺陷cpu使用率低

设备每个字的读/写都需要cpu的协助

5.1.3.3 中止驱动方法

因为程序直接控制方法cpu使用率低、忙等所以提出了中止驱动方法

引入中止机制。因为i/o设备速度很慢可将等候i/o的进程堵塞cpu检测到中止信号后cpu恢复等候i/o的进程然后持续实施

留心 ②中止处置进程中需要保存、恢复进程的运转环境也会降低体系功能。

分析一下在思维导图中说到的几个疑问

    结束一次读/写操作的流程key word中止cpu干与的频率

每次i/o操作初步之前、结束之后需要cpu介入等候i/o结束的进程中cpu可以切换到另外进程实施

    数据传送的单位

每次读/写一个字

    数据的流向

读操作 : i/o设备→cpu→内存写操作:内存→cpu→i/o设备

    首要缺陷和首要利

利益cpu不再需要不断地轮询。cpu和i/o设备可并行作业cpu使用率得到显着前进。缺陷都需要经过cpu。而频频的中止处置睬耗费较多的cpu时刻。

5.1.3.4 dma方法

尽管中止驱动方法处置了程序直接控制方法的疑问耗费了许多时刻。所以我们又创造了dma方法

与“中止驱动方法”比较直接存储器存取。首要用于块设备的i/o控制

①数据的传送单位是“块”。不再是一个字、一个字的传送

②**数据的流向是从设备直接放入内存或许从内存直接到设备。**不再需要cpu作为“快递小哥”

③仅在传送一个或多个数据块的初步和结束时才需要cpu干与

cpu指明这非有必要进行的操作

控制器会根据cpu提出的需求结束数据的读/写作业才向cpu宣告中止信号

dma控制器

控制器读取块设备数据其实是一个字一个字读取的先存到dr然后再转存到内存

dr (data register或从内存到设备的数据

mar ( memory address register输出时mar标明要输出的数据放在内存中的啥方位

dc (data counter标明剩下要读/写的字节数

cr (command register或设备的状况信息

分析一下在思维导图中说到的几个疑问

1.结束一次读/写操作的流程

2.cpu干与的频率

仅在传送一个或多个数据块的初步和结束时才需要cpu千预

3.数据传送的单位

每次读/写一个或多个块

4.数据的流向

读操作i/o设备→内存写操作:内存→i/o设备

5.首要缺陷和首要利益

利益:数据传输以“块”为单位数据传输功率进一步添加。cpu和i/o设备的并行性得到前进。缺陷:cpu每宣告一条i/o指令只能读/写一个或多个接连的数据块。 假定要读/写多个离散存储的数据块进行多次中止处置才干结束。

5.1.3.5 通道控制方法

通道控制方法是为晓得决dma方法接连存储的疑问

分析一下在思维导图中说到的几个疑问

5.1.3.6 四种方法总结一下

5.1.4 i/o软件的层次规划

5.1.4.1 i/o软件层次总览

5.1.4.2 用户层软件

5.1.4.3 设备独立性软件

设备独立性软件又称设备无关性软件。与设备的硬件特性无关的功用几乎都在这一层完成

六大功用

①向上层供给共同的调用接口

②设备的维护

原理类似与文件维护。设备被看做是一种特别的文件对设备的造访权限也纷歧样。

③过失处置

设备独立性软件需要对一些设备的差错进行处置

④设备的分配与收回

⑤数据缓冲区打点

可以经过缓冲技能屏蔽设备之间数据交流单位巨细和传输速度的差异

⑥树立逻辑设备名到物理设备名的映射联络根据设备类型选择调用相应的驱动程序

逻辑设备表—lut

操作体系体系可以选用两种方法打点逻辑设备表

第一种方法整个体系只设置一张lut因而这种方法只适用于单用户操作体系第二种方法为每个用户设置一张lut而lut就存放在用户打点进程的pcb中。

为啥不一样的设备需要不一样的驱动程序呢

林林总总的设备也有可以不一样

举几个假定的比方

不一样设备的内部硬件特性也不一样查看设备状况等作业

5.1.4.4 设备驱动程序

首要担任对硬件设备的具体控制查看设备状况等

硬件具体细节只需设备的厂家才晓得。因而厂家需要根据设备的硬件特性方案并供给相应的驱动程序

5.1.4.5 中止处置程序

5.1.4.6 总结回想

了解并记住i/o软件各个层次之间的次序直接触及到硬件具体细节、且与中止无关的操作必定是在设备驱动程序层结束的没有触及硬件的、对各种设备都需要进行的打点作业都是在设备独立性软件层结束的

5.2 i/o中心子体系

5.2.1 内核的i/o中心子体系及功用

5.2.1.1 i/o中心子体系以及功用

设备独立性软件、设备驱动程序、中止处置程序

5.2.1.2 这些功用在哪个层次完成

用户层软件spooling技能)

设备独立性软件

假脱机技能

i/o调度

设备维护

操作体系需要完成文件维护功用。

在unix体系中设备被看做是一种特别的文件

5.2.2 i/o设备假脱机技能(spooling)

5.2.2.1 总览

5.2.2.2 啥是脱机技能

这儿温习一下手工操作期间

手工操作期间主机要浪费许多时刻来等候设备

因为手工期间的速度慢疑问引入了脱机技能

批处置期间引入了脱机输入/输出技能也可以提前将数据输出到磁带。

在外围控制机的控制下然后减轻 了速度敌对

tips为啥称为“脱机”——脱离主机的控制进行的输入/输出操作

5.2.2.3 假脱机技能

在脱机技能的基础上我们创造了非常好的假脱机技能

输入井和输出井

“假脱机技能”

在磁盘上拓荒出两个存储区域——“输入井”和“输出井”

“输入井”仿照脱机输入时的磁带用于收留i/o设备输入的数据”输出井“仿照脱机输出时的磁带用于收留用户进程输出的数据

输入进程与输出进程

要完成spooling 技能必需要有多道程序技能的撑持。体系会树立“输入进程”和“输出进程”。

”输入进程“仿照脱机输入时的外围控制机

“输出进程”仿照脱机输出时的外围控制机

输入输出缓冲区

在输入进程的控制下之后再转存到输入井中

在输出进程的控制下之后再传送到输出设备上

留心输入缓冲区和输出缓冲区是在内存中的缓冲区

同享打印机原理分析—假脱机技能的一种使用

先晓得一下独占和同享设备

独占式设备――只答应各个进程串行运用的设备。一段时刻内只能满足一个进程的恳求。

同享设备――答应多个进程“一起”运用的设备。可以一起满足多个进程的运用恳求。

打印机是种“独占式设备”可是可以用spooling技能改构成“同享设备”

独占式设备的比方则进程2恳求运用打印机时必定堵塞等候

当多个用户进程提出输出打印的恳求时

再将该表挂到假脱机文件行列上。

当打印机空闲时再输出到打印机进行打印。用这种方法可顺次处置完悉数的打印使命

打印恳求结束后实施后续行列的打印使命

尽管体系中只需一个台打印机然后完成对打印机的同享。

spooling技能可以把一台物理设备虚拟成逻辑上的多台设备可将独占式设备改构成同享设备。

5.2.3 i/o设备的分配与收回

5.2.3.1 总览

5.2.3.2 设备分配时大约思考的要素

设备的固有特征

设备的固有特征可分为三种独占设备、同享设备、虚拟设备

独占设备——一个时段只能分配给一个进程

同享设备――可一起分配给多个进程运用而微观上替换运用

虚拟设备――选用spooling技能将独占设备改构成虚拟的同享设备

设备的分配算法

设备分配中的平安性

平安分配方法

一个时段内每个进程只能运用一个设备利益不会死锁缺陷cpu和i/o设备只能串行作业

不平安分配方法之后还可以宣告新的i/o恳求。只需某个l/o恳求得不到满足时才将进程堵塞。

一个进程可以一起运用多个设备利益使进程灵敏推进缺陷

5.2.3.3 静态分配与动态分配

静态分配运转结束后偿还本钱

损坏了“恳求和坚持”条件不会发存亡锁

动态分配进程运转进程中动态请求设备本钱

5.2.3.4 设备分配打点中的数据规划

设备、控制器、通道之间的联络

一个通道可控制多个设备控制器每个设备控制器可控制多个设备

设备控制表—dct

体系为每个设备装备一张dct用于记载设备情况

设备类型——如打印机/扫描仪/键盘

设备标识符——即物理设备名体系中的每个设备的物理设备名仅有

设备状况——繁忙/空闲/毛病…

指向控制器表的指针——每个设备由一个控制器控制该指针可找到相应控制番的信恳

重复实施次数或时刻——当重复实施多次l/o操作后仍不成功才认为这次l/o失利

设备行列的队首指针——指向正在等候该设备的进程行列

注将进程pcb挂到不一样的堵塞行列中”

控制器控制表—coct

每个设备控制器都会对应一张coct。操作体系根据coct的信息对控制器进行操作和打点

控制器标识符——各个控制器的仅有id

控制器状况——繁忙/空闲/毛病…

指向通道表的指针——每个控制器由一个通道控制该指针可找到相应通道的信息

控制器行列的队首指针——

控制器行列的队尾指针——指向正在等候该控制器的进程行列由进程pcb构成行列)

通道控制表—chct

每个通道都会对应一张chct。操作体系根据chct的信息对通道进行操作和打点

通道标识符——各个通道的仅有id

通道状况——繁忙/空闲/毛病…

与通道联接的控制器表首址——可经过该指针找到该通道打点的一切控制器有关信息(coct)

通道行列的队首指针——指向正在等候该通道的进程行列由进程pcb构成行列)

通道行列的队尾指针——

体系设备表—sdt

记载了体系中悉数设备的情况每个设备对应一个表目

设备类型——如打印机/扫描仪/键盘

设备标识符——即物理设备名

dct

驱动程序进口

5.2.3.5 设备分配的进程

①根据进程恳求的物理设备名查找sdt

②根据sdt找到dct若设备繁忙则将进程pcb挂到设备等候行列中不繁忙则将设备分配给进程

③根据dct找到coct若控制器繁忙则将进程pcb挂到控制器等候行列中不繁忙则将控制器分配给进程

④根据coct找到chct若通道繁忙则将进程pcb挂到通道等候行列中不繁忙则将通道分配给进程

注之后便可建议i/o设备进行数据传送

设备分配的改进进程

缺陷:

①用户编程时有必要运用“物理设备名”不便利编程

②若换了一个物理设备则程序无法运转

③若进程恳求的物理设备正在繁忙进程也有必要堵塞等候

改进办法用户编程时只需供给逻辑设备名

①根据进程恳求的逻辑设备名查找sdt

②查找sdt中新增一个表项

③根据dct找到coct不繁忙则将控制器分配给进程

④根据coct找到chct不繁忙则将通道分配给进程

逻辑设备表树立了逻辑设备名与物理设备名之间的映射联络

某用户进程初度运用设备时运用逻辑设备名向操作体系宣告恳求并在lut中添加相应表项

假定之后用户进程再次经过相同的逻辑设备名恳求运用设备而且也能晓得该设备的驱动程序进口地址

逻辑设备表的设置疑问

整个体系只需一张lut各用户所用的逻辑设备名不答应重复适用于单用户操作体系

每个用户一张lut不一样用户的逻辑设备名可重复适用于多用户操作体系

5.2.4 缓冲区打点

5.2.4.1 总览

5.2.4.2 啥是缓冲区

减轻cpu与设备的速度敌对削减对cpu的中止频率处置数据粒度不匹配的疑问前进cpu与i/o设备之间的并行性

cpu可以把要输出的数据快速地放入缓冲区数据输入时类似

假定是字符型设备则每输出完个字符就要向cpu发送一次中止信号

5.2.4.3 单缓冲

假定某用户进程恳求某种块设备读入若干块的数据。若选用单缓冲的战略操作体系会在主存中为其分配一个缓冲区

留心才干从缓冲区把数据传出。

用户进程的内存空间中

t>c时的比方

t<c时

5.2.4.4 双缓冲

t>c

t<c

5.2.4.5 单缓冲和双缓冲通讯时的差异

5.2.4.6 循环缓冲区

5.2.4.7 缓冲池

标签

发表评论

京ICP备18012533号-225
Warning: error_log(/apps/wwwroot/www.zhangshituina.com/wp-content/plugins/spider-analyser/#log/log-1506.txt): failed to open stream: Permission denied in /apps/wwwroot/www.zhangshituina.com/wp-content/plugins/spider-analyser/spider.class.php on line 2966