第二章 进程管理习题及答案(11)
发布时间:2021-06-08
发布时间:2021-06-08
操作系统
存放到预先约定好的主存固定单元中保护起来,再把已经确定好的操作系统处理程序的“新PSW”送到程序状态字寄存器,成为“当前PSW”,这一过程称“交换PSW”。中断装置通过交换PSW使被中断进程让出处理器,且使处理器按照中断处理程序的“新PSW”控制执行。于是,中断处理程序就占用了处理器,它先从保存好的旧PSW中取出中断码,分析发生的具体事件,从而可完成对中断事件的处理。
一个进程占有处理器运行时,可以由于各种不同的事件发生而被中断。对各类不同的事件操作系统的处理是不同的,一般来说,对每一类事件都要有该类事件的处理程序,每一类处理程序都有一个“新PSW”。中断装置发现中断事件后应按中断事件类让相应的中断处理程序占有处理器,为此,可预先约定一些主存固定单元用来分别存放各类中断处理程序的“新PSW”和由于各种不同原因被中断的进程的“旧 PSW”,发生哪类中断事件就交换哪一类的新、旧PSW。具体处理过程如下:
中断装置发现中断事件后把中断事件存入程序状态字寄存器中当前PSW的中断码位置;
把当前PSW保存起来,根据发生的事件类找出事件对应的旧PSW位置(假设发生的是外部中断事件),把当前PSW保存到该位置上;
把该类事件处理程序的新PSW送入程序状态字寄存器,处理器就按这个新PSW控制处理该事件的中断处理程序执行。
7.给出不同中断事件的中断处理程序的处理。
【解析】
各类中断事件的处理原则大致如下:
(1)硬件故障中断事件的处理
排除这类故障必须进行人工干预,因此处理这类事件只能是输出一些故障信息。例如,当主存储器的奇偶校验或海明校验装置发现主存储器读写错误时,产生故障中断事件,中断处理程序要把访问该主存单元的进程状态改成“等待干预”,向操作员报告出错主存单元的地址和错误性质。待操作员排除故障后重新启动进程,使“等待干预”状态的进程变成“就绪”状态。
(2)程序中断事件的处理
程序中断事件往往与程序的具体编制有关,不同的用户对出现的事件可以有不同的处理要求,所以,中断处理程序可把出现的事件转交给用户自行处理。如果用户对发生的事件没有提出处理办法,那么操作系统就把发生事件的进程名、程序断点、事件性质等报告给操作员。
(3)外部中断事件的处理
用户可以用控制板上的中断键请求调用操作系统的某个特定功能。所以,当按压了一个中断键产生一个外部中断事件时,处理该事件的程序根据中断键的编号把处理转交给一个特定的例行程序。时钟是操作系统进行调度工作的重要工具,在UNIX系统中,硬件按电源频率每隔20毫秒产生一次中断请求。处理程序累计时钟中断次数用来调整日历时钟时间。只要在开机时置好开机时刻的年、月、日、时、分、秒,以后根据时钟中断的次数可计算出当前的时间。也可把时钟作为定时闹钟,先确定一个定时时间,只要把当前的日历时钟时间与定时的时间相加就得到唤醒时间,处理程序每隔一段时间(例如1秒钟)把日历时钟时间与唤醒时间比较,当日历时钟时间>=唤醒时间,就表示定时的时间到了,起到闹钟的作用。