计算机操作系统学习(三)处理器管理(2)

目录

九.中断事件的处理:

(一)保护被中断进程的现场信息

(二)分析中断原因

(三)处理发生的中断事件

各种中断事件的处理原则:

1.硬件故障中断事件的处理

2.程序性中断事件的处理

3.外部中断事件的处理

4.输入输出中断事件的处理

5.自愿中断事件的处理

十.中断优先级和中断屏蔽:

十一.进程调度算法:

(一)记录系统中所有进程的情况:

(二)分配处理机:

(三)把控制权交给被选中的处理机并使之运行:

以下是集中最常用的算法:

(1)先来先服务的原则:

(2)轮转法调度

(3)多队列轮转法调度

(4)优先数法调度

十二.进程调研的职责:

重难点解析:

1.顺序程序、并发程序、多道程序设计

2.进程与程序的区别  

3.可屏蔽中断和不可屏蔽中断  

4.时间片轮转法的时间片选择  

5.优先数的设置方法

  1.静态设置方式

  2.动态设置方式

概念:

1.程序浮动

2.进程

3.线程

4.多任务执行

5.程序

6.计算

7.多道程序设计

8.中断

 小结:

测试题:


上接第一部分,这里开始第二部分。

九.中断事件的处理:

硬件的中断装置发现了中断事件后,由操作系统的中断处理程序对中断事件进行处理。中断处理程序的主要工作有如下几方面:

(一)保护被中断进程的现场信息

 把中断时的通用寄存器内容、控制寄存器内容以及已被中断装置保证的旧PSW保存到被中断进程的进程控制块中。其目的是保存被中断进程再次运行时,能继承中断前的情况继续运行。

(二)分析中断原因

 根据被中断时由中断装片保存的旧PSW中的中断码可知发生该种中断的具体原因。例如,发生的是程序性中断事件,找出中断码中为"1"的位,根据其所在位置可区分出是由地址越界",还是"定点溢出"或者其他原因引起的中断。

(三)处理发生的中断事件

 由于各种中断事件的性质不同,因此,也要进行不同的处理,甚至对同一种中断的不同事件的处理也不相同。中断处理程序在分析引起中断的原因后,要对其分别处理,在有些情况下还可转交给适当的例行程序处理。

各种中断事件的处理原则:

1.硬件故障中断事件的处理


  这种事件是由厂硬件故障引起,要排除故障必须进行人工干预,中断处理程序只能输出信息,向操作员报告并提供一些故障信息,以便维修和校正。 

2.程序性中断事件的处理


  程序性中断事件往往与程序的编制有关。处理程序性中断事件有两种方法,对一些纯属程序错误而又难以克服的事件,例如,地址越界、使用非法操作码及目态下使用特权指令等,中断处理程序只能十n进程名、程序断点及错误性质等信息打印输出,进程等待干预。
  对另一些事件,例如,定点溢出及除数为"0"等,不同的用户可以有不同的处理要求。所以,中断处理程序可把出现的事件转交给用户自行处理。如果用户程序对发生的事件没有提出处理办法,那么,中断处理程序也只能输出信息,让进程等待干预。

3.外部中断事件的处理


  引起外部中断的原因很多,处理办法也就截然不同。

4.输入输出中断事件的处理


  输入输出中断事件与外围设备的工作密切相关,这种事件的处理将在第六章中介绍。

5.自愿中断事件的处理


  这是正在运行的进程执行了一条访管指令引起的,表示运行的进程请求调用操作系统的功能。 在访管指令中都用参数来区分调用的功能,例如,UNIX系统中的"trap"指令用六位表示参数。参数的编号与操作系统的功能模块号对应,因此,根据参数可知道请求哪个功能服务。中断处理程序要根据用户设置的参数,启动相应的功能模块为用户服务。

于是,中断处理程序可预先设计一张"系统功能模块入口表",按顺序依次列出各功能模块执行时的起始地址。当有访管中断请求处理时,中断处理程序查这张入口表,找出与参数对应的功能模块入口地址,把具体的处理转交给功能模块进行。

十.中断优先级和中断屏蔽:

    当多个中断同时发生时,中断装置如何响应这些中断呢?一般来说,中断装置是按预定的顺序响应同时出现的中断事件。这个预定的顺序称为"中断优先级"。中断装置先响应优先级高的中断事件,再响应优先级低的中断事件。
  中断优先级是按中断事件的重要性和紧迫程度来确定的,是在硬件设计时固定的。不同的系统对中断优先级的划分不尽相同,一般情况下,优先级的高低顺序为
  硬件故障中断,自愿中断,程序性中断,外部中断,输入输出中断。
  中断优先级只是中断装置响应中断的次序,当中断装置响应了某个中断后,中断处理程序在进行处理时,中断装置又可能响应另一个中断事件。这时,前一个中断处理程序的执行被打断了,而由处理后一个事件的中断处理程序先插入执行。

这样也会出现问题:

        为了解决这两个问题,我们希望在一个中断处理程序没有结束之前,不要再响应其他的中断事件,或只响应比当前级别高的中断事件。
  为此,计算机系统采用中断屏蔽技术。许程序状态字中的中断屏蔽位与一些中断事件相对应,当某位有屏蔽标志时,表示封锁对相应事件的响应。
  于是,当中断装置检查到有中断事件后,再要查看当前PSW的中断屏蔽标志。若没有屏蔽,则可响应该中断;若有屏蔽标志,则暂不响应该中断,待屏蔽标志消除后再响应。
  中断处理程序可以有选择地设置中断屏蔽位。通常,中断处理程序只屏蔽比自己级别低的中断事件。但是,自愿中断是不能屏蔽的。

十一.进程调度算法:

        进程调度也称为处理机调度,它协调和控制各进程讨CPU的使用户进程数总是多于处理机的数目。因此,总有众多的进程在等待处理机。到底应该让哪一个进程得到处理机,这是一个很重要的问题。操作系统必须按一定的算法把处理机动态地分配给就绪队列中的某一个进程,并使之运行,这就是进程调度的任务。为完成这个任务,进程调度程序应具备以下职能:

(一)记录系统中所有进程的情况:

 为了对进程进行有效的管理,必须把每个进程的情况随时记录在PCB中,登记的信息包括进程的名字、当前状态、优先数、资源使用情况等。

(二)分配处理机:

 当处理机空闲需要重新分配时,进程调度程序按照一定的算法把处理机分配给就绪队列中最有资格得到处理机的进程,并确定分配多长时间。如果某进程正在执行又有优先数高的进程要占用处理机,或者该进程时间片已用完时,进程调度程序根据调度原;。耳选取合乎条件的进程投入运行,即重新分配处理机。

(三)把控制权交给被选中的处理机并使之运行:

  即把获得处理机的进程从就绪队列中移:。并将其状态改为执行状态。

  采用什么样的算法把处理机分配给进程,是进程调度的核心问题,调度算法合理与否直接影响到资源的利用率、处理机的空闲状态以及处理机被某个进程独占等。

以下是集中最常用的算法:

(1)先来先服务的原则:


  这种调度算法按照进程就绪的先后顺序来调度进程,到达的越早其优先数越高。获得处理机的进程,未遇到其它情况时,一直运行下去。
  系统只需具备一个先三先出的队列,在管理按优先数排列的就绪队列时,它是一种常见的策略,并且在没有其它信息时,也是一种最合理的策略。

(2)轮转法调度

        轮转法调度就是把处理机按时间片分配给就绪队列中的每一个进程,它是先来先服务的一个重要变型。系统把所有就绪进程按先后次序排队,处理机总是先分配给就者队列中的第一个进程,并分配给它一个固定的时间片。
  当该进程用完规定的时间片后,被迫绎放处理机给下一个处于就绪队列中的第一个进程,并分给这个进程相同的时间片。每次运行完规定时间片的进程,如果未遇到任何封锁,就回到就绪队列的尾部,等待下一次轮到它时再投入运行。因此,只要是处于就绪队列中的进程.总可以分配别处理机投入运行。 

(3)多队列轮转法调度


  多队列轮转法调度就是把单就绪队列改成双就绪队列,或多就绪认列,并赋予每个队列不同的优先数。如在双就绪队列中一个赋予较高优先数的队列,称为前亏就绪队列,另一个赋予较低优先数的队列,称为后台就绪队列。
  进程调度程序首先调度前台式绪队列中的请进程,并保证充分为它们服务。只有前台就绪队列中所有进程全部运行完毕或:等待I/O操作而没有进程可运行时,才把处理机分配给后台就绪队列中的进程,分得处理::的就绪进程立即投入运行。通常前后台就绪进程分配到的时间片不一样,这样就可弥补运行时间长的进程的要求,同时也降低了运行时间长的进程的交换频率,提高了系统的利用率。

(4)优先数法调度

这是进程调度中最常用的一种简单方法.它把处理机分配给就绪队列中优先数最高的进程。这种方法的关键问题是如何确定进程的优先数。常用的确定原则有:
  <1>规定进程的优先数与其运行时间成反比,即执行时间越短的进程,其优先数越高。
  <2>根据进程的不同类型确定优先数;
  <3>动态地修改进程优先数。
  大多数动态优先数方案设计成:把交互式和I/O请求频繁的进程移到队列的顶端,把计算量大的进程移到较低的优先数上;在每级内.先来先服务或轮转法分配处理机。 

对于一给定时间周期,一个正在运行的进程,每请求一次I O操作后其优先数就自动加1,显然此进程的优先数直接反映出I/O请求的频率,从而使I/O设备具有很高的利用率。

十二.进程调研的职责:

        进程调度的职责是按选定的进程调度算法从就绪队列中选择一个进程,让它占用处理器。怎样才能让被选中的进程去占用处理器呢?
  把选中进程的进程控制块中有关的现场信息,如通用寄存器、控制寄存器和程序状态字寄存器的内容送入处理器相应的寄存器中,处理器就按该进程的要求工作,达到了进程占用处理器的目的。
以下四种情况会引起调动程序工作:

(1)一个进程从运行状态变成了等待状态。
  (2)一个进程从运行状态变成了就绪状态。
  (3)一个进程从等待状态变成了就绪状态。
  (4)一个进程完成工作后被撤消。
  在(1)和(4)的情况,进程调度将从就绪队列中另选一个进程占用处理器。把一个进程让出处理器,由另一个进程占用处理器的过程称为"进程切换"。在(2)和(3)的情况,进程调度会产生两种结果,一种是仍选中原来运行的进程继续运行,另一种是切换成另一个进程去运行。 

        进程的切换使系统中的各进程均有机会占用处理器。进程的切换是由进程状态的变化引起的,而进程状态的变化又与出现中断事件有关。当有中断事件发生时,当前运行的进程被中断,中断响应后由操作系统处理出现的中断事件。中断处理后,某些进程的状态会发生变化,也可能又创建丁一些新的进程。
  因此,要进行队列的调整。然后,进程调度根据预定的调度算法从就绪队列选-个进程占用处理器。这个占用处理器运行的进程可能仍是被中断进程,也可能是另一个进程。

重难点解析:

1.顺序程序、并发程序、多道程序设计

  顺序程序
  顺序环境:在计算机系统中只有一个程序在运行,这个程序独占系统中所有资源,其执行不受外界影响。
  顺序程序的特征:程序执行的顺序性。
  程序执行的封闭性:独占资源,执行过程中不受外界影响。
  程序结果的可再现性:程序运行结果与程序执行速度无关,只要初始状态相同,结果应相同。

  并发程序
  并发环境:在一定时间内物理机器上有两个或两个以上的程序同处于开始运行但尚未结束的状态,并且次序不是事先确定的。
  特征:
  (1) 不可再现性:并发程序执行的结果与其执行的相对速度有关,是不确定的。
  (2) 间断性:在并发环境下程序的执行是间断性的。
  (3) 资源共享:系统中资源被多个进程使用。
  (4) 制约性: 进程之间可相互作用(相互制约),可分为直接作用和间接作用。
  (5) 程序和计算不再一一对应。
  引入并发的目的:引入并发是为了提高资源利用率,从而提高系统效率。

  多道程序设计
  考虑因素:在多道程序环境下如何向用户提供服务;在并发程序之间如何正确传递消息(通讯)。如何对CPU进行调度,保证每个用户相对公平地得到CPU(CPU是一个只可调度,不可分配的资源。)
  如何管理其它资源: 当各用户对资源使用上发生冲突时,如何处理竞争。
  引入目的:是为了提高系统效率。
  对CPU只能通过调度来解决竞争问题,而对于其它资源通过申请-分配-使用-回收的办法进行管理,当且仅当占有CPU的时候才可以申请,否则要排队等候。

2.进程与程序的区别
  

        (1)进程是程序的执行,进程是动态概念;程序是一组指令的有序集合,是静态概念。
  (2)进程是有生命过程的,从诞生(建立)到死亡(撤消);程序的存在则是永久的。
  (3)进程的组成包括程序,数据,以及记录进程状态信息的"进程控制块"。
  (4)一个程序可能对应多个进程。
  (5)一个进程可以包含多个程序,主程序执行中调用其它程序。 

3.可屏蔽中断和不可屏蔽中断
  

        两者都属于硬件中断。可屏蔽中断可以由计算机根据系统需要决定接收处理、不处理或是延后处理(屏蔽),而不可屏蔽中断直接激活相应的中断处理程序,不能也不会被延误(因为它处理的都是关系计算机系统安全的大事,如:电源故障、内存出错等) 

4.时间片轮转法的时间片选择
  

        时间片选择问题:
  固定时间片:系统在创建进程时已经分配固定的时间片给改进程;
  可变时间片:根据系统资源,系统动态的为每个进程分配时间片,提高系统资源的利用率。
  与时间片大小有关的因素:
  系统响应时间
  就绪进程个数
  CPU处理能力 

5.优先数的设置方法


  在优先级调度算法中,进程的优先数通常以显式方式获得,换言之,由系统或用户为进程赋予优先数。优先数的设置有静态和动态两种方式。


  1.静态设置方式


  此方式是指进程在创建时为其指定一个优先数,且在该进程生存期内保持不变。那么,根据什么原则给各进程指定优先数呢?这与具体系统的类型及控制方式有关。一般说来,有下述原则:
  (1)按进程类型指定。可将进程分为系统进程和用户进程两类。系统进程的优先级应高于用户进程。
  (2)按进程功能指定。在实时系统中,依各进程任务的轻重缓急赋予优先数。例如,报警进程应优先于参数计算进程,参数计算进程应优先于显示和打印进程。
  (3)按资源要求指定。可根据进程对各种资源或对主要资源要求的数量的多少指定其优先数。例如,若赋予要求CPU时间或内存空间少的进程较高的优先数,就实现了短进程(时间少或空间小)优先的算法。
静态设置方式易于实现,系统开销较小,但它过于死板,不能根据系统内状态变化情况动态地调整优先数,因而不能更好地满足各种要求。


  2.动态设置方式


  所谓动态设置是指在进程生存期内,由系统经常不断地改变其创建时所获得的优先数。例如,在UNIX中,随着进程占用CPU时间的不断增长,其优先级被系统不断地下调;反之,放弃CPU的时间越长,其优先级就越高。系统每隔一段时间就重新计算并调整所有进程的优先数。采用这种方法可使进程比较均衡地使用CPU。

概念:

1.程序浮动


  程序可以随机地从主存的一个区域移动到另一个区域,程序被移动后仍丝毫不影响它的执行。

2.进程


  进程是能和其它程序并行执行的程序段在某数据集合上的一次运行过程.它是系统资源分配和调度的一个独立单位。

3.线程


  所谓线程是指由进程进一步派生出来的一组代码(指令组)的执行过程。

4.多任务执行


  多任务执行是指在同一台计算机系统的同一时刻运行多个程序。


5.程序


  指令或语句序列,体现了某种算法,所有程序是顺序的。

6.计算


  一个程序的执行。

7.多道程序设计


  让多个计算问题同时装入一个计算机系统的主存储器并行执行,这种设计技术称"多道程序设计"。

8.中断


  是计算机在运行过程中随机的和实时的处理外界发出的各种请求或紧急情况的技术。

 小结:


多道程序设计系统必须做好存储保护、程序浮动及资源分配与管理工作。

  多道程序设计系统里有那个和发挥了处理器与外围设备之间的并行工作能力,从而极大地提高了处理器和其他各种资源的利用率,增加了单位时间内的算题能力。但是,多道程序设计可能会延长程序地执行时间。尤其要注意:并行工作道数与系统效率不成正比。

  把一个程序在一个数据集合上的一次执行称为一个"进程"。进程是有生命期的,每个进程都有一个进程控制块记录进程的执行情况。随着进程状态的变化,进程经常要从一个队列退出,进入另一个队列,直至进程消亡。

  中断系统在实现进程并发执行、维护系统正常工作、进行故障处理及满足实时处理要求等方面起着重要作用。硬件的中断装置发现并响应中断,操作系统的中断处理程序对出现的中断事件进行处理。一次中断后可能引起若干进程的状态变化,因此,中断处理后应由进程调度决定哪个进程占用处理器。

  根据系统,使用目的,处理器的能力,以及用户的愿望等各方面综合考虑进程调度算法的选择。当一个进程运行完毕,或由于某种错误而终止运行当一个进程在运行中处于等待状态(等待I/O),分时系统中时间片到,当有一个优先级更高的进程就绪(可抢占式),例如:新创建一个进程,一个等待进程变成就绪, 在进程通讯中,执行中的进程执行了某种原语操作(P操作,阻塞原语,唤醒原语)等,都将引起进程调度的进行。

测试题:


1.分时系统中进程调度算法通常采用( )。
 A.响应比高者优先
 B.时间片轮转法
 C.先来先服务
 D.短作业优先


参考答案:B


2.进程从运行状态进入就绪状态的原因可能是(  )
 A.被选中占有处理机
 B.等待某一事件
 C.等待的事件已发生
 D.时间片用完


参考答案:D

3.多道程序设计是指(  )
 A.在实时系统中并发运行多个程序  
 B.在分布系统中同一时刻运行多个程序
 C.在一台处理机上同一时刻运行多个程序  
 D.在一台处理机上并发运行多个程序

参考答案:D

4.UNIX操作系统是著名的( )。
 A.多道批处理系统;
 B.分时系统;
 C.实时系统;
 D.分布式系统。

参考答案:B

  1. .什么是多道程序设计系统?

    让多个计算问题同时装入一个计算机系统的主存储器并行执行,这种技术称为多道程序设计,这种计算机系统称为多道程序设计系统。

  2. 多道程序设计系统中应注意些什么?                                                                                               多道程序设计系统必须做好存储保护、程序浮动、资源分配及管理工作。
  3. 多道程序设计从哪几方面提高系统的效率?

多道程序设计从三个方面提高系统的效率:①减少cPU的空闲时间,提高处理器的利用率。②合理搭配程序,充分利用外围设备资源。③发挥处理器与外围设备,以及外围设备之间的并行工作能力。

4.什么是进程?为什么要引入进程的概念?

进程是一个程序在一个数据集上的一次执行。引入进程的目的在于从变化的角度动态地研究程序的执行。

5.简述进程的三种基本状态及其变化情况.

进程的三种基本状态为等待态、就绪态、运行态。运行态会变成等待态或就绪态,前者是由于等待外设等资源引起,后者是由时间片用完等原因引起;等待态变成就绪态,是由于等待的条件已得到满足;就绪态变成运行态,是按调度策略从就绪队列中选出一个进程占用处理器时,该进程就从就绪态变成运行态。

6.进程与程序有何区别?

程序是静止的,进程是动态的。进程包括程序和程序处理的对象(数据集),进程能得到程序处理的结果。

7.进程由哪三部分组成?

进程由程序、数据集和进程控制块三部分组成。

8.操作系统根据什么控制和管理进程?为什么?

操作系统根据进程控制块控制和管理进程。因为进程控制块是进程存在的标志,它记录了进程执行时的变化情况。

9、简述中断事件的类型。

中断事件大致可分两大类:强迫性中断事件和自愿性中断事件。前者包括硬件故障中断、程序性中断、外部中断和输入输出中断等;后者是由使用访管指令请求系统服务而引起的。

10.中断装置如何判别发生自愿性中断还是强迫性中断?

处理器执行指令时,根据操作码是否是访管指令,来确定是否有自愿性中断事件发生。若有,则通知中断装置;对于强迫性中断,中断装置只要检查中断寄存器的内容,若非"0",,表示有中断事件发生。

11.中断事件的处理应做哪几件事?

中断处理程序主要做三项工作:①保护被中断进程的现场信息。②分析中断原因。 ③处理发生的中断事件。

12.什么叫交换PSW?

Psw为程序状态字的简写。当中断装置发现中断事件后,把出现的中断事件放在当前Psw的中断码位置。供处理时分析用;把"当前Psw"保存到"旧PSw"中去;再把操作系统中断处理程序的"新Psw"送到程序状态寄存器中成为"当前Psw",这一过程就是"交换PSw"。

13.进程优先数可以固定也可动态变化,说说动态变化的考虑因素。

优先数随进程执行而动态变化可考虑以下因素:提高经常使用外围设备进程的优先数,有利于利用处理器与外围设备的并行能力;提高在较长时间内未使用处理器的就绪进程的优先数,以缩短等待处理器的平均时间。

14.中断系统有何作用?

中断系统在实现进程并发执行,维护系统正常工作,进行故障处理及满足定时要求等方面起着重要的作用。

15.进程调度有何功能?有哪些常用的调度算法?

进程调度就是按选定的进程调度算法,从就绪队列中选择一个进程,让它占用处理器。常用的进程调度算法有先来先服务、优先数、时间片轮转和分级调度算法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Shining0596

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值