操作系统笔记------设备管理

I/O系统

硬件基本结构

I/O设备

具体完成数据I/O的设备。
按速率分类:低速设备(键盘),中速设备(打印机),高速设备(磁盘)
按信息交换单位分类:字符设备(键盘), 块设备(磁盘)。

设备控制器

负责连接I/O设备和数据总线,完成设备控制和数据格式转换。
功能:接收和识别命令;数据交换;标志和报告设备状态;地址识别;数据缓冲;差错控制。
编址:端口(I/O端口),独立编址。

I/O通道

目的:使原来由CPU处理的I/O任务转由通道来承担,从而把CPU从繁杂的I/O任务中解脱出来。
I/O通道是—种特殊的处理器,专门负责输入/输出。它具有自己的指令系统,但该指令系统比较简单,一般只有数据传送指令、设备控制指令等;通道没有自己的内存,通道所执行的程序(即通道程序)是存放在主机内存中的,它与CPU共享内存
编址:端口(I/O端口)

I/O系统结构

单通路I/O系统


无冗余设备,容错性差。

多通路I/O系统


有冗余设备,容错性佳。

I/O控制方式

设备管理的主要任务之一,是控制设备和内存或CPU之间的数据传送,外围设备和内存之间常用的数据传送控制方式有四种。
程序I/O方式,中断驱动I/O控制方式,直接存储器存取方式-DMA,通道控制方式。

通道控制方式

通道控制方式与DMA方式相类似,也是一种内存和设备直接进行数据交换的方式。与DMA方式不同的是,在通道控制方式中,数据传送方向存放数据的内存始址及传送的数据块长度均由一个专门负责输入/输出的硬件–通道来控制。另外,DMA方式每台设备至少需要一个DMA控制器,而通道控制方式中,一个通道可控制多台设备与内存进行数据交换。

通道指令包含:
操作码:它规定指令所执行的操作,如读、写等。
内存地址:标明数据传送时内存的首址。
计数:表示传送数据的字节数。
通道程序结束位R0,表示通道程序是否结束。
记录结束标志R1,表示所处理的记录是否结束。

缓冲管理

缓和CPU和I/O设备的矛盾;减少CPU中断的频率;提高CPU和I/O设备的并行性;
单缓冲

双缓冲(缓冲对换)

循环缓冲

缓冲池(公用缓冲池)

两个基本操作:GetBuf()(取);PutBuf(存);
工作方式:收容输入;提取输入;收容输出;提取输出。

设备分配

独占设备:指在一段时间内只允许一个用户(进程)使用的设备。系统一旦把该设备分配给某进程后,便让它独占直至释放。注意:独占设备的分配可能会引起进程死锁。
共享设备:指在一段时间内允许多个进程同时访问的设备。共享设备必须是可寻址的和可随机访问的设备。典型的共享设备是磁盘。共享设备不仅能获得良好的设备利用率,而且是实现文件和数据共享的物质基础。
虚拟设备:指通过某种技术将一台独占设备变换为能供若干个用户共享的设备。可将其同时分配给多个用户,从而提高设备的利用率。

分配算法:先来先服务、优先级高者优先等。

设备分配的安全性

安全方式:串行分配,一个一个分配。
不安全方式:并行分配,可同时分配多个设备资源。

设备独立性

设备独立性定义:用户程序独立于具体使用的物理设备。
实现:采用虚拟技术,编写应用程序时不考虑实际的物理设备。(核心)
物理设备:应用程序实际执行时,使用的特定类型设备
逻辑设备:是对一组具备相同功能物理设备的抽象
编写程序时,使用逻辑设备名称访问设备;程序执行时,使用具体的物理设备完成实际数据操作;

逻辑设备表(LUT)

逻辑设备到物理设备的映射,程序执行时,使用逻辑设备表完成逻辑设备到物理设备的映射。

注意:需要每个用户一张LUT

设备独立性优点

设备分配灵活:若进程以物理设备名称请求使用指定某台设备,如果该设备已经分配给其他进程或正在检修,此时尽管还有其它的相同设备空闲,该进程仍会阻塞。但若进程能以逻辑设备名称来请求某类设备时,系统可立即将该类设备中的任一台分配给进程。
易于实现I/O重定向:指用于I/O操作的设备可以更换(即重定向),而不必改变应用程序。
例如:调试应用程序时,可将程序的所有输出送往屏幕显示;而在程序调试完后,如需正式将程序的运行结果打印出来,此时将I/O重定向的数据结构(逻辑设备表)中的显示终端改为打印机,而不必修改应用程序。

SPOOLing技术

为缓和CPU的高速性与I/O设备低速性之间的矛盾。

组成

输入井和输出井,输入缓冲区和输出缓冲区,输入进程和输出进程。(还有井管理程序)

特点

提高I/O速度;改造独占设备为共享设备;实现虚拟设备。

磁盘存储管理


硬盘由多个盘片(platters)构成(磁头选择),盘片上有多个磁道(磁道号选择),每个磁道有多个扇区(扇区号选择)。
磁盘访问时间:寻道时间Ts+旋转延迟时间Tr+传输时间Tt
寻道时间Ts:8 ~10ms(与磁头移动的速度有关)
旋转延迟时间Tr:1/(2r)(r为转速,取旋转半圈的时间)
传输时间Tt:b/(rN )(b为传输字节数,r: 为转速; N: 每磁道字节数,读取数据的时间)

磁盘调度算法

磁盘是可供多个进程共享的设备,当有多个进程都要求访问磁盘时,应采用一种最佳调度算法,以使各进程对磁盘的平均访问时间最小。
由于在访问磁盘的时间中,主要是寻道时间,因此,磁盘调度的目标,是使磁盘的平均寻道时间最少。

先来先服务(FCFS)

根据进程请求磁盘的先后次序进行调度。

初始时位于100处。

最短寻道时间优先(SSTF)

要求访问的磁道,与当前磁头所在的磁道距离最近,以使每次的寻道时间最短。
SSTF的平均每次磁头移动距离,明显低于FCFS,因而SSTF较FCFS有更好的寻道性能。“磁臂粘着”现象。(磁臂来回的往返)

扫描算法(SCAN)

在磁头移动方向上,且要求访问的磁道,与当前磁头所在的磁道距离最近,以使每次的寻道时间最短。有效解决磁臂粘着现象。

循环扫描(CSCAN)

即为单向SCAN。只在一个磁头移动方向上满足磁道访问请求。要求访问的磁道,与当前磁头所在的磁道距离最近,以使每次的寻道时间最短。有效降低磁道请求最大延迟。
可以想象将磁盘设置为内外环状在访问到内圈时折返回外圈。