现代操作系统第五章输入输出PPT.ppt_第1页
现代操作系统第五章输入输出PPT.ppt_第2页
现代操作系统第五章输入输出PPT.ppt_第3页
现代操作系统第五章输入输出PPT.ppt_第4页
现代操作系统第五章输入输出PPT.ppt_第5页
已阅读5页,还剩156页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1,第五章 输入/输出,I/O硬件原理 I/O软件原理 I/O软件层次 盘 时钟 用户界面:键盘、鼠标和监视器 瘦客户机 电源管理,2,输入/输出,操作系统的一个主要功能就是控制计算机的所有I/O(输入/输出)设备。操作系统必须向设备发送命令,捕捉中断,并处理错误。它还应该提供设备与系统其他部分之间的接口,使之简单易用。如果有可能,该接口对于所有设备都应该是一样的(设备无关性)。 I/O代码是整个操作系统的重要组成部分。,3,设备管理的重要性,I/O设备的性能经常成为系统性能的瓶颈。CPU性能越高,I/O设备与CPU性能不匹配的反差越大。如何解决这一矛盾并且不降低CPU的性能是设备管理的重要任

2、务。 I/O设备千变万化,怎样对它们实现统一的管理,从而方便用户使用是设备管理的又一重要任务 I/O设备能否及时得将各种信息传送给计算机,计算机发出的各种命令能否通过I/O设备及时传送给执行部件,对于实时处理和控制系统是至关重要的。 用户对I/O设备的使用必须是安全的,如何保证安全地使用设备也是一项重要任务。,4,I/O硬件原理,I/O设备 设备控制器 内存映射I/O 直接存储器存取(DMA) 中断技术,5,I/O设备 (Devices ),设备分类 按设备使用可共享性,分为 独占设备。任一指定的时刻只能让一个进程使用的设备。如打印机、磁带驱动器等 共享设备。能够同时让许多程序使用的设备。如磁

3、盘。 虚拟设备。设备本身是独占设备,而经过某种技术处理,可以把它改造成共享设备,同时分配给多个进程。,6,I/O设备 (Devices ),按设备的信息组织方式,可分为两类: 块设备:把信息存储在固定长度的块中,每块都有其自己的地址。一般块的大小在512至32768字节之间。块设备的基本特征是每个块都能独立地读写。磁盘是最典型的块设备。 字符设备:字符设备发送或接收一个字符流,不考虑任何块结构。因此不编址,没有任何寻址操作。打印机、网络接口等是字符设备。 通常输入输出类设备都是字符设备,而存储类设备都是块设备。但有些设备不能按此分类,如时钟。,7,I/O硬件原理,一些典型的设备、网络和总线的数

4、据速率,8,设备控制器(device controller),I/O单元一般由两部分组成: 机械部分 电子部分 电子部分称作设备控制器或适配器 很多控制器可以连接多个相同的设备 控制器的任务,以磁盘为例,从磁盘驱动器出来的是比特流,控制器要负责: 把串行位流转换为字节块 进行必要的校验工作 在对块验证检查并证明无误后,再将它复制到主存中。,9,内存映射I/O,控制器中有一些寄存器用于与CPU通信: 通过对寄存器写入,操作系统可以控制设备:命令设备发送数据、接受数据、开启或关闭、执行其他操作等等 通过读取寄存器,操作系统可以了解设备的状态,是否准备好接收新命令等。 许多设备还有一个操作系统可以读

5、写的数据缓冲区。例如视频RAM,10,内存映射I/O,CPU如何与控制寄存器和数据缓冲区通信,控制器中寄存器编址的三种方案: I/O单独编址,每个控制寄存器分配到一个I/O端口号,并使用特定的指令,如IN,OUT等。内存地址空间和I/O地址空间是不同的。 内存映射I/O :每个控制寄存器被分配了一个唯一的、没有指派给内存的内存地址。被分配的地址通常在地址空间的高端。 混合方案:控制寄存器具有单独的I/O端口,而数据缓冲区映射到内存空间,11,内存映射I/O,(a) 分离的I/O和内存地址空间 (b) 内存映射I/O (c) 混合方式(内存映射I/O的数据缓冲区,而控制寄存器具有单独的端口),1

6、2,内存映射I/O,内存映射I/O的优点: I/O的设备驱动程序完全可以用C编写。 使用内存映射I/O,无需特殊的保护机制来隔离I/O操作和用户进程。 使用内存映射I/O,每个可以引用内存的指令都同样可以引用控制寄存器。,13,内存映射I/O,内存映射I/O的缺点: 内存高速缓存的处理,操作系统必须管理选择性高速缓存。 具有单独的高速内存总线的系统中,I/O设备无法直接查看内存地址,需要采取特殊的措施。,14,内存映射I/O,(a) 单一总线体系结构 (b) 双总线内存体系结构,15,直接存储器存取(DMA),无论CPU是否具有内存映射I/O,它都需要寻址设备控制器来与其交换数据。CPU每次可

7、以从I/O控制器读取一个字节的数据,不过这种做法太浪费时间,因此经常使用另一种方案,称为DMA(Direct Memory Access,直接存储器存取)。操作系统只能在有DMA控制器的机器上使用DMA,不过现在大多数计算机都有。 现在,更一般的方法是使用单个DMA控制器(例如,在主板上)为多个设备提供数据传输DMA。,16,直接存储器存取(DMA),DMA控制器包括: 一个内存地址寄存器 一个字节计数寄存器 一个或多个控制寄存器。用于指定要使用的I/O端口、传送方向(读或写)、传送单位(一次一个字节或一个字)及一次突发传送中要传送的字节数。,17,直接存储器存取(DMA),DMA方式的数据传

8、送分三个阶段: 传送前预处理:由CPU执行I/O指令,对DMA控制器进行初始化和启动 数据传送阶段:由DMA控制器控制总线进行数据传送。 后处理阶段:数据传送结束,DMA控制器向CPU发中断请求,报告DMA操作结束。CPU响应,转入中断处理程序,完成结束处理工作。,18,直接存储器存取(DMA),DMA传输的操作,19,直接存储器存取(DMA),如上图例: CPU对DMA控制器编程,使之知道在哪里传输什么东西。DMA控制器向磁盘控制器发出一个命令,通知它从磁盘读数据写入其内部缓冲区,并检查校验和。当有效数据已经在磁盘控制器的缓冲区内时,DMA就可以开始了。 DMA控制器通过总线向磁盘控制器发出

9、读请求来启动传输。 写到内存是另一个标准的总线周期。 当写操作完成时,磁盘控制器发送一个确认信号给DMA控制器,同样也通过总线。 然后DMA控制器使其使用的内存地址加1,字节计数减1。如果字节计数仍然大于0,重复步骤2到4,直到计数为0。 此时DMA发中断通知CPU传送已完成。,20,直接存储器存取(DMA),许多总线能够以两种模式操作:每次一字模式(word-at-a-time)和块模式。 在前一种模式中,DMA控制器请求一个字的传输,并且获取它。如果CPU也要使用总线,它必须等候。该机制叫做周期窃取(cycle stealing),因为设备控制器偷偷地潜入,不定期地从CPU手中偷取总线周期

10、,稍许延迟CPU操作。 在块模式中,DMA控制器告诉设备获取总线,发出一系列传输,然后释放总线。这种操作形式叫做突发模式(burst mode),效率更高。,21,中断技术,中断指在计算机执行期间,系统内发生任何不寻常或非预期的急需处理的事件,使得CPU暂时中断当前正在运行的程序而转去执行相应的事件处理程序,待处理完毕后又返回原来被中断处继续执行或调度新的进程。,22,中断技术,基本概念 中断源:引起中断发生的事件 中断请求:中断源向CPU发出的请求中断处理信号 中断响应:CPU收到中断请求后转到相应的事件处理程序的过程 关中断/开中断:CPU内部的PSW的中断允许位被清除/被设置,不允许/允

11、许CPU响应中断。用于保证某段程序执行的原子性 中断屏蔽:在中断请求产生后,系统有选择地封锁一部分中断而允许另一部分仍能得到响应。有些具有最高优先级的中断不允许被屏蔽。,23,中断技术,中断的分类 根据中断源产生的条件,分为 外中断:来自处理机和内存外部的中断。包括I/O中断、外部信号中断(如用户按下ESC键)、时钟中断、调试中断等。外中断在狭义上被称为中断。 内中断:处理机和内存内部产生的中断。一般称为陷阱(trap)或异常。包括程序运算引起的各种错误,如页面失效、除数为零、从用户态到核心态的切换等。,24,中断技术,中断的优先级 为了按中断源的轻重缓急处理响应中断,操作系统为不同的中断赋予

12、不同的优先级。 为了禁止中断或屏蔽中断,PSW中也有优先级。,25,中断技术,中断与陷阱的区别 陷阱通常由正在执行的现行指令引起,而中断则由与现行指令无关的中断源引起。 陷阱处理程序提供的服务为当前进程所用,而中断处理程序提供的服务则不为当前进程所用 CPU在执行完一条指令之后,下一条指令开始之前响应中断,而在一条指令执行中也可以响应陷阱。,26,中断技术,软中断 来源于UNIX系统,相对于硬中断而言。它是在通信进程之间,通过模拟硬件产生的中断而实现的一种通信方式。 中断源发出软中断信号后,CPU或接收进程在“适当的时机”进行处理。接收软中断信号的进程必须在得到处理机后才能响应中断。,27,I

13、/O软件原理,I/O软件的目标 程序控制I/O 中断驱动I/O 使用DMA的I/O 通道控制I/O,28,I/O软件的目标,设备无关性(device independence) 其意思就是指能够编写这样的程序:它可以访问任意I/O设备,而无需事先指定设备。例如,读文件作为输入的程序应该可以读软盘、硬盘或者CD-ROM上的文件,不用为每种不同的设备而修改程序。 统一命名(uniform naming) 文件或设备的名称应该是简单的字符串或整数 所有文件和设备都采用相同的方式:路径名寻址 错误处理(error handling) 应该尽可能地在接近硬件的层次上处理错误,29,I/O软件的目标,同步

14、(synchronous)和异步(asynchronous)传输 阻塞传输 vs. 中断驱动 缓冲(buffering) 来自设备的数据不能直接存储到其最终目标 可共享设备和独占设备 设备分配策略 先来先服务 高优先级优先,30,I/O方式,I/O可以以三种不同的方式实现 程序控制I/O 中断驱动I/O DMA方式,31,程控I/O(Programmed I/O),程控I/O很简单:用户进程控制内存/CPU与外设的信息传递,它利用CPU发命令启动设备、并检测等待设备准备好(忙等待),即CPU控制完成所有的I/O操作。 缺点: CPU与外设串行工作 CPU某一时间只能控制一台设备,设备间不能并行

15、工作。 在嵌入式系统中,CPU没别的事可做,忙等待是合理的。但在更复杂的系统中,忙等待是低效的。,32,程控I/O(Programmed I/O),打印字符串的步骤,33,程控I/O(Programmed I/O),使用程控I/O写一个字符串到打印机,copy_from_user(buffer, p, count);/*p是内核缓冲区*/ for (i = 0; i count; i+) /*每个字符循环*/ while (*printer_status_reg != READY) ;/*循环直到就绪*/ *printer_data_register = pi; /*输出一个字符*/ retu

16、rn_to_user( );,34,中断驱动I/O,特点:CPU在I/O操作时,将进程挂起,转去做其他工作,直至I/O完成后,设备控制器发中断通知CPU,再唤醒进程。 缺点:控制器中缓冲区一般较小,一旦装满就发中断,造成中断次数太多。如打印机,每个字符输出完毕都产生一个中断,中断需要花时间,因此,该方案浪费相当多的CPU时间。,35,中断驱动的I/O,使用中断驱动的I/O写一个字符串到打印机 (a)当打印系统调用被发出时执行的代码。 (b)中断服务例程。,copy_from_user(buffer, p, count);if (count = 0) enable_interrupts( );

17、unblock_user( ); while (*printer_status_reg != READY) ; else *printer_data_register = p0; *printer_data_register = pi; scheduler( ); count = count -1; i = i + 1; acknowledge_interrupt( ); return_from_interrupt( ); (a) (b),36,使用DMA的I/O,特点:类似于程序控制I/O,但是用DMA控制器代替CPU来完成所有工作。 优点: 操作均由硬件电路实现,传输速度快; CPU仅在初

18、始化和结束时参与,基本上不干预数据传送,可减少CPU开销 CPU与外设并行工作,效率高。 缺点:DMA控制器的速度不如CPU,37,使用DMA的I/O,使用DMA打印一个字符串 (a)当发出打印的系统调用时执行的代码。 (b)中断服务例程。,copy_from_user(buffer, p, count); acknowledge_interrupt( ); set_up_DMA_controller( ); unblock_user( ); scheduler( ); return_from_interrupt( ); (a)(b),38,I/O软件层次,I/O软件系统层,39,中断处理程序

19、,除了程序控制I/O外,其他方式(中断方式和DMA方式)都需要中断。中断应该隐藏在操作系统底处 隐藏中断的最好方法就是启动I/O操作的驱动程序阻塞自己直到I/O完成并产生一个中断。 当中断发生时,中断处理程序处理中断,并唤醒阻塞的驱动程序。 中断处理过程 CPU检查响应中断的条件是否满足:有来自于中断源的中断请求、CPU允许中断。 如果CPU响应中断,则CPU关中断,使其进入不可再次响应中断的状态 保存被中断现场。为了在中断处理结束后能正确地返回到断点,必须保存PSW、PC等寄存器的值。,40,中断处理程序,分析中断原因,调用中断处理程序。系统一般都针对不同的中断源编制不同的中断处理子程序(陷

20、阱处理子程序)。这些子程序的入口地址存放在内存的特定单元中。不同的中断源也对应不同的PSW,这些PSW放在相应的内存单元中,与中断处理子程序构成中断向量。系统根据中断向量表找到中断处理子程序的入口和对应的PSW 执行中断处理子程序 退出中断,恢复被中断进程的现场或调度新进程占用CPU。 开中断,CPU继续执行。,41,每个设备控制器都有一个或多个寄存器用来接受命令或表示设备的状态,它们通过读写命令按址存取。(通常有数据寄存器、状态、操作方式寄存器等) 不同设备的寄存器个数和命令含义都不同设备驱动程序(device driver)是操作系统中唯一知道控制器有几个寄存器及它们用途的程序。 每个驱动

21、程序通常处理一种设备,或者最多处理一类紧密相关的设备。例如,SCSI磁盘驱动程序可以处理多个不同容量和速度的SCSI磁盘。另一方面,鼠标和手柄的区别太大以致于通常需要不同的驱动程序。,设备驱动程序(device driver),42,驱动程序的逻辑位置。在实际中,驱动程序与设备控制器之间的所有通信都通过总线。,设备驱动程序(device driver),43,设备驱动程序(device driver),操作系统通常把驱动程序分为很少几类。最通常的种类为块设备(block device),例如磁盘,以及字符设备(character device),例如键盘和打印机,可以产生或接受字符流。 大多数

22、操作系统都定义了所有块驱动程序必须支持的标准接口以及所有字符驱动程序都必须支持的第二标准接口。这些接口都由许多例程组成,这些例程可以由操作系统的其余部分调用来获取驱动程序为其工作。典型的例程就是那些读一个块(块设备)或者写一个字符串(字符设备)之类的例程。,44,设备驱动程序(device driver),驱动程序的任务是接受来自上层的与设备无关软件的抽象请求,并执行这个请求。通用步骤: 检查输入参数是否有效,如有效,将抽象请求转换成具体形式,如磁盘的块号转换成磁道号、柱面号、扇区等。 检查设备是否空闲,如在使用,则请求排队。 根据请求完成的操作,确定发送哪些命令,向控制器中的寄存器写入命令,

23、并检查控制器是否收到命令。,45,设备驱动程序(device driver),设备驱动程序的特性 与I/O设备的硬件结构密切联系。 设备驱动程序中全部是依赖于设备的代码 设备驱动程序是操作系统底层中唯一知道各种输入输出设备的控制器细节 执行确定的缓冲区策略 进行比寄存器接口级别层次更高的一些特殊处理,如代码转换等,46,设备驱动程序(device driver),设备驱动程序的功能 向有关输入输出设备的各种控制器发出控制命令,并且监督它们的正确执行,进行必要的错误处理 对各种可能的有关设备排队、挂起、唤醒等操作进行处理 执行确定的缓冲区策略 进行比寄存器接口级别层次更高的一些特殊处理,如代码转

24、换等,47,设备驱动程序(device driver),发出命令后,由控制器控制命令的执行,此时驱动程序 阻塞自己,等待控制器完成操作后发中断唤醒 若操作完成几乎没有延时,则驱动程序不阻塞 操作完成后,驱动程序要检查是否有错,若一切正常,驱动程序负责将数据送到与设备无关的软件层。 向调用者返回一些用于错误报告的状态信息。若还有其它请求在排队,则选择一个启动,否则等待下一个请求。,48,与设备无关的I/O软件,与设备无关的I/O软件的基本目标:实现一般设备都需要的I/O功能,并向用户层软件提供一个统一的接口。,49,与设备无关的I/O软件,设备无关的I/O软件的功能,50,统一的设备驱动程序接口

25、,下图 (b)中所示为一个不同的设计,其中所有的驱动程序具有相同的接口。现在,插入一个新的驱动程序变成容易多了,提供它一致的驱动程序接口。也就是说,驱动程序编写人员知道他们预期的东西(比如,他们必须提供什么功能以及调用什么内核功能)。在实际中,并不是所有的设备都完全一样,不过通常只有很少几种设备类型,甚至它们几乎是相同的。例如,甚至块设备和字符设备都有许多共同的功能。,51,(a)无标准的驱动程序接口 (b)标准驱动程序接口,统一的设备驱动程序接口,52,统一的设备驱动程序接口,统一接口的两个方面是如何命名I/O设备以及对设备的保护。 与设备无关的软件负责把设备的符号名映射到相应的设备驱动程序

26、 UNIX系统对应于I/O设备的特殊文件用“rwx”位进行保护。,53,缓冲,无论块设备还是字符设备,都需要使用缓冲。 缓冲区设置: 用户空间缓冲:如下图(b) 内核空间缓冲: 单缓冲:如下图(c) 双缓冲:如下图(d)所示,设立第二个内核缓冲区。第一个缓冲区充满之后,但是在清空之前,使用第二个。当第二个缓冲区充满时,可以复制给用户。当第二个缓冲区正在复制到用户空间时,第一个可以用来接收新的字符。这样,两个缓冲区轮流:当一个正在复制到用户空间时,另一个积累新的输入。,54,(a)未缓冲的输入 (b)在用户空间中缓冲 (c)在内核中缓冲,然后复制到用户空间 (d)在内核中的双缓冲,缓冲,55,缓

27、冲,缓冲是一种广泛使用的技术,但是它也有一个缺点。如果数据被缓冲多次,性能就会遭受损失。,56,缓冲,网络可能涉及信息包的许多备份,57,错误报告,I/O环境中的错误远比其他环境中要普遍。当它们发生时,操作系统必须以尽可能最好的方式处理。许多错误是与设备相关的,并且必须由适当的驱动程序来处理,但是错误处理的框架是设备无关的。 I/O错误的类型: 编程错误:如向输入设备写、从输出设备读或指定了无效的设备等。对这些错误采取的行动是简单直接的:就是报告给调用者一个错误代码。,58,错误报告,实际的I/O错误类:例如试图写一个被损坏的磁盘块,或者尝试读取一个关闭的摄像机。在这些情况中,由驱动程序决定如

28、何处理。如果驱动程序不知道怎么做,它可以将问题传递给设备无关的软件。 错误报告的方式: 简单错误,弹出对话框,与用户交互 显示错误消息并终止,59,分配和释放独占设备,某些设备,例如CD-ROM,在任何的给定时刻都只能被单个进程使用。这需要由操作系统来检查设备使用的请求,并且接受或拒绝它们,取决于被请求的设备是否可用。 另外一种方法是使用特殊的机制来请求和释放独占设备。试图获得一个不可用的设备将阻塞调用者,而不是使其失败。阻塞的进程被放到队列后。迟早,被请求的设备变得可用,而且队列中的第一个进程被允许获得它并继续执行。,60,与设备无关的块大小,不同的磁盘可能有不同的扇区大小。通常都是由设备无

29、关的软件来隐藏该事实,并且给高层提供一个统一的块大小,比方说,通过把几个扇区当成一个逻辑块。这样,高层只需处理抽象的、全部使用相同块容量的设备,而不用理会物理扇区大小。同样地,某些字符设备每次发送一个字节(例如调制解调器),而其他的则发送较大的单元(例如网络接口)。这些区别同样也可能被隐藏。,61,用户空间的I/O软件,一小部分I/O软件在用户空间: 库过程:系统调用通常由库过程实现,输入和输出的格式化由库过程完成 假脱机系统:Spooling是在多道程序系统中处理专用I/O设备的一种方法。解决方法就是创建一个特殊的进程称为端口监控程序(daemon),以及一个特殊的目录,叫做spooling

30、目录(spooling directory)。为了要打印一个文件,进程首先产生整个要打印的文件,而且把它放到spooling目录中。然后由端口监控程序,它是允许使用打印机的特殊文件的唯一进程,来打印目录中的文件。,62,I/O系统各层的主要功能,I/O系统的层以及每层的主要功能,63,盘,盘的硬件 磁盘格式化 磁盘臂调度算法 错误处理 稳态存储器,64,盘的硬件,磁盘 RAID CD-ROM CD-Recordable CD-Rewritable DVD,65,盘的硬件,磁盘有多种类型。最一般是一些有磁性的磁盘(硬盘和软磁)。它们的特色是读写一样的快,这使它们成为理想的辅助存储器(分页、文件系

31、统等)。这些磁盘阵列有时用来提供高可靠的存储。对于程序、数据和电影的分发,各种不同的类型光盘(CD-ROM、CD-Recordable 和DVD)也非常重要的。,66,磁盘,磁性磁盘只有很少的电子元件,仅发送简单的位流。在这些磁盘上,控制器完成大部份工作。在其他的磁盘上,特别是IDE(Integrated Drive Electronics,集成电路设备)磁盘中,驱动器本身包含一个微控制器,它可以完成一些工作,而且允许真正的控制器发出一组高级命令。 磁盘驱动器隐含的重要设备特征就是控制器可以同时完成两个或较多的驱动器的寻道。这就是重叠寻道(overlapped seek)。,67,磁盘,360

32、-KB软盘和WD 18300硬盘的磁盘参数,68,(a)有二个区段磁盘的实际几何结构。 (b)该磁盘的一个可能的虚拟几何结构。,磁盘,69,磁盘,为了隐藏每个磁道有多少扇区的细节,大多数的现代磁盘为操作系统提供一个虚拟的几何结构。软件被告知似乎是每个磁道有x个柱面、y个磁头和z个扇区。然后,控制器把对(x, y, z) 的请求重新映射到真正的柱面、磁头和扇区上。上图 (b)所示就是 (a)的物理磁盘的一个可能的虚拟几何结构。在两种情况中,磁盘都有192个扇区,只有公布的排列与实际的不同。,70,RAID,RAID定义为廉价磁盘冗余阵列(Redundant Array of Inexpensiv

33、e Disk),但是业界将I重新定义为Independent,而不是Inexpensive,与之对应的就是SLED(Single Large Expensive Disk,单个大而贵的磁盘)。 RAID的基本思路就是在计算机(通常是一个大的服务器)边上安装的一个装满磁盘的盒子,用RAID控制器卡代替磁盘控制器,通过RAID复制数据,然后继续正常的操作。换句话说,对操作系统而言,RAID应该看起来像SLED一样,但是性能更好,可靠性更高。,71,RAID,RAID level 0到2。 阴影所示为备份和奇偶驱动器,72,RAID level 3到5。 阴影所示为备份和奇偶驱动器,RAID,73,

34、RAID,RAID都可以在驱动器之间分布数据,以允许平行操作。Patterson等人定义了几种不同的方案来实现该功能,现在这些方案称为RAID level 0到RAID level 5。,74,CD-ROM,CD-ROM有很高的记录密度,胜过传统的磁盘。光盘本来是为记录电视节目而开发的,但是它们可以用作计算机的存储设备。由于它们潜在的巨大容量,光盘成为大量研究的主题,并且以令人难以置信的速度发展。,75,CD-ROM,CD是使用高能的红外激光在涂上一层玻璃的母盘上烧制0.8微米直径的洞。用这个激光烧孔的母盘来制作模具。进入该模具内,注入溶化的聚碳酸脂树脂以形成一个和玻璃母盘的孔一样的CD。然后

35、,在聚碳酸脂之上涂上一层非常薄的反射铝,再涂上一层保护漆,最后是标签。在聚碳酸脂基体上的下陷部分称为凹坑(pit);凹坑间的未烧制的区域称为平面(land)。,76,光盘的记录结构,CD-ROM,77,CD-ROM,在回放的时候,一个低能量的激光二极管发出0.78微米波长的红外光投射到凹坑和平面上。激光在聚碳酸脂那一面,这样,凹坑和平面反射的激光不一样。由于凹坑的高度相当于激光波长的四分之一,凹坑反射的光的波长与周围平面反射的波长差半个相位。 凹坑和平面被写在一条起点靠近孔的螺旋线上,该螺旋线一直向边缘延伸出去32mm。该螺旋线围绕盘片旋转了22188圈(大约每毫米600圈)。如果将其展开,将

36、有5.6km长。螺旋线如上台图所示。,78,CD-ROM,1984年,飞利浦和索尼发布了黄皮书(Yellow Book),定义了现在称之为CD-ROM (Compact Disc Read Only Memory,只读光盘存储器)的精确标准。 黄皮书所定义的是计算机数据的格式。它还改进了系统的纠错能力,这是一个必要的步骤,因为虽然音乐爱好者不介意偶尔丢失一位,但是计算机爱好者对此绝对地吹毛求疵。CD-ROM的基本格式是把每个字节编码成一个14位的符号。,79,CD-ROM,CD-ROM的逻辑数据格式,80,CD-ROM,CD-ROM文件系统为一个国际标准(IS 9660)。它共有三层。 Lev

37、el 1使用8.3的文件名。文件名只可能包含大写字母、数字和下划线。目录最多可以深达8层,但是目录命名不能包含扩充名。Level 1需要所有文件是连续存储的,这对于只能写一次的媒介不是问题。MS-DOS、Apple计算机、UNIX 计算机或者几乎所有其他的计算机都可以读任何遵循IS 9660 level 1的CD-ROM。 IS 9660 level 2允许长达32个字符的名字,而level 3允许非邻接的文件。The Rock Ridge扩展允许非常长的名字、UID、GID和符号链接,但是不遵循level 1的CD-ROM不能在所有计算机上读出。,81,CD-Recordables,从物理上

38、说,CD-R就像一张120毫米的聚碳酸脂空白CD-ROM,除了它们包含一个0.6毫米宽的槽用来引导激光写盘。该槽在精确的22.05kHz的频率上有0.3毫米的正弦摆幅,以提供连续的反馈来监控和调节其旋转速度。CD-R就像正规的CD-ROM,除了它们是金色的,而CD-ROM是银色的。 金色来自于使用真正的黄金作为反射层,而不是使用铝。与银色CD不同,必须在CD-R上模拟凹坑和平面的不同反射率。这是在聚碳酸脂和反射的金层之间增加了一个颜料层来实现的,如下图所示。使用的涂料有两种:绿色的青色素以及桔黄色的酞菁。,82,CD-R盘和激光的截面(非比例的)。 除了没有涂料层以及用具有凹坑的铝层替代金层之

39、外,银色CD-ROM有相似的结构。,CD-Recordables,83,CD-Recordables,在其初始状态,涂料层是透明的,使得激光可以通过并且被金层发射。为了写入数据,CD-R的激光被调至到高能量(8-16 mW)。当激光束击中涂料的一个点,它就加热,打破一个化学键。这种分子结构的变化产生一个暗点。当再次读取(以0.5 mW)时,光电探测器可以看到在涂料被击中的暗点以及透明的、原始区域之间的区别。这种区别被解释为凹坑与平面之间的区别,即使在普通的的CD-ROM阅读器上或者在音频CD播放器上回放。,84,CD-Recordables,1989年发布了CD-R的橙皮书(Orange Bo

40、ok)。该文档定义了CD-R以及一个新的格式CD-ROM XA,它允许CD-R可以增量地写入,今天几个扇区、明天几个以及下个月再写几个。一组同时写入的连续扇区叫做一个CD-ROM磁道(CD-ROM track)。,85,CD-Rewritables,虽然人们习惯于诸如纸张和胶卷之类的其他一次性书写媒介,但是仍然希求可复写的CD-ROM。现在,有一种可用的技术就是CD-RW(CD-ReWritable),它和CD-R使用相同尺寸的媒介。不过,CD-RW不是使用青色素或酞菁涂料,而是使用银、铟、锑和碲的合金作为记录层。该合金有两个稳态状态:晶态和非晶态,具有不同的反射率。,86,CD-Rewrit

41、ables,CD-RW驱动器使用具有3种不同能量的激光。高能时,激光融化合金,将其从高反射率的晶态转换到低反射率的非晶态来表现一个凹坑。中等能量时,合金融化,并且重新形成其自然晶态,再次变成平面。低能时,感知该材料的状态(用于读),但是不发生相变。,87,DVD,DVD本来是数字化视频光盘(Digital Video Disk)的缩写,不过现在其正式的名称为数字化通用光盘(Digital Versatile Disk)。DVD使用和CD一样的通用设计,为120毫米的聚碳酸脂模具盘片,包含凹坑和平面,由激光二极体照射以及光电探测器阅读。其创新在于使用了如下技术: 更小的凹坑(0.4微米,而CD为

42、0.8微米)。 更紧密的螺旋线(磁道之间为0.74微米,而CD为1.6微米)。 红色激光器(0.65微米,而CD为0.78微米)。,88,双面、双层的DVD光盘,DVD,89,DVD,DVD由10家消费电器公司的联盟发明,其中的7家为日本的,与主要的好莱坞电影公司密切合作。计算机和通讯工业未在邀请之列,而结论的焦点集中在使用DVD作为影片租赁和售卖表演。例如,标准特征包括实时跳过下流的场景(允许父母为孩子将影片转换成NC 17级)、六个声道以及支持的全景-和-扫描。稍后的特征允许DVD播放器动态地判断如何裁减影片的左右边界(宽高比为3:2的影片)使其可以在当前电视机(宽高比为4:3)上播放,9

43、0,DVD,另一个计算机工业或许没有想到的问题就是,美国盘片和欧洲盘片不兼容,而且其他大陆还有另一种标准。好莱坞需要该“特性”,因为当影片总是先在美国发行,然后在视频影碟发行后再运到欧洲。该主意使得欧洲的音像店不能太早在美国购买影碟,藉此减少新影片的欧洲影院票房。如果好莱坞控制着计算机工业,在美国就会是有3.5”的软盘,而在欧洲则是9cm的软盘了。,91,磁盘格式化,硬盘是由一叠直径为5.25”或者3.5” (甚或在笔记本计算机上更小)的铝、合金或者玻璃盘组成的。 在每个盘上都有一层薄的、可磁化的金属氧化物。制造之后,磁盘上什么信息也没有。 磁盘在使用前,每个盘都要接受软件的低级格式化。其格式

44、由一系列的同轴磁道构成,每个磁道都包含一定数目的扇区,扇区之间有短的间隙。,92,磁盘格式化,磁盘扇区,93,磁盘格式化,柱面斜进(cylinder skew):低级格式化完成后,每个磁道上扇区0的位置都是从前一个磁道偏移而来的,用于提高性能。该思路可以使得磁盘在一个连续操作中读多个磁道而不丢失数据。,94,磁盘格式化,柱面斜进量 一个10000rpm的驱动器每6ms旋转一周,如果一个磁道包含300个扇区,那么每20s有一个扇区从磁头下通过。如果寻道时间是800s,那么在寻道期间有40个扇区通过,所以斜进量为40个扇区。,95,磁盘格式化,柱面斜进的一个例子(斜进量为3),96,磁盘格式化,由

45、于低级格式化,磁盘容量减少了,这取决于前同步码、扇区间的间隙以及ECC的大小, 还有保留的扇区数目。通常,格式化之后的容量比未格式化的容量低20%。多余的扇区并不计算在已格式化的容量当中,因此,所有给定型号的磁盘在出厂时具有完全相同的容量,不管它们实际上有多少坏扇区。,97,磁盘格式化,交错编址:控制器若要读出连续的扇区,则在读出一个扇区进行校验并写入内存时,第二个扇区已从磁头下移过。因此对块编址时考虑交错因子,跳过一些块以便让控制器有时间将数据传送到内存。 (a)非交错 (b)单交错 (c)双交错,98,磁盘格式化,磁盘使用的预备工作的最后步骤就是对每个分区执行高级格式化(high-leve

46、l format)。该操作设定启动块、空闲存储器管理(空闲列表或者位映像)、根目录以及一个空的文件系统。因为许多操作系统支持多个不兼容的文件系统,所以还要在分区表项中放入一个代码,以告知该分区使用的文件系统。此时,系统可以被启动了。,99,磁盘臂调度算法,读写一个磁盘块所需的时间由三个因素决定: 寻道时间(将磁盘臂移动到相应的柱面上的时间)。 旋转延时(等待相应扇区旋转到磁头下的时间)。 实际数据传输时间。 寻道时间相比其他两个时间占支配地位,100,磁盘臂调度算法,先来先服务(FCFS):按请求到达顺序服务 最短寻道时间优先(SSF):磁盘驱动程序维护一张表,按柱面号索引,每个柱面的待处理请

47、求组成一个链表。当前请求结束后,总是选择与现在磁臂位置最近的下一个柱面请求。缺点:在负载较重的情况下,磁臂会停留在中部区域,两端的请求不得不等待。 电梯算法(扫描算法SCAN):驱动程序维护一个当前方向位,当一个请求处理后,检查该位,若方向位向上,则磁臂移至一个向上的等待请求,若无此种请求,则方向位掉转。优点:移动磁臂的总次数的上界是固定的:柱面数的两倍。,101,最短寻道优先(SSF)磁盘调度算法,磁盘臂调度算法,102,调度磁盘请求的电梯算法,磁盘臂调度算法,103,磁盘请求到达的顺序如下(设磁臂初始在柱面11) 111361634912 FCFS服务顺序: 111361634912 磁臂

48、移动的柱面数: 10352018253 111 SSF服务顺序: 111291613436 磁臂移动的柱面数: 13715332 61 电梯算法服务顺序(设初始方向位向上): 111216343691 磁臂移动的柱面数: 14182278 60,磁盘臂调度算法示例,104,错误处理,磁盘制造商正在不断地通过增加线性位密度来推动技术的极限。其线性记录密度大约为5000位/毫米,需要完全一致的基体和极好的氧化物涂层。 制造的缺陷引入了坏的扇区。如果疵点非常小,让ECC纠错是可能的。如果疵点较大,错误是无法屏蔽的。 坏扇区的处理有两种通用方法:在控制器中处理,或者在操作系统中处理。在前一种方法中,每

49、个坏扇区用备用扇区之一将其替换。,105,(a)有一个坏扇区的磁盘磁道。 (b)用备用扇区替换坏扇区。 (c)改变所有的扇区跳过坏扇区。,错误处理,106,错误处理,错误也能在驱动器安装之后的正常操作中出现。ECC不能处理的错误的第一个办法就是再读一次。某些读错误是暂时的。如果控制器注意到某个扇区的重复出现错误,它可以在该扇区完全坏死之前切换到备用扇区。这样,不会丢失数据,操作系统和用户甚至不会注意到该问题。通常,必须使用上图 (b)的方法,因为现在其他扇区都可能包含数据。使用上图 (c)的方法不仅需要重写前同步码,而且还要复制所有的数据。,107,错误处理,由操作系统处理磁盘错误:由软件读取

50、坏区链表,并建立重映射表。它必须确定坏扇区不出现在任何文件中,也不出现在空闲列表或者位映像中。实现的一种方法就是创建一个由所有坏扇区组成的秘密文件。如果该文件不加入到文件系统中,用户就不会意外地读取它。,108,稳定存储器,当一个写操作发给它的时候,磁盘或者正确地写数据,或者什么也不做,不去损害已存在的数据。这样的系统叫做稳定存储器(stable storage),并且已经在软件中实现。 稳定存储器使用一对完全相同的磁盘,对应的块一同工作以形成一个无差错的块。,109,稳定存储器,稳定存储器定义如下三个操作: 稳定写:一个稳定写由下列操作组成:首先在驱动器1上写入块,然后读出以验证其写入的正确

51、性。如果写入不正确,再次写入和读出n次,直到正确为止。在写入驱动器1成功之后,写入驱动器2上对应的块,而且重读,如果需要就重复,直到它最后也成功。在CPU没有发生事故的情况下,一个稳定写完成后,该块被正确地写入到两个驱动器上,而且两者都被校验过。,110,稳定存储器,稳定读:一个稳定读首先从驱动器1读块。如果产生错误的ECC,尝试再读一次,直到n次。如果全部都是坏的ECC,从驱动器2读对应的块。基于给定事实,即一个稳定写保留了块的两个良好备份,而且我们假设两个驱动器中同一块在合理时间内自然坏死的概率可以忽略不计,稳定读总是成功的。,111,稳定存储器,崩溃恢复:崩溃之后,恢复程序扫描两个磁盘,

52、比较对应的块。如果两个块都是好的,而且相同,就什么也不做。如果其中之一有ECC错误,用对应的好块重写坏块。如果两个块都是好的,但是有区别,来自驱动器1的块写入驱动器2。,112,故障对稳定写的影响的分析,稳定存储器,113,时钟,时钟(clock)又叫做定时器(timer),由许多原因决定了它是多道程序系统的操作时至关重要的。它维护时间,并且防止某个进程独占CPU或者其他资源。 尽管时钟既不像磁盘那样是一个块设备,也不像鼠标那样是一个字符设备,但时钟软件通常也采用设备驱动程序的形式。,114,时钟,时钟硬件 时钟软件 软定时器,115,时钟硬件,时钟硬件分类: 简单时钟:每个电压周期产生一个中

53、断 可编程时钟:包括晶体震荡器、计数器和存储寄存器。石英晶体产生周期信号,控制计数器递减,当减到0时,产生一个中断信号。如下图,116,可编程时钟 可编程时钟操作方式: 单脉冲方式:计数器为0时,产生中断并停止工作,直至软件启动。 方波方式:产生中断时,存储寄存器的值自动拷贝到计数器,时钟硬件,117,时钟硬件,可编程时钟的优点:中断频率可由软件控制。如1MHz晶体,16位寄存器,中断周期可控制在1s(寄存器值为0,中断周期等于晶体周期)到65.536ms(寄存器全1(216-1),T=(216-1)/106),118,时钟软件,时钟硬件所做的工作就是每隔一定的时间间隔产生一个中断tick(时

54、钟滴答)。时钟驱动程序的确切任务因操作系统而异。通常包括如下的功能: 维护日期时间 防止进程超时运行 记录CPU的使用的账号情况 处理用户进程发出的alarm系统调用 为系统本身各部分提供监视定时器 完成概要剖析、监视和统计信息收集,119,维护日期时间的三种方法 采用64位计数器,每个tick加1 采用32位计数器+一个位数较少的辅助计数器 按tick计数,但相对于系统启动时间,时钟软件,120,防止进程超时运行:在时间片轮转法中,每个时钟中断,当前运行进程的时间片计数器减1,当等于零时,操作系统调度其他进程。 记录CPU使用情况:进程启动时,启用第二个定时器,记录进程运行时间,时钟软件,1

55、21,处理用户进程提出的alarm系统调用: 进程可请求操作系统在一定时间间隔后向其报警,如网络发送信息包后一定间隔后未收到确认包,则需要重发信息包。 无法为每个请求都设置一个单独的时钟,可以用一个物理时钟模拟多个虚拟时钟。如下图把待处理的时钟请求在一个链表中按时间排序,链表中每个表项指出前一个信号发生后将等待多少tick发下一个信号。每个tick,下一个信号减1,当减至0时,发信号,并将此项从链表中删除。,时钟软件,122,用单个时钟模拟多个定时器 待处理的信号:4203、4207、4213、4215、4216,时钟软件,123,为系统各部分提供监视定时器 如软盘I/O完成后,启动监视定时器

56、,(如3秒后)无后续I/O请求,才关掉电机。(软盘接通电源后,要等待500ms才能进行I/O) 统计分析,时钟软件,124,软定时器(Soft Timer),第二时钟可用于定时器中断 由应用程序设定 如果中断频率很低,则没有问题 软定时器避免了中断 退出内核进入用户模式之前,先检查软定时器是否期满 其工作好坏取决于进入内核的速率,125,软定时器(Soft Timer),软定时器随着其他原因形成内核项的速率而起落。这些原因包括: 系统调用。 TLB错失。 缺页。 输入输出中断。 CPU进入空闲状态。,126,面向字符的终端,每个通用计算机至少有一个键盘和显示器用于交流。这些设备历史上被叫做终端

57、(terminal)。我们将继续使用该术语,即使是讨论个人计算机。 终端有许多种形式。现在,在实际中遇到最普遍的有三种类型: 用于大型机上使用RS-232串行接口的独立终端 用于个人计算机显示的图形用户界面 网络终端 每种类型的终端有其自己的适用环境,127,用户界面:键盘、鼠标和监视器,输入软件 输出软件,128,输入软件(Input Software),用户输入主要来自键盘和鼠标 键盘包含一个嵌入式微处理器,它通过一个特殊的串行端口与主板上的控制芯片通信 一个键被按下和被释放时都会产生键盘中断,129,键盘软件,扫描码:I/O端口中的键编号,7位表示编号,第8位表示键状态 键盘驱动程序跟踪

58、键的状态,接受键盘输入并向上层用户程序传送 键盘驱动程序对输入的处理方法: 面向字符的(原始模式):接受输入并不加修改地向上传送 面向行的(加工模式):处理全部行内编辑,将校正后的行传送给上层,130,鼠标软件,鼠标步:大约0.1mm 发送给计算机的信息:x、y和按钮,即位置上的变化,而不是绝对位置。 单击和双击:两次点击在空间上(鼠标步)最够接近,在时间上(毫秒级)也足够接近,即双击,131,输出软件,文本窗口 X窗口系统 图形用户界面 位图,132,文本窗口,转义序列:用来移动光标、在光标出插入或者删除字符或行的命令 ANSI标准,133,文本窗口,终端输出时接受的ANSI转移序列。 ES

59、C表示ASCII转义字符(0 xlB) n, m和s是可选的数字参数。,134,X窗口系统,UNIX系统的用户界面的基础,简称为X 完全运行在用户空间,在逻辑上分为客户软件和主机软件 X只是一个窗口系统,不是完全的GUI。要获得完全的GUI,需在其上运行其他软件层: Xlib:一组库过程,用于访问X的功能 本征函数集:一个工具包,管理按钮、滚动条及其他窗口小部件的GUI元素 Motif:商业UNIX系统使用的公共桌面环境的基础 窗口管理器:单独的客户进程,控制窗口的创建、删除和移动,135,在 MIT的X窗口系统中的客户机和服务器,X窗口系统,136,X窗口系统,#include #include main(int argc, char *argv) Display disp;/*服务器标识符*/ Window win; /*窗口标识符*/ GC gc; /*图形描述表标识符*/ XEvent event; /*存储一个事件*/ int running = 1; disp = XOpenDisplay(display_name); /*连接到X服务器*/ win = XCreateSimpleWindow(disp, . ); /*为新窗口分配内存*/ XSetStandardProperties(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论