中断
中断和通道技术成为一种里程碑式的重要发展,他们的作用对于计算机和计算机系统都是极为重要的,他们使得现在的计算机更加灵活、有效。
操作系统的基本特征是并发和资源共享,而实现这些特征和中断是密不可分的,因而中断是与处理机管理密切相关的一个重要概念。
中断是实现多道程序设计与并发执行的基础和必要条件。如果没有中断,操作系统就无法获得系统的控制权,就不会将处理机分派给不同的进程而实现并发执行。
随着计算机及计算机系统的不断发展,中断系统已经成为现代计算机系统中进程状态变迁与并发的主要技术基础。
中断和指令周期
1、引起中断的时间或者发出中断请求的来源叫做中断源
2、中断源向CPU发出处理请求叫做中断请求
3、由硬件对中断请求做出反应的过程称为中断响应
从中断到中断响应,顺序执行以下三个步骤:
(1)终止当前程序的执行
(2)保存原程序的断点信息
(3)转到相应的中断处理程序
中断分为强迫性中断和自愿性中断
强迫性中断是正在运行的程序所不知的。这类程序的发生与否,何时发生都是事先所无法预知的,因而执行的程序可能在任何位置被打断。这类中断大致有以下几种:时钟中断事件、输入输出中断事件、控制台控制事件、硬件故障中断、程序性中断(如地址越界、数据溢出、缺页或缺段故障等)
自愿性中断是正在运行的程序事先有意识安排的。
高级、中级和低级调度
创建新进程时,执行高级调度,它需要决定是否把进程添加到当前活跃的进程集合。
中级调度是属于交换功能的一部分,它需要决定(部分)进程是否可以,或不在处于活动空间中。
低级调度真正决定下一次执行哪一个就绪进程。
高级调度又称为作业调度,其职能是将一个作业从输入井中的作业队列中调入内存,并为其建立相应的进程,使其进入系统活动空间,成为可随时运行的实体。
作业调度使作业以进程的方式进入内存,并获得运行资格,但真正获得CPU运行资格还需要经过低级调度,是最基本的一级调度。
中级调度一般与交换有关。交换是进程在内存与外村之间的调度。交换的目的一般有两个:一是缓解内存空间等资源紧张的矛盾;二是减少并发度以降低系统开销。
并发度的提高可以提高系统资源利用率,从而提高系统利用率,但是并发度不是越高越好。并发度过高会导致激烈的系统资源竞争,从而使进程经常等待其他进程所占有的资源,甚至导致死锁。并发度过高还会导致CPU资源在进程或线程之间的频繁切换,增加系统开销。
当系统中的并发度过高时,就将内存中的某些进程交换到外存。虽然进程被交换到外存,但他作为系统中的一个进程依然存在,即他的PCB依然存在。待以后系统并发度较低时再交换回内存。
低级调度(处理机调度)是指CPU在可运行实体之间的分配。
进程调度方式
(1)非抢占方式:这种调度方式下,一旦一个进程被选中投入运行,他就一直运行下去,直至完成工作,自愿放弃CPU,或者因某个事件而被阻塞为止,才把CPU让出给其他进程。即得到CPU的进程不会因为时钟中断等原因而被迫让出CPU.
(2)抢占方式:与非抢占方式相比,抢占方式允许进程调度程序根据某种策略终止当前正在运行的程序,并将其移入就绪队列,再根据某种调度算法选择另一个进程投入运行。抢占方式发生的情况可分为:新进程到达、出现中断且将阻塞进程转变为就绪进程,以及用完规定的时间片等。
抢占方式比非抢占方式调度的开销大,但好处是能防止一个进程长期占有CPU。
调度时机
一般在以下事件发生后要执行进程调度:
(1)创建进程:当创建新进程时,要决定运行父进程还是子进程
(2)进程终止:当一个进程终止时,必须进行调度。因为终止的进程不会再运行,所以必须从就绪队列中选择一个进程投入运行。
(3)等待事件:运行的程序可能会由于等待IO、信号量或其他原因而不得不放弃CPU,这样就选择另一个进程投入运行。
(4)中断发生:当IO设备完成后会发出IO中断,原先等待IO的进程就会从阻塞态变回就绪态,此时进程调度就要决定是让新就绪的进程投入运行,还是让原来被打断的正在运行的进程继续执行,或是让其他进程投入运行。
(5)运行到时:在分时系统中,当前进程用完给定的时间片,时钟中断使该进程让出CPU,调度程序选择另一个进程投入运行。
实时调度
实时系统中存在着若干个实时任务,他们对时间有严格的限制要求,往往是用来控制某些外部事件,并带有某种程度的紧迫性,因而对实时系统中的调度提出了某些特殊要求。前面所描述的调度算法并不能很好满足实时系统对调度的要求,因此引入一种新的调度--实时调度。
根据对截止时间的要求,实时任务可以分成硬实时任务和软实时任务。硬实时任务是指系统必须满足任务对截至时间的要求,否则,就会导致无法预测的后果或对系统产生致命的错误。
软实时任务是指任务与预期的截止时间相关联,但不是绝对严格的,即使已超出任务的截止时间,仍然可以对其实施调度。
实现实时调度的几个条件:
1)提供必要的信息,如就绪时间、开始截止时间和完成截止时间等
2)系统处理能力
3)采用抢占式调度机制
4)具有快速切换机制