设备管理

一、I/O系统
  1.1 I/O设备
  I/O设备类型繁多,在OS观点看,设备使用特性、数据传输速率、数据的传输单位、设备共享属性等都是重要的性能指标。可以按照不同角度对他们进行分类
  ① 按设备的使用特性分类,可把设备分为两类,第一类是存储设备,也称为外存活后备存储器、辅助存储器,是计算机系统用于存储信息的主要设备,该设备速度慢,容量大,价格便宜。第二类是输入/输出设备,可分为输入设备、输出设备和交互式设备,如键盘,鼠标,扫描仪,打印机,显示器等。
  ② 按传输速率分类,可将I/O设备分为三类,第一类是低速设备,其传输速率仅为每秒钟几个字节至几百个字节的设备,如键盘、鼠标等。第二类是中速设备,其传输速率为每秒数千个字节至十万个字节的设备,如行式打印机、激光打印机等。第三类是高速设备,其传输速率在数百个千字节至千兆字节的设备,如磁带机、磁盘机、光盘机等。
  ③ 按信息交换的单位分类,可把I/O设备分为两类,第一类为块设备,这类设备用于存储信息,信息以数据块为单位,如磁盘,每个盘块512B~4KB,传输速率较高,通常每秒钟几兆位,另一特征是可寻址,即对它可随机地读/写任一块,磁盘设备的I/O常采用DMA方式。第二类是字符设备,用于数据的输入和输出,其基本单位是字符,属于无结构类型,如打印机等,其传输速率较低,通常为几个字节至数千个字节,另一特征是不可寻址,即输入/出时不能指定数据的输入源地址及输出的目标地址,此外,常采用中断驱动方式。
  ④ 按设备的共享属性分类,可以分为三类,独占设备,在一段时间内只允许一个用户(进程)访问的设备,即临界资源。共享设备,在一段时间内允许多个进程同时访问的设备,当然,每一时刻仍然只允许一个进程访问,如磁盘(可寻址和可随机访问)。虚拟设备,通过虚拟技术将一台设备变换为若干台逻辑设备,供若干个用户(进程)同时使用。
 二 I/O通道
  虽然在CPU与I/O设备之间增加了设备控制器后,可以大大减少CPU对I/O的干预,但是当主机所配置的外设很多时,CPU的负担仍然很重,因此,在CPU和设备控制器之间又增设了通道。其主要目的是为了建立独立的I/O操作,不仅使数据的传送能独立于CPU,而且也希望有关对I/O操作的组织、管理及其结束处理尽量独立,以保证CPU有更多的时间去进行数据处理。在设置了通道后,CPU只需要向通道发送一条I/O指令,通道在收到该指令后,便从内存中取出本次要执行的通道程序,然后执行该通道程序,仅当通道完成了规定的I/O任务后,才向CPU发中断信号。I/O通道是一种特殊的处理机,具有执行I/O指令的能力,并通过执行通道(I/O)程序来控制I/O操作,但I/O通道与一般的处理机不同,因为其指令类型单一同时没有自己的内存,与CPU共享主内存。
  通道用于控制外围设备(包括字符设备和块设备),由于外围设备的类型较多,传输速率相差甚大,因为使通道具有多种类型,根据信息交换方式的不同,将通道分为以下三种。
  ① 字节多路通道,这是一种按照字节交叉方式工作的通道,通常都含有许多非分配型子通道,其数量可以几十到数百个,每个子通道连接一台I/O设备,并控制该设备的I/O操作,这些子通道按照时间片轮转方式共享主通道。
  ② 数组选择通道,字节多路通道不适合连接高速设备,数组选择通道按数组进行数据传送,其通常只含有一个分配型子通道,在一段时间内只能执行一道通道程序,控制一台设备进行数据传送,致使当某台设备占用了该通道后,便一直由它独占,即使是它无数据传送,通道被闲置,也不允许其他设备使用该通道,直至该设备传送完毕释放该通道,其利用率很低。
  ③ 数组多路通道,由于数组选择通道每次只允许一个设备传送数据,数组多路通道是将数组选择通道传输速率高和字节多路通道能使各子通道(设备)分时并行操作的优点相结合而形成的一种新通道,其含有多个非分配型子通道,具有很高的数据传输速率,其数据传输是按数组方式进行的。
  三 程序I/O方式

在早起计算机系统中,由于无中断机构,处理机对I/O设备的控制采取程序I/O方式,或称为忙-等待方式,即在处理机向控制器发出一条I/O指令启动输入设备输入数据时,要同时把状态寄存器中的忙/闲标志busy设置为1,然后便不断地循环测试busy,只有当其为0时,表示输入已经送入控制器的数据寄存器中,于是处理机将数据寄存器中的数据取出,送入内存指定单元中,这样便完成了一个字(符)的I/O。
  在程序I/O方式中,由于CPU的高速性和I/O设备的低速性,致使CPU的绝大部分时间都处于等待I/O设备完成数据I/O的循环测试中,造成对CPU的极大浪费。
  1.中断驱动I/O控制方式
  当某进程要启动某个I/O设备工作时,便由CPU向相应的设备控制器发出一条I/O命令,然后立即返回继续执行原来的任务,设备控制器于是按照该命令的要求去控制指定I/O设备,此时,CPU与I/O设备并行操作。一旦数据进入数据寄存器,控制器便通过控制线向CPU发送一个中断信号,由CPU检查输入过程中是否出错,若无错,便由控制器发送取走数据的信号,再通过控制器及数据线将数据写入内存指定单元中。
  在I/O设备输入每个数据的过程中,由于无需CPU干预,因而可使CPU与I/O设备并行工作,仅当完成一个数据输入时,才需CPU花费极短的时间去做一些中断处理。
  2. 直接存储器访问(DMA)I/O控制方式
  虽然中断驱动I/O比程序I/O方式更有效,但是,它仍是以字(节)为单位进行I/O的,每当完成一个字(节)的I/O时,控制器便要向CPU请求一次中断,换言之,采用中断驱动I/O方式时的CPU是以字(节)为单位进行干预的,将这种方式用于块设备的I/O是非常低效的,例如,为了从磁盘读取1KB的数据块,需要中断CPU1K次,为了进一步减少CPU对I/O的干预而引入了直接存储器访问方式,该方式的特点如下
  四。缓冲
  1 单缓冲
  每当用户进程发出一个I/O请求时,操作系统便在主存中为之分配一个缓冲区,假定从磁盘把一块数据输入到缓冲区的时间为T,操作系统将该缓冲区中的数据传送到用户区的时间为M,而CPU对这一块数据处理(计算)的时间为C,由于T和C是可以并行的,当T>C时,系统对每一块数据的处理时间为M+T,反之,为M+C,系统对每一块数据的处理时间为Max(C,T) + M。
  2 双缓冲
  为了加快输入和输出的速度,提高设备利用率,人们又引入了双缓冲区机制,称为缓冲对换,在设备输入时,先将数据送入第一个缓冲区,装满后便转向第二个缓冲区,此时操作系统可以从第一缓冲区中移出数据,并送入用户进程,接着由CPU对数据进行计算,在双缓冲时,系统处理一块数据的时间可以粗略地认为是Max(C,T),如果C<T,可使块设备连续输入,如果C>T,则可使CPU不必等待设备输入。对于字符设备,若采用行输入方式,则采用双缓冲通常能消除用户的等待时间,即用户在输入完第一行后,在CPU执行在这里插入图片描述在这里插入图片描述第一行中的命令时,用户可继续向第二缓冲区输入下一行数据。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值