[操作系统系列]设备管理

设备管理

与计算机相连的I/O设备种类繁多,物理特性各异。操作系统的设备管理模块负责控制这些设备使用,同时屏蔽它们的差异,为上层应用提供方便统一的服务接口 。 尽量使得外围设备都并行工作。
设备控制器:(接口技术)
IO设备通常由机械部分和电子部分两部分组成,机械部分就是设备本身,电子部分称为设备控制器或适配器设备控制器用于管理端口,总线或设备实现设备的主体部分(机械部分和主机的交互,通常一个设备控制器可以控制多台同类型的设备,设备控制器常常以印刷电路板的形式插入计算机。
设备控制器是一个可编址的设备,当它仅控制一个设备时,它只有一个唯一的设备地址;若控制可连接多个设备时,则应含有多个设备地址,并使每一个设备地址对应一个设备。
在这里插入图片描述
【设备控制器的任务】:
1)接收和识别命令:CPU可以向控制器发送多种不同的命令,设备控制器应能接收 并识别这些命令。为此,在控制器中应具有相应的控制寄存器,用来存放接收的命令和参数,并对所接收的命令进行译码。
2)数据交换:这是指实现CPU与控制器之间、控制器与设备之间的数据交换。对于前者,是通过数据总线,由CPU并行地把数据写入控制器,或从控制器中并行地读 出数据;对于后者,是设备将数据输入到控制器,或从控制器传送给设备。为此,在控制器中须设置数据寄存器。
3)标识和报告设备的状态:控制器应记下设备的状态供CPU了解。例如,仅当该备处于发送就绪状态时,CPU才能启动控制器从设备中读出数据。为此,在控制器中应设置一状态寄存器,用其中的每一位来反映设备的某一种状态。当 CPU将该寄存器的内容读入后,便可了解该设备的状态。
4)地址识别:就像内存中的每一个单元都有一个地址一样,系统中的每一个设备也都有一个地址,而设备控制器又必须能够识别它所控制的每个设备的地址。此外,为使CPU能向(或从)寄存器中写入(或读出)数据,这些寄存器都应具有唯一的地址。
5)数据缓冲:由于I/O设备的速率较低而CPU和内存的速率却很高,故在控制器中必须设置一缓冲器。在输出时,用此缓冲器暂存由主机高速传来的数据,然后才以I/O设备所具有的速率将缓冲器中的数据传送给I/O设备;在输入时,缓 冲器则用于暂存从I/O设备送来的数据,待接收到一批数据后,再将缓冲器中的数据高速地传送给主机。
6)错误报告:设备控制器还兼管对由I/O设备传送来的数据进行差错检测。若发现传送中出现了错误,通常是将差错检测码置位,并向CPU报告,于是CPU将本次传送来的数据作废并重新进行一次传送。这样便可保证数据输入的正确性。

通道:
I/O通道是一种特殊的处理机。它具有执行I/O指令的能力,并通过执行通道(I/O)程序来控制I/O操作。但I/O通道又与一般的处理机不同,主要表现在以下两个方面:一是其指令类型单一,这是由于通道硬件比较简单,其所能执行的命令,主要局限于与I/O操作有关的指令;再就是通道没有自己的内存,通道所执行的通道程序是放在主机的内存中的,换言之,是通道与CPU共享内存。
IO控制方式:
程序直接控制方式,中断控制方式,DMA方式。
【DMA控制器(DMAC)】:
DMA(Direct Memory Access)控制器是一种在系统内部转移数据的独特外设,可以将其视为一种能够通过一组专用总线将内部和外部存储器与每个具有DMA能力的外设连接起来的控制器。它之所以属于外设,是因为它是在处理器的编程控制下来 执行传输的。
一个设备接口试图通过总线直接向另一个设备发送数据(一般是大批量的数据),它会先向CPU发送DMA请求信号。外设通过DMA的一种专门接口电路――DMA控制器(DMAC),向CPU提出接管总线控制权的总线请求,CPU收到该 信号后,在当前的总线周期结束后,会按DMA信号的优先级和提出DMA请求的先后顺序响应DMA信号。CPU对某个 设备接口响应DMA请求时,会让出总线控制权。于是在DMA控制器的管理下,外设和存储器直接进行数据交换,而不 需CPU干预。数据传送完毕后,设备接口会向CPU发送DMA结束信号,交还总线控制权。
实现DMA传送的基本操作如下:
1、外设可通过DMA控制器向CPU发出DMA请求;
2、CPU响应DMA请求,系统转变为DMA工作方式,并把总线控制权交给DMA控制器;
3、由DMA控制器发送存储器地址,并决定传送数据块的长度;
4、执行DMA传送;
5、DMA操作结束,并把总线控制权交还CPU。
DMA方式的主要优点是速度快。

SPOOLing技术:
SPOOling技术可将一台物理I/O设备虚拟为多台逻辑I/O设备,同样允许多个用户共享一台物理I/O设备。
SPOOLing技术是低速输入输出设备与主机交换的一种技术,通常也称为“假脱机真联机”,他的核心思想是以联机的方式得到脱机的效果。低速设备经通道和外设在主机内存的缓冲存储器与高速设备相联,该高速设备通常是辅存。为了存放从低速设备上输入的信息,或者存放将要输出到低速设备上的信息(来自内存),在辅存分别开辟一固定区域,叫“输出井”(对输出),或者“输入井”(对输入)。简单来说就是在内存中形成缓冲区,在高级设备形成输出井和输入井,传递的时候,从低速设备传入缓冲区,再传到高速设备的输入井,再从高速设备的输出井,传到缓冲区,再传到低速设备。
计算机通常以一个进程来模拟脱机的过程。
在这里插入图片描述

磁盘管理:
磁盘的硬件结构:
在这里插入图片描述
1)磁头
2)柱面:柱面实际上就是我们抽象出来的一个逻辑概念,简单来说就是处于同一个垂直区域的磁道称为柱面(图c),即各盘面上面相同位置磁道的集合。需要注意的是,磁盘读写数据是按柱面进行的,磁头读写数据时首先在同一柱面内从0磁头 开始进行操作,依次向下在同一柱面的不同盘面(即磁头上)进行操作,只有在同一柱面所有的磁头全部读写完毕后磁头才 转移到下一柱面。因为选取磁头只需通过电子切换即可,而选取柱面则必须通过机械切换。数据的读写是按柱面进行的, 而不是按盘面进行,所以把数据存到同一个柱面是很有价值的。
3)扇区:虽然外圈磁道比内圈长为了使磁盘的处理简单,每条磁道上存储了相同数目的二进制单位,扇区是将磁道按相同角度等分的扇形。扇区是硬盘上存储的物理单位,现在每个扇区可存储512字节数据(每个扇区实际有600字节另外 88字节用来存储磁盘本身的信息)已经成了业界的约定。也就是说,即使计算机只需要某一个字节的数据,但是也得把这个512个字节的数据全部读入内存,再选择所需要的那个字节。
在这里插入图片描述
磁盘引导块:
为了让计算机开始运行,在开机或者重启时,需要一个引导程序,该引导程序将初始化系统的各种设备,然后启动操作系 统。大多数计算机大引导程序都放在ROM中,但是ROM修改很不方便(必须直接更换)因此绝大多数操作系统只会在启动ROM(只读存储器)中保留一个很小的初始化加载程序,这个程序的作用就是可以从磁盘上调入更为完整的初始化程序,整个引导程序放在磁盘的引导块中,通常是磁盘的起始扇区。拥有引导块的磁盘称为启动盘或系统盘。
磁盘高速缓存:
磁盘高速缓存并非指增加硬件设备,而是利用内存中的存储空间来暂存从磁盘读出或来不及写回磁盘的数据。因此,磁盘高速缓存是指一组逻辑上属于磁盘,物理上驻留在内存上的盘快。
磁盘高速缓存在内存中有两种存在形式:
1)在内存开辟一个单独的空间作为磁盘高速缓存,其大小固定,不会收到其他程序的影响。
2)把内存中难以利用的小存储区变成一个缓冲池,供请求页式管理系统和磁盘高速缓存系统共用,此时显然大小不固定。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值