操作系统原理第1章 硬件基础.ppt

1.5.3 存储器访问的局部性原理 此原理可以应用于多级存储器组织结构中。最快、最小和最贵的存储器类型由位于处理器内部的寄存器组成。在典型情况下,一个处理器包含多个寄存器,某些处理器包含上百个寄存器。向下跳过两级存储器层次就到了内存层次,内存是计算机中主要的内部存储器系统。内存中的每个单元位置都有一个唯一的地址对应,而且大多数机器指令会访问一个或多个内存地址。内存通常是高速的、容量较小的高速缓存的扩展。高速缓存通常对程序员不可见,或者更确切地说,对处理器不可见。高速缓存用于在内存和处理器的寄存器之间分段移动数据,以提高数据访问的性能。 1.5.3 存储器访问的局部性原理 易失性存储器通常采用半导体技术。半导体存储器有各种类型,它们的速度和价格各不相同。数据更多的是永久保存在外部存储设备中,通常是硬盘和可移动的储存介质,如可移动磁盘、磁带和光存储介质。非易失性的外部存储器也称为二级存储器或辅助存储器,它们用于存储程序和数据文件,其表现形式是程序员可以看到的文件(file)和记录(record),而不是单个的字节或字(word)。硬盘还用做内存的扩展,即虚拟存储器。 1.4.2 中断处理 5)处理器把响应此中断的中断处理程序入口地址装入程序计数器中。可以针对每类中断有一个中断处理程序,也可以针对每个设备和每类中断各有一个中断处理程序,这取决于计算机系统结构和操作系统的设计。如果有多个中断处理程序,处理器就必须决定调用哪一个,这个信息可能已经包含在最初的中断信号中,否则处理器必须给发中断的设备发送请求,以获取含有所需信息的响应。 一旦完成对程序计数器的装入,处理器继续到下一个指令周期,该指令周期也是从取指开始。由于取指是由程序计数器的内容决定的,因此控制被转移到中断处理程序,该程序的执行引起下面的操作。 1.4.2 中断处理 6)在这一点,与被中断程序相关的程序计数器和PSW被保存到系统栈中,此外,还有一些其他信息被当做正在执行程序的状态的一部分。特别需要保存处理器寄存器的内容,因为中断处理程序可能会用到这些寄存器,因此所有这些值和任何其他的状态信息都需要保存。在典型情况下,中断处理程序一开始就在栈中保存所有的寄存器内容。 7)中断处理程序开始处理中断,其中包括检查与I/O操作相关的状态信息或其他引起中断的事件,还可能包括给I/O设备发送附加命令或应答。 8)当中断处理结束后,被保存的寄存器值从栈中释放并恢复到寄存器中。 1.4.2 中断处理 9)最后,从栈中恢复PSW和程序计数器的值,其结果是来自前面被中断的程序的下一条要执行的指令。 保存被中断程序的所有状态信息并在以后恢复这些信息,这是十分重要的,因为中断并不是程序调用的一个例程,它可能在任何时候发生,因而可以在用户程序执行过程中的任何一点上发生,它的发生是不可预测的。 1.4.3 多个中断 实际上,当正在处理一个中断时,很可能发生一个或多个中断,例如,一个程序可能从一条通信线中接收数据并打印结果。每完成一个打印操作,打印机就会产生一个中断,每当一个数据单元到达,通信线控制器也会产生一个中断。数据单元可能是一个字符,也可能是连续的一块字符串,这取决于通信规则本身。在任何情况下,都有可能在处理打印机中断的过程中发生一个通信中断。 1.4.3 多个中断 处理多个中断有两种方法。第一种方法是当正在处理一个中断时,禁止再发生中断,即处理器对任何新的中断请求信号不予理睬。如果在这期间发生了中断,通常中断保持挂起,当处理器再次允许中断时,再由处理器检查。这种方法很简单,因为所有中断都严格按顺序处理,见图1-12 a)。 图1-12 多中断中的控制转移 1.4.3 多个中断 上述方法的缺点是没有考虑相对优先级和时间限制的要求。例如,当来自通信线的输入到达时,可能需要快速接收,以便为更多的输入让出空间。如果在第二批输入到达时第一批还没有处理完,就有可能由于I/O设备的缓冲区装满或溢出而丢失数据。 1.4.3 多个中断 第二种方法是定义中断优先级,允许高优先级的中断打断低优先级的中断处理程序的运行,见图1-12 b)。例如,假设一个系统有三个I/O设备:打印机、磁盘和通信线,优先级依次为2、4和5,图1-13给出了可能的顺序。 图1-13 多中断的时间顺序 1.4.3 多个中断 用户程序在t=0时开始,在t=10时,发生一个打印机中断;用户信息被放置到系统栈中并开始执行打印机中断服务例程(Interrupt Service Routine, ISR);当这个例程仍在执行时,在t=15时发生了一个通信中断,由于通信线的优先级高于打印机,因此必须处理这个中断,打印机ISR被打断,其状态被压入栈中,并开始执行通信ISR;当这个程序正在执行时,又发生了一个磁盘中断(t=20),由

文档评论(0)

1亿VIP精品文档

相关文档