时,才把进程插入该类设备的等待队列中:而只要有一个该类设备可用,系统便可进一步计 算分配该设备的安全性。同样,对使用多通路连接以防止″瓶颈″现象的系统,控制器和通道 的分配也可能要经过几次反复。 只有在设备、控制器和通道三者都分配成功时,这次设备的分配才算成功,然后,系统便 可启动该设备进行数据传送。 6.1.8SP0Ling技术 SPOOLing技术,即同时联机外围操作技术,又称假脱机技术,是指在多道程序环境下, 利用多道程序中的一道或两道程序来模拟脱机输入输出中的外围控制机的功能,以达到"脱 机″输入输出的目的,即在联机的条件下,将数据从输入设备传送到磁盘,或从磁盘传送到输 出设备。通过它可以将一台独占的物理设备虚拟为多台逻辑设备,从而使该物理设备可被多 个进程共享 1. SPOOLing系统的组成 SPOOLing技术是对脱机输入、输出系统的模拟,它必须建立在具有多道程序功能的操作 系统上,而且还需要得到髙速随机外存(通常采用磁盘)的支持。SP0 OWing系统主要由以下三 部分组成: (1)输入井和输出井:这是在磁盘上开辟的两个大存储空间。输入井是模拟脱机输入时 的磁盘,用于暂存U0设备输入的数据:输出井是模拟脱机输出时的磁盘,用来暂存用户程序 的输出数据。 (2)输入缓冲区和输出缓冲区。这是在内存中开辟的两个缓冲区。输入缓冲区用于暂存 由输入设备送来的数据,以后再传送到输入井:输出缓冲区用来暂存从输出井送来的数据, 以后再传送给输出设备 (3)输入进程SPi和输出进程SR。这是内存中的两个进程。输入进程SPi模拟脱机输入 时的外围控制机,将用户要求的数据从输入设备通过输入缓冲区再送到输入井,当CPU需要 输入数据时,直接从输入井读入内存:输出进程SP。模拟脱机输出时的外围控制机,把用户要 求输出的数据,先从内存送到输出井,待输出设备空闲时,再将输出井中的数据经过输出缓 冲区送到输出设备上。 2.利用SP0 LIng技术共享打印机 利用 SPOOLing技术可将独占的打印机改造为一台供多个用户共享的设备,这种共享打 印机技术已被广泛地用于多用户系统和局域网络中。当用户进程请求打印输出时, SPOOLing 系统立即同意为它打印输出,但并不真正把打印机分配给该用户进程,而只为它做两件事: (1)由输出进程在输出井中为之申请一个空闲的磁盘块区,并将要打印的数据送入其中。 (2)输出进程再为用户进程申请一张空白的用户请求打印表,并将用户的打印要求填入 其中,然后将该表挂到打印机的请求打印队列上。 如果打印机空闲,输出进程将从请求打印队列的队首取出一张请求打印表,根据表中的 要求将要打印的数据从输出井传送到内存缓冲区,再由打印机进行打印。打印完后,输出进 程将再检查请求打印队列中是否还有待打印的请求表,若有则继续打印,否则便将自己阻塞 起来,并在下次再有打印请求时被唤醒 6.1.9设备处理 设备处理是指在系统为请求I/0的进程分配了设备及相应的数据通路之后,启动设备去 进行实际的Ij0操作,它通常由设备驱动程序和Ij0中断服务程序配合完成 1.设备驱动程序 设备驱动程序是1/0进程与设备控制器之间的通信程序,它接收来自上层软件的、抽象
时,才把进程插入该类设备的等待队列中:而只要有一个该类设备可用,系统便可进一步计 算分配该设备的安全性。同样,对使用多通路连接以防止"瓶颈"现象的系统,控制器和通道 的分配也可能要经过几次反复。 只有在设备、控制器和通道三者都分配成功时,这次设备的分配才算成功,然后,系统便 可启动该设备进行数据传送。 6.1.8 SPOOLing 技术 SPOOLing 技术,即同时联机外围操作技术,又称假脱机技术,是指在多道程序环境下, 利用多道程序中的一道或两道程序来模拟脱机输入输出中的外围控制机的功能,以达到"脱 机"输入输出的目的,即在联机的条件下,将数据从输入设备传送到磁盘,或从磁盘传送到输 出设备。通过它可以将一台独占的物理设备虚拟为多台逻辑设备,从而使该物理设备可被多 个进程共享。- 1.SPOOLing 系统的组成 SPOOLing 技术是对脱机输入、输出系统的模拟,它必须建立在具有多道程序功能的操作 系统上,而且还需要得到高速随机外存(通常采用磁盘)的支持。SPOOLing 系统主要由以下三 部分组成: (1)输入井和输出井:这是在磁盘上开辟的两个大存储空间。输入井是模拟脱机输入时 的磁盘,用于暂存 UO 设备输入的数据:输出井是模拟脱机输出时的磁盘,用来暂存用户程序 的输出数据。 (2)输入缓冲区和输出缓冲区。这是在内存中开辟的两个缓冲区。输入缓冲区用于暂存 由输入设备送来的数据,以后再传送到输入井:输出缓冲区用来暂存从输出井送来的数据, 以后再传送给输出设备。 (3)输入进程 SPi 和输出进程 SR。这是内存中的两个进程。输入进程 SPi 模拟脱机输入 时的外围控制机,将用户要求的数据从输入设备通过输入缓冲区再送到输入井,当 CPU 需要 输入数据时,直接从输入井读入内存:输出进程 SP。模拟脱机输出时的外围控制机,把用户要 求输出的数据,先从内存送到输出井,待输出设备空闲时,再将输出井中的数据经过输出缓 冲区送到输出设备上。 2.利用 SPOOLing 技术共享打印机 利用 SPOOLing 技术可将独占的打印机改造为一台供多个用户共享的设备,这种共享打 印机技术已被广泛地用于多用户系统和局域网络中。当用户进程请求打印输出时,SPOOLing 系统立即同意为它打印输出,但并不真正把打印机分配给该用户进程,而只为它做两件事: (1)由输出进程在输出井中为之申请一个空闲的磁盘块区,并将要打印的数据送入其中。 (2)输出进程再为用户进程申请一张空白的用户请求打印表,并将用户的打印要求填入 其中,然后将该表挂到打印机的请求打印队列上。 如果打印机空闲,输出进程将从请求打印队列的队首取出一张请求打印表,根据表中的 要求将要打印的数据从输出井传送到内存缓冲区,再由打印机进行打印。打印完后,输出进 程将再检查请求打印队列中是否还有待打印的请求表,若有则继续打印,否则便将自己阻塞 起来,并在下次再有打印请求时被唤醒。 6.1.9 设备处理 设备处理是指在系统为请求 I/0 的进程分配了设备及相应的数据通路之后,启动设备去 进行实际的 IjO 操作,它通常由设备驱动程序和 IjO 中断服务程序配合完成。 1.设备驱动程序 设备驱动程序是 I/O 进程与设备控制器之间的通信程序,它接收来自上层软件的、抽象
的I/0命令,再把它转换成具体要求后,发送给设备控制器,从而启动设备进行数据传送。设 备驱动程序的处理过程如下 1)将抽象要求转换成具体要求。操作系统对用户屏蔽了有关物理设备的具体细节,并提 供给用户一个一致的I/0接口。因此,用户进程或上层软件发出的I/0请求通常只能是一些 抽象的命令,驱动程序必须将这些命令按设备控制器所要求的格式转换成具体的命令,如将 read命令中的盘块号按地址寄存器的格式转换成盘面、磁道及扇区号 2)检査I/0请求的合法性。每种设备都只能完成→组特定的功能,设备驱动程序必须检 查用户提出的I/0请求,若相应设备不支持这次I/0请求,则认为这次I/0请求非法。对某 些设备,如磁盘上的文件操作,若它们的打开方式是读,则用户的写请求也必然被拒绝 (3)读出和检查设备的状态。在启动设备之前,驱动程序要从设备控制器的状态寄存器中 读出设备的状态,仅当它处于空闲状态时,才能启动其设备控制器,否则只能将相应的I/0请 求插入请求I/0的队列。 (4)传送必要的参数。对带有参数的I/0命令,驱动程序必须将这些参数,如读盘时的磁 盘地址、内存地址、本次要传送的字节数等,传送到设备控制器的相应寄存器中。对于字符 设备,若发出的是写命令,驱动程序还必须把输出数据写入控制器的数据寄存器 (5)工作方式的设置。有些设备可具有多种工作方式,典型的情况是利用RS-232接口进 行异步通信。在启动该接口之前,应先按通信规程设定下述参数:波特率、奇偶校验方式 停止位数及数据字节长度等。 (6)启动I/0设备。在完成上述各项准备工作后,驱动程序可以向控制器的命令寄存器传 送相应的命令,启动I/0设备开始I/0操作 驱动程序发出I/0命令后,基本的I/0操作是在设备控制器的控制下进行的。通常I/0 操作所要完成的工作较多,需要一定的时间,因此,执行驱动程序的进程把自己阻塞起来,直 到I/0中断到来时才被唤醒。 2.I/0申断处理程序 I/0设备完成I/0操作后,设备控制器便向CPU发送一I/0中断请求。CFU响应中断后 先保护被中断进程的CPU现场,然后分析中断原因转去执行相应的I/0中断处理程序。 I/0中断处理程序的工作过程如下 (1)检查本次I/0的执行结果。中断处理程序通过读设备控制器的状态寄存器来检查本 次Ⅰ/⑩0操作的完成情况。若本次操作成功,则进行结束处理:否则,根据发生异常的原因做相 应的处理,在允许时,还可按重复次数调用设备驱动程序重新传送数据。最终的I/0执行情 况,将由中断处理程序向上层软件汇报 (2)唤醒被阻塞的相应进程。I/0中断处理程序还必须唤醒等待本次I/0完成的相应进程, 以使它能继续向前推进。若请求I/0的队列中还有I/请求等待处理,则可调用设备驱动程 序进行新一轮的数据传送 当中断处理完成以后,便恢复被中断进程的现场,并通过执行中断返回指令,返回到断点 继续执行被中断的程序。 6.1.9磁盘存储管理 磁盘存储器不仅容量大,存取速度快,、而且可以随机存取,故在现代计算机系统中都配 置了磁盘,并以它为主来存放文件。磁盘I/0速度的高低和磁盘系统的可靠性,都将直接影 响到系统性能。因此,设法改善磁盘系统的性能,已成为现代操作系统的重要任务之 1.磁盘驱动调度的原则 磁盘驱动调度的原则为:先进行移臂调度,再进行旋转调度 2.移臂调度算法
的 I/0 命令,再把它转换成具体要求后,发送给设备控制器,从而启动设备进行数据传送。设 备驱动程序的处理过程如下: (1)将抽象要求转换成具体要求。操作系统对用户屏蔽了有关物理设备的具体细节,并提 供给用户一个一致的 I/0 接口。因此,用户进程或上层软件发出的 I/O 请求通常只能是一些 抽象的命令,驱动程序必须将这些命令按设备控制器所要求的格式转换成具体的命令,如将 read 命令中的盘块号按地址寄存器的格式转换成盘面、磁道及扇区号。 (2)检查 I/O 请求的合法性。每种设备都只能完成→组特定的功能,设备驱动程序必须检 查用户提出的 I/O 请求,若相应设备不支持这次 I/O 请求,则认为这次 I/O 请求非法。对某 些设备,如磁盘上的文件操作,若它们的打开方式是读,则用户的写请求也必然被拒绝。 (3)读出和检查设备的状态。在启动设备之前,驱动程序要从设备控制器的状态寄存器中 读出设备的状态,仅当它处于空闲状态时,才能启动其设备控制器,否则只能将相应的 I/O 请 求插入请求 I/0 的队列。 (4)传送必要的参数。对带有参数的 I/O 命令,驱动程序必须将这些参数,如读盘时的磁 盘地址、内存地址、本次要传送的字节数等,传送到设备控制器的相应寄存器中。对于字符 设备,若发出的是写命令,驱动程序还必须把输出数据写入控制器的数据寄存器。 (5)工作方式的设置。有些设备可具有多种工作方式,典型的情况是利用 RS-232 接口进 行异步通信。在启动该接口之前,应先按通信规程设定下述参数:波特率、奇偶校验方式、 停止位数及数据字节长度等。 (6)启动 I/O 设备。在完成上述各项准备工作后,驱动程序可以向控制器的命令寄存器传 送相应的命令,启动 I/0 设备开始 I/0 操作。 驱动程序发出 I/O 命令后,基本的 I/0 操作是在设备控制器的控制下进行的。通常 I/O 操作所要完成的工作较多,需要一定的时间,因此,执行驱动程序的进程把自己阻塞起来,直 到 I/0 中断到来时才被唤醒。 2.I/O 申断处理程序 I/O 设备完成 I/0 操作后,设备控制器便向 CPU 发送一 I/0 中断请求。CPU 响应中断后, 先保护被中断进程的 CPU 现场,然后分析中断原因转去执行相应的 I/O 中断处理程序。 I/0 中断处理程序的工作过程如下: (1)检查本次 I/0 的执行结果。中断处理程序通过读设备控制器的状态寄存器来检查本 次 I/O 操作的完成情况。若本次操作成功,则进行结束处理:否则,根据发生异常的原因做相 应的处理,在允许时,还可按重复次数调用设备驱动程序重新传送数据。最终的 I/0 执行情 况,将由中断处理程序向上层软件汇报。 (2)唤醒被阻塞的相应进程。I/0中断处理程序还必须唤醒等待本次I/O完成的相应进程, 以使它能继续向前推进。若请求 I/0 的队列中还有 I/O 请求等待处理,则可调用设备驱动程 序进行新一轮的数据传送。 当中断处理完成以后,便恢复被中断进程的现场,并通过执行中断返回指令,返回到断点 继续执行被中断的程序。 6.1.9 磁盘存储管理 磁盘存储器不仅容量大,存取速度快,、而且可以随机存取,故在现代计算机系统中都配 置了磁盘,并以它为主来存放文件。磁盘 I/O 速度的高低和磁盘系统的可靠性,都将直接影 响到系统性能。因此,设法改善磁盘系统的性能,已成为现代操作系统的重要任务之一 1.磁盘驱动调度的原则 磁盘驱动调度的原则为:先进行移臂调度,再进行旋转调度。 2.移臂调度算法
(1)先来先服务算法(FCFS):FCFS按照输入/输出请求到达的顺序,逐一完成访问请求。 (2)最短查找时间优先法(SSTF):SSTF总是先完成距当前存取臂距离最近的柱面上的输入 /输出请求 (3)扫描法(SCAN):采用扫描法时,存取臂从磁盘的一端出发,向另一端移动,遇到访问的 柱面就完成访问请求,直至到达磁盘的另一端,再倒转过来,继续完成这一方向上的访问请 求 4)电梯调度算法:电梯调度算法是改进的扫描法。当存取臂仅需移到一个方向最远的所 请求的柱面后,如果没有访问请求了,存取臂就改变方向。 3.提高磁盘I/0速度的方法 磁盘的Ⅰ⑩0速度远低于对内存的访问速度,通常要低上4-6个数量级,这使得磁盘存储 系统很容易成为计算机系统的瓶颈。因此,人们便千方百计地去提高磁盘I/0的速度。下面 将介绍几种提高磁盘I/0速度的常用方法 (1)磁盘高速缓存( Disk cache):磁盘高速缓存是在内存中为磁盘块设置的一个缓冲区, 其中存放有磁盘中某些盘块的副本。当有一进程请求访问某个盘块中的数据时,系统首先检 査该盘块是否在磁盘高速缓存中,如果在,则无需读盘而可直接从高速缓存中提取数据交付 给请求进程,从而使本次的访问速度提高4-6个数量级:否则,应先从磁盘中将所要访问的数 据读入并交付给请求进程,同时也将数据送高速缓存 ()提前读:提前读是指在读当前盘块的同时,将下一个可能要访问到的盘块中的数据也 读入缓冲区。这样,当要读下一个盘块中的数据时,由于它们己被提前读入缓冲区,便可直接 从缓冲区中取得所需数据,而无需启动磁盘。用户对文件进行访问时,经常采用顺序访问的 方式,因此,可采用提前读来有效地减少读数据的时间,从而提高磁盘I/0的速度 (3)延迟写:在写盘块时,本应将对应缓冲中的数据立即写盘,但考虑到该盘块中的数据 在不久之后可能还会被再次访问,因而并不立即将对应缓神区中的数据写入磁盘,而只是将 它置上”延迟写”标志并挂到空闲缓冲队列的末尾b当该缓冲医移到空闲缓冲队列的首部,并 作为空闲缓冲被分配出去时,才将缓冲区中的数据写入磁盘。只要延迟写块仍在空闲缓冲队 列中,任何要求访问该盘块的进程,都可直接从其中读出数据或将数据写入其中,而不必去 访问磁盘,因此,可有效地提高磁盘I/0的速度 (4)优化物理块布局:优化文件物理块的分布,从而使访问文件时磁头的移动距离尽量的 小。例如,操作系统中经常将同一条磁道上的若干个盘块组成一簇,并以簇为单位来分配文 件存储空间,这样就可以保证在访问这几个盘块时不必移动磁头,从而减少了磁头的平均移 动距离,提高了磁盘存取的速度 (5)虚拟盘:虚拟盘,又称为RAM盘,它是指利用内存空间去仿真磁盘。该盘的设备驱动 程序,可以接受所有标准的磁盘操作,但这些操作的执行,不是在磁盘上而是在内存中,因此 它们的速度也更快。用户可完全像使用真正的磁盘一样使用虚拟盘。由于虚拟盘是易失性 存储器,当系统或电源发生故障或者系统重新启动时,其中的数据将会丢失,因此,虚拟盘通 常只用来存放临时性的文件。 (6)廉价磁盘冗余阵列(RAID) 廉价磁盘冗余阵列RAID是利用一台磁盘阵列控制器,来统一管理和控制一组(几台到几 十台)磁盘驱动器,从而组成一个高度可靠的、快速的大容量磁盘系统 操作系统将RAID中的一组物理磁盘驱动器看作是一个单个的逻辑磁盘驱动器。用户数 据和系统数据可分布在阵列的所有磁盘中,并可采取并行传输的方式,因此可大大地减少数 据的传输时间。RAID的另一特点是它的高可靠性。 6.2重点难点学习提示
(1)先来先服务算法(FCFS):FCFS 按照输入/输出请求到达的顺序,逐一完成访问请求。 (2)最短查找时间优先法(SSTF):SSTF 总是先完成距当前存取臂距离最近的柱面上的输入 /输出请求。 (3)扫描法(SCAN):采用扫描法时,存取臂从磁盘的一端出发,向另一端移动,遇到访问的 柱面就完成访问请求,直至到达磁盘的另一端,再倒转过来,继续完成这一方向上的访问请 求。 (4)电梯调度算法:电梯调度算法是改进的扫描法。当存取臂仅需移到一个方向最远的所 请求的柱面后,如果没有访问请求了,存取臂就改变方向。 3.提高磁盘 I/0 速度的方法 磁盘的 I/O 速度远低于对内存的访问速度,通常要低上 4-6 个数量级,这使得磁盘存储 系统很容易成为计算机系统的瓶颈。因此,人们便千方百计地去提高磁盘 I/0 的速度。下面 将介绍几种提高磁盘 I/O 速度的常用方法: (1)磁盘高速缓存(Disk Cache):磁盘高速缓存是在内存中为磁盘块设置的一个缓冲区, 其中存放有磁盘中某些盘块的副本。当有一进程请求访问某个盘块中的数据时,系统首先检 查该盘块是否在磁盘高速缓存中,如果在,则无需读盘而可直接从高速缓存中提取数据交付 给请求进程,从而使本次的访问速度提高 4-6 个数量级:否则,应先从磁盘中将所要访问的数 据读入并交付给请求进程,同时也将数据送高速缓存。 (2)提前读:提前读是指在读当前盘块的同时,将下一个可能要访问到的盘块中的数据也 读入缓冲区。这样,当要读下一个盘块中的数据时,由于它们己被提前读入缓冲区,便可直接 从缓冲区中取得所需数据,而无需启动磁盘。用户对文件进行访问时,经常采用顺序访问的 方式,因此,可采用提前读来有效地减少读数据的时间,从而提高磁盘 I/0 的速度。 (3)延迟写:在写盘块时,本应将对应缓冲中的数据立即写盘,但考虑到该盘块中的数据 在不久之后可能还会被再次访问,因而并不立即将对应缓神区中的数据写入磁盘,而只是将 它置上"延迟写"标志并挂到空闲缓冲队列的末尾 b 当该缓冲医移到空闲缓冲队列的首部,并 作为空闲缓冲被分配出去时,才将缓冲区中的数据写入磁盘。只要延迟写块仍在空闲缓冲队 列中,任何要求访问该盘块的进程,都可直接从其中读出数据或将数据写入其中,而不必去 访问磁盘,因此,可有效地提高磁盘 I/0 的速度。 (4)优化物理块布局:优化文件物理块的分布,从而使访问文件时磁头的移动距离尽量的 小。例如,操作系统中经常将同一条磁道上的若干个盘块组成一簇,并以簇为单位来分配文 件存储空间,这样就可以保证在访问这几个盘块时不必移动磁头,从而减少了磁头的平均移 动距离,提高了磁盘存取的速度。 (5)虚拟盘:虚拟盘,又称为 RAM 盘,它是指利用内存空间去仿真磁盘。该盘的设备驱动 程序,可以接受所有标准的磁盘操作,但这些操作的执行,不是在磁盘上而是在内存中,因此 它们的速度也更快。用户可完全像使用真正的磁盘一样使用虚拟盘。由于虚拟盘是易失性 存储器,当系统或电源发生故障或者系统重新启动时,其中的数据将会丢失,因此,虚拟盘通 常只用来存放临时性的文件。 (6)廉价磁盘冗余阵列(RAID) 廉价磁盘冗余阵列 RAID 是利用一台磁盘阵列控制器,来统一管理和控制一组(几台到几 十台)磁盘驱动器,从而组成一个高度可靠的、快速的大容量磁盘系统。 操作系统将 RAID 中的一组物理磁盘驱动器看作是一个单个的逻辑磁盘驱动器。用户数 据和系统数据可分布在阵列的所有磁盘中,并可采取并行传输的方式,因此可大大地减少数 据的传输时间。RAID 的另一特点是它的高可靠性。 6.2 重点难点学习提示
本章的目的是使学生了解操作系统处理用户1/O请求的基本过程,为此应对以下儿个 重点、难点问题作认真的学习。 1.I/0控制方式 I/O控制方式随着计算机技术的发展而不断地由低效的方式演变为高效的方式,故应了 解Ⅰ/0控制方式的演变过程,每种I/0控制方式是如何进行控制的,又是如何提高CPU的利 用率的。 (1)程序I/0方式:因为当时尚未出现中断机构,所以在进行1/0时,CPU不得不花费大 量的时间去测试I/0设备的工作状态,此时CPU完全陷入I/0工作中。 (2)中断驱动Ⅰ/0控制方式:应清楚地了解和掌握在中断机构的支持下,其I/0控制是如 何实现的,CPU的利用率提高了多少 (3)DMAI/O控制方式:应很好地了解此时I/O控制是如何实现的,CPU的效率提高了多少 (4)I/0通道控制方式:系统中配置了通道控制器后,在通道程序的控制下,其传输的基本 单位由一个数据块增为一组数据块。读者应了解什么是通道程序,它是如何实现I/0控制的。 2.缓冲管理 在现代操作系统中,几乎所有的I/0设备在与处理机交换数据时,都使用了缓冲区。因 此,应对下述问题作认真的学习和理解: (1)缓冲的引入是为了提高CPU和I/0设备的并行性。在学习时,读者应了解如果没有缓 冲区,CP和IJ0设备应如何工作:而引入缓冲后,可带来哪些好处。 (2)单缓冲是如何提高I/0速度的,它存在着哪些不足,而双缓冲、循环缓冲又是如何进 步提高CPU和I/O设备的并行性的。 (3)缓冲池是为了解决什么问题而引入的,引入缓冲池后系统将如何处理I/0设备和CPU 间的数据传输 3.设备独立性 者应较深刻地理解下述几个问题 (1)什么是设备独立性:应了解为什么设备独立性能提高设备分配的灵活性?并使I/0重 定向的实现变得更为容易。 2)如何实现设备独立性:应了解该层软件有哪些功能,它是如何实现逻辑设备名到实际 使用的物理设备名之间的转换的 4.虚拟设备和 SPOoLing技术 虚拟性是0的四大特征之-,而实现虚拟设备最常用的技术便是 SPOOLing技术,因此, 必须对下列问题有较清晰的认识和掌握 (1)什么是虚拟设备技术:虚拟设备技术是指把每次仅允许一个进程使用的物理设备,改 造为能同时供多个进程共享的虚拟设备的技术,或者说将一个物理设备变换为多个对应的 逻辑设备。必须了解实现虚拟设备技术的关键是什么。 (2)什么是 SPOOLing技术: SPOOLing也称作假脱机操作,是指在多道程序的环境下,利用多 道程序中的一道或两道程序来模拟外围控制机,从而在联机的条件下实现脱机I/O的功能 应了解 SPOOLing系统由哪几部分组成,并注意对假脱机和脱机两种I/0技术加以比较。 (3)如何共享打印机:应了解在 SPOoLing系统中,当用户申请打印机时,系统将如何为之服 务,并可以通过这个例子来说明为什么 SPOOLing技术可加快I/0的速度,为什么它可以把 台独占的设备变换成可供多个进程共享的虚拟设备 5.设备处理 必须清楚地了解下述内容 (1)设备驱动程序:应了解为了完成任务,设备驱动程序应具备哪些功能。 (2)Ⅰ/0中断处理程序:应了解这些结束处理通常应包含哪些工作
本章的目的是使学生了解操作系统处理用户 I/O 请求的基本过程,为此应对以下儿个 重点、难点问题作认真的学习。 1.I/O 控制方式 I/O 控制方式随着计算机技术的发展而不断地由低效的方式演变为高效的方式,故应了 解 I/0 控制方式的演变过程,每种 I/0 控制方式是如何进行控制的,又是如何提高 CPU 的利 用率的。 (1)程序 I/O 方式:因为当时尚未出现中断机构,所以在进行 I/0 时,CPU 不得不花费大 量的时间去测试 I/0 设备的工作状态,此时 CPU 完全陷入 I/0 工作中。 (2)中断驱动 I/0 控制方式:应清楚地了解和掌握在中断机构的支持下,其 I/0 控制是如 何实现的,CPU 的利用率提高了多少。 (3)DMA I/O控制方式:应很好地了解此时I/0控制是如何实现的,CPU的效率提高了多少。 (4)I/O 通道控制方式:系统中配置了通道控制器后,在通道程序的控制下,其传输的基本 单位由一个数据块增为一组数据块。读者应了解什么是通道程序,它是如何实现 I/0 控制的。 2.缓冲管理 在现代操作系统中,几乎所有的 I/0 设备在与处理机交换数据时,都使用了缓冲区。因 此,应对下述问题作认真的学习和理解: (1)缓冲的引入是为了提高 CPU 和 I/O 设备的并行性。在学习时,读者应了解如果没有缓 冲区,CPU 和 IJO 设备应如何工作:而引入缓冲后,可带来哪些好处。 (2)单缓冲是如何提高 I/O 速度的,它存在着哪些不足,而双缓冲、循环缓冲又是如何进一 步提高 CPU 和 I/O 设备的并行性的。 (3)缓冲池是为了解决什么问题而引入的,引入缓冲池后系统将如何处理 I/0 设备和 CPU 间的数据传输。 3.设备独立性 者应较深刻地理解下述几个问题: (1)什么是设备独立性:应了解为什么设备独立性能提高设备分配的灵活性?并使 I/O 重 定向的实现变得更为容易。 (2)如何实现设备独立性:应了解该层软件有哪些功能,它是如何实现逻辑设备名到实际 使用的物理设备名之间的转换的。 4.虚拟设备和 SPOOLing 技术 虚拟性是 OS 的四大特征之-,而实现虚拟设备最常用的技术便是 SPOOLing 技术,因此, 必须对下列问题有较清晰的认识和掌握: (1)什么是虚拟设备技术:虚拟设备技术是指把每次仅允许一个进程使用的物理设备,改 造为能同时供多个进程共享的虚拟设备的技术,或者说将一个物理设备变换为多个对应的 逻辑设备。必须了解实现虚拟设备技术的关键是什么。 (2)什么是SPOOLing技术:SPOOLing也称作假脱机操作,是指在多道程序的环境下,利用多 道程序中的一道或两道程序来模拟外围控制机,从而在联机的条件下实现脱机 I/0 的功能。 应了解 SPOOLing 系统由哪几部分组成,并注意对假脱机和脱机两种 I/0 技术加以比较。 (3)如何共享打印机:应了解在 SPOOLing 系统中,当用户申请打印机时,系统将如何为之服 务,并可以通过这个例子来说明为什么 SPOOLing 技术可加快 I/0 的速度,为什么它可以把一 台独占的设备变换成可供多个进程共享的虚拟设备。 5.设备处理 必须清楚地了解下述内容: (1)设备驱动程序:应了解为了完成任务,设备驱动程序应具备哪些功能。 (2)I/0 中断处理程序:应了解这些结束处理通常应包含哪些工作