[总结]操作系统真是博大精深(四)

设备管理

1、I/O设备:在计算机系统中用于与人通信或与其他计算机通信的所有设备以及所有外存设备称为外部设备或输入/输出设备。I/O系统:I/O设备及其接口线路、控制部件、通道和管理软件称为I/O系统。

2、设备管理的主要目标是采用各种I/O技术尽量提高CPU与外设之间的并行操作程度,以提高设备利用率;同时将复杂的具体设备操作控制过程屏蔽起来,通过统一的结构进行I/O操作,为用户提供一个统一、方便的设备使用环境。

3、一个I/O单元由两部分组成:机械部分和电子部分。把它们分开,以提供更加模块化、更通用的设计。机械部分即为I/O设备本身;电子部分称为:设备控制器(device controller)或适配器(adapter)。在个人计算机中,它的形式通常是印刷电路卡,可以插入到主板的扩充槽中;完成设备与主机间的连接和通讯。控制器(卡)上通常有一个插槽,可用电缆把它与I/O设备相连。控制器和I/O设备之间的接口可以做成一个标准接口。控制器与I/O设备之间的接口通常是一个低级接口。

4、I/O设备分类:

⑴按传输速度的高低,分为低速设备、中速设备、高速设备。

⑵按信息交换的单位,分为块设备,用于存储信息;字符设备,用于数据的输入和输出。

⑶按设备的共享属性,分为独占设备;共享设备;虚拟设备。

5、设备控制器主要职责是控制一个或多个I/O设备,以实现I/O设备和计算机之间的数据交换。每个设备控制器都有一些寄存器用来与CPU通信。通过往这些寄存器中写入不同的值,OS能命令该设备去执行发送数据、接收数据、打开、关闭等操作;OS也能通过读取这些寄存器的值来了解设备的当前状态。此外,许多设备还有一个数据缓冲区供OS读写。

6、CPU如何与设备控制器当中的寄存器以及数据缓冲区来进行通信:

⑴I/O独立编址:给控制器中的每一个寄存器分配一个唯一的I/O端口(I/O port)编号,称为I/O端口地址,然后用专门的I/O指令对端口进行操作;这些端口地址所构成的地址空间是完全独立的,与内存的地址空间没有关系。优点:I/O设备不占用内存地址空间,而且程序设计时,易于区分是对内存操作还是对I/O端口操作。

  ⑵内存映像编址:把所有控制器当中的每一个寄存器都映射为一个内存单元,专门用于I/O操作(功能上),对这些单元的读写操作即为普通的内存访问操作。端口地址空间与内存的地址空间统一编址,前者是后者的一部分,一般位于后者的顶端部分。优点:编程方便,无需专门的I/O指令;对普通的内存单元可进行的所有操作指令均可作用于I/O端口;无须专门的保护机制来防止用户进程执行I/O。

  ⑶混合编址:对于设备控制器中的寄存器,采用独立编址的方法;而对于设备的数据缓冲区,采用内存映像编址的方法。

7、I/O通道是一种特殊的处理机,具有执行I/O指令的能力,并通过执行通道(I/O)程序来控制I/O操作。但I/O通道又与一般的处理机不同:指令类型单一,局限于与I/O操作有关的指令;通道没有自己的内存,通道所执行的通道程序是放在主机的内存中的。分为字节多路通道、数组选择通道、数组多路通道。

8、程序循环检测方式(Programmed I/O):繁忙等待方式(busy waiting)或轮询方式(polling)。程序(设备驱动程序)中通过不断地检测I/O设备的当前状态,来控制I/O操作的完成。具体来说,在进行I/O操作之前,要循环地检测设备是否就绪;在I/O操作进行之中,要循环地检测设备是否已完成;在I/O操作完成之后,还要把输入的数据保存到内存(输入操作)。从硬件来说,控制I/O的所有工作均由CPU来完成。缺点:在进行I/O操作时,一直占用CPU时间。

9、中断驱动方式:用户进程通过系统调用函数来发起I/O操作,并在发起后阻塞该进程,调度其他的进程使用CPU。在I/O操作完成时,设备向CPU发出中断,然后在中断处理程序中做进一步的处理。在中断驱动方式下,数据的每次读写还是通过CPU来完成,但是当I/O设备在进行数据处理时,CPU不必等待,可以继续执行其他的进程。

10、直接内存访问(DMA):首先在硬件上要有一个DMA控制器。该控制器可集成在设备控制器中,也可集成在主板上。可以直接去访问系统总线,它能代替CPU去指挥I/O设备与内存之间的数据传送。DMA控制器包含了一些寄存器,可被CPU来读或写。

  ⑴不使用 DMA的磁盘读取:CPU向磁盘控制器发出命令,读取一个数据块;磁盘控制器从磁盘驱动器中一位接一位地读取这个数据块(一个或多个扇区),直到整个数据块都保存在控制器内部的缓冲区当中;控制器通过校验位来验证该数据块是否传送正确, 若正确,向CPU发出一个中断;操作系统开始执行后,利用一个循环语句,从控制器的缓冲区中读出该数据块,即在每一次循环内,从控制器的寄存器当中读取一个字节或一个字,并把它保存在内存当中。

  ⑵使用 DMA的磁盘读取:CPU对DMA控制器进行编程,告诉它应把什么数据传送到内存的什么地方。并向磁盘控制器发出命令,让它去磁盘驱动器中读入所需的数据块,保存到内部缓冲区中,并验证数据的正确性;DMA控制器通过总线向磁盘控制器发出一个读操作的信号,并把将写入的内存地址打在总线上;磁盘控制器取出一个字节,按该地址写入内存;磁盘控制器向DMA发一个确认信号,DMA把内存地址加1,把字节计数器减1。若计数器的值大于0转第2步;DMA控制器向CPU发出一个中断,告诉它数据传输已完成。

11、I/O通道控制方式是DMA方式的发展,它可进一步减少CPU的干预,即把对一个数据块的读(或写)为单位的干预,减少为对一组数据块的读(或写)及有关的控制和管理为单位的干预。 同时,又可实现CPU、通道和I/O设备三者的并行操作,从而更有效地提高整个系统的资源利用率。

12、缓冲管理

  ⑴缓冲的作用:缓和CPU与I/O设备间速度不匹配的矛盾;减少对CPU的中断频率, 放宽对CPU中断响应时间的限制;提高CPU和I/O设备之间的并行性。

  ⑵分类:单缓冲、双缓冲、循环缓冲、循环缓冲(组成:多个缓冲区:用于装输入数据的空缓冲区R;已装满的缓冲区G;计算进程正在使用的现行工作缓冲区C,多个指针:指示计算进程下一个可用的缓冲区G的指针Nextg;指示计算进程下次可用的空缓冲区R的指针Nexti;指示计算进程正在使用的缓冲区C的指针Current)、缓冲池

 

 

 

 

 


13、I/O软件

⑴目标:设备独立性(即同一段程序可以访问不同类型的I/O设备);统一命名;出错处理;阻塞与非阻塞I/O;缓冲技术;共享和专用的设备。

  ⑵层次(自底向上):硬件、中断处理程序、设备驱动程序、设备独立的系统软件、用户空间的I/O软件。

  ⑶设备独立性软件:在应用程序中, 使用逻辑设备名称来请求使用某类设备;而系统在实际执行时,还必须使用物理设备名称。因此,系统须具有将逻辑设备名称转换为某物理设备名称的功能。

  ⑷设备独立好处:设备分配时的灵活性,易于实现I/O重定向。

  ⑸设备驱动程序:与具体的设备类型相关的,用来控制设备运行的程序。一般由设备生产商提供。每一个I/O设备都需要相应的设备驱动程序,而每一个设备驱动程序一般只能处理一种设备类型。因为对于不同的设备来说,它的设备控制器中的寄存器数目各不相同,而且控制命令的类型也不相同。

  ⑹设备驱动程序特点:驱动程序主要是指在请求I/O的进程与设备控制器之间的一个通信和转换程序;驱动程序与设备控制器和I/O设备的硬件特性紧密相关, 因而对不同类型的设备应配置不同的驱动程序;驱动程序与I/O设备所采用的I/O控制方式紧密相关;由于驱动程序与硬件紧密相关,因而其中的一部分必须用汇编语言书写。

  ⑺设备驱动程序的通用结构

①检查输入参数是否有效,无效,返回出错报告;有效,把抽象参数转换为控制设备所需的具体参数。

②检查设备当前是否空闲,若正忙,则加入等待队列,稍后处理;若正闲,则检查硬件的状态是否可以开始运行;

③设备驱动程序向设备控制器发出一连串的命令,即把这些命令写入到控制器的寄存器当中。每发出一条命令后,可能还需要检查一下控制器是否已收到该命令并准备接收下一条命令。

④在发出所有的控制命令后,设备驱动程序可以有两种做法:I/O操作不是马上能完成,有延迟,那么驱动程序就阻塞自己,直到操作完成,发生中断,然后在中断处理程序中把它唤醒;如果I/O操作无须延迟即可完成,那么驱动程序就不必阻塞自己。

⑤I/O操作完成后,驱动程序检查出错情况,若一切正常,返回一些状态信息给调用者。

  ⑻中断处理程序

①当用户进程需要输入输出服务时,会调用相应的系统调用函数,该函数又调用相应的设备驱动程序,驱动程序在启动I/O操作后被阻塞,直到I/O操作完成后,将产生一个中断,然后中断处理程序将接管CPU,并唤醒被阻塞的驱动程序。

②阻塞与唤醒:可以采用各种进程间通信的方式

③中断处理也需要不少的CPU指令,如进程上下文的保存和恢复,包括CPU当中各种寄存器的值、MMU、页表、TLB等。

14、SPOOLing技术

  ⑴在多道程序技术中可以利用其中的一道程序,来模拟脱机输入时的外围控制机功能,把低速I/O设备上的数据传送到高速磁盘上;再用另一道程序来模拟脱机输出时外围控制机的功能,把数据从磁盘传送到低速输出设备上。此时的外围操作与CPU对数据的处理同时进行,把这种在联机情况下实现的同时外围操作称为SPOOLing(SimultaneausPeriphernal Operating On-Line),或称为假脱机操作。

  ⑵举例:共享打印机技术已被广泛地用于多用户系统和局域网络中。 当用户进程请求打印输出时,SPOOLing系统同意为它打印输出, 但并不真正立即把打印机分配给该用户进程, 而只做两件事: ①由输出进程在输出井中为之申请一个空闲磁盘块区,并将要打印的数据送入其中;②输出进程为用户进程申请一张空白的用户请求打印表,将用户的打印要求填入其中,再将该表挂到请求打印队列上。

  ⑶特点:提高了I/O的速度;将独占设备改造为共享设备;实现了虚拟设备功能。

15、磁盘

  ⑴磁盘存储器管理:为文件分配存储空间;合理地组织文件的存储方式,以提高访问速度;提高磁盘存储空间的利用率;提高磁盘I/O速度,改善文件性能;确保文件系统的可靠性(备份)。

  ⑵“温彻斯特”技术的特点是部件全部密封、固定并高速旋转的镀磁,磁头沿盘片径向移动,磁头悬浮在高速转动的盘片上方,而不与盘片直接接触,这也是现代绝大多数硬盘的原型。

  ⑶固定头磁盘:每条磁道都有一读/写磁头,所有的磁头都被装在一刚性磁臂中。通过这些磁头可访问所有各磁道,并进行并行读/写,有效地提高了磁盘的I/O速度。这种结构的磁盘主要用于大容量磁盘上。

  ⑷移动头磁盘:每一个盘面仅配有一个磁头,也被装入磁臂中。为能访问该盘面上的所有磁道,该磁头必须能移动以进行寻道。可见,移动磁头仅能以串行方式读/写,致使其I/O速度较慢;但由于其结构简单, 故仍广泛应用于中小型磁盘设备中。

  ⑸硬盘最基本的组成部分是磁性介质的盘片,不同容量硬盘的盘片数不等。每个盘片有两面,都可记录信息。盘片被分成许多扇形的区域,每个区域叫一个扇区。盘片表面上以盘片中心为圆心,不同半径的同心圆称为磁道。硬盘通常由重叠的一组盘片构成,每个盘面都被划分为数目相等的磁道,并从外缘的“0”开始编号,具有相同编号的磁道形成一个圆柱,称之为磁盘的柱面。

16、磁盘访问时间

  ⑴磁盘上的一个物理记录块要用三个参数来定位:柱面号、磁头号、扇区号。因此,对于采用移动磁头的磁盘要访问某特定的物理块时,所用时间一般包括三部分。

  ⑵寻道时间Ts:这是指把磁臂(磁头)移动到指定磁道上所经历的时间。该时间是启动磁臂的时间s与磁头移动n条磁道所花费的时间之和, 即Ts=m×n+s,其中,m是一常数,与磁盘驱动器的速度有关,对一般磁盘,m=0.2;对高速磁盘,m≤0.1,磁臂的启动时间约为2ms。 这样,对一般的温盘, 其寻道时间将随寻道距离的增加而增大, 大体上是5~30 ms。

  ⑶旋转延迟时间Tτ:这是指定扇区移动到磁头下面所经历的时间。对于硬盘,典型的旋转速度大多为5400 r/min,每转需时11.1 ms,平均旋转延迟时间Tτ为5.55 ms;对于软盘,其旋转速度为300 r/min或600 r/min,这样,平均Tτ为50~100 ms。

  ⑷传输时间Tt:把数据从磁盘读出或向磁盘写入数据所经历的时间。Tt的大小与每次所读/写的字节数b和旋转速度有关。Tt=b/rN。其中,r为磁盘每秒钟的转数;N为一条磁道上的字节数,当一次读/写的字节数相当于半条磁道上的字节数时,Tt与Tτ相同,因此,可将访问时间Ta表示为Ta=Ts+1/2r+b/rN。

17、磁盘调度算法

  ⑴FCFS(First Come FirstServe):先来先服务,容易实现,公平合理,但是效率不高。

  ⑵最短寻道时间优先SSTF(ShortestSeek Time First):防止了磁头大幅度来回摆动,减少了磁道平均查找时间。

  ⑶电梯(scan)算法:可防止老进程出现“饥饿”现象。

  ⑷循环扫描(cscan)算法

  ⑸N步扫描(n-step-scan)算法

18、磁盘高速缓存:利用内存中的存储空间,来暂存从磁盘中读出的一系列盘块中的信息。因此,这里的高速缓存是一组在逻辑上属于磁盘,而物理上是驻留在内存中的盘块。

  ⑴高速缓存在内存中可分成两种形式:单独的存储空间、共享缓冲池。

  ⑵周期性回写。

19、磁盘管理

⑴RAM盘是通过使用软件将RAM模拟当做硬盘来使用的一种技术。相对于传统的硬盘文件访问来说,这种技术可以极大的提高在其上进行的文件访问的速度。但是RAM的易失性也意味着当关闭电源后的数据将会丢失。

⑵RAID是将同一阵列中的多个磁盘视为单一的虚拟磁盘,数据是以分段的方式顺序存放于磁盘阵列中。

⑶数据跨盘技术使多个硬盘像一个硬盘那样工作,用廉价的资源来突破现有硬盘空间限制,最大限度的利用磁盘空间,不能改善硬盘的可靠性和速度。JBOD (Just A Bunch Of Disks)磁盘簇。

⑷Disk Striping(磁盘条带化):将数据按一定大小分成多个数据块,这些数据块可以被分别存放在不同的物理盘上,系统在从特定硬盘读取数据时可以通知下个目标盘准备数据,提高系统读写数据的性能。

⑸Disk Mirroring(磁盘镜像):将相同的数据同时写入多个硬盘中,当某个物理硬盘失效时,提供数据资料的保护能力,降低系统写数据的性能。

⑹Hot Swap (热插拔):处于运行状态的磁盘阵列子系统当出现单个物理盘失效的情况时,采用新硬盘将失效物理盘在线替换,同时保证系统稳定运行,只有RAID级别为1、3、5、10、30、50的阵列才提供该功能。

⑺来自多个物理磁盘上的数据通过异或(XOR)操作运算产生的冗余奇偶数据,当单个硬盘失效时,这些冗余数据能够通过与其它物理磁盘上的数据进行异或(XOR)操作而恢复由于硬盘失效而丢失的数据,产生的冗余数据可以被存放于一个专作奇偶校验用的硬盘上,也可以将这些奇偶校验数据分散分布在磁盘阵列的全部硬盘中,产生和存储奇偶校验数据需要一些额外的操作,目前产生奇偶校验数据有两种方式:硬件生成和软件计算。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值