您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 企业文档 > 自考《02326操作系统2007》笔记3-20170511
第三章处理器管理多道程序设计(P35~39):进程概述(P39~42):进程队列(P42~45):UNIX系统中的进程(P46~57):中断技术(P58~63):★★UNIX系统的中断技术(P63~66):处理器调度(P66~77):★原创作者:雷神3.1多道程序设计定义让多个计算机问题同时装入一个计算机系统的主存储器并行执行,这种程序设计技术称为多道程序设计,这种计算机系统称为多道程序设计系统,或者称为多道系统引入原因(也是具体表现):①提高处理器的利用率②充分利用外设资源③发窘处理器与外设、外设之间的并行执行能力@@@@@@@@@@采用多道程序设计技术应注意以下三方面的问题(1)存储保护:保持各个程序互不侵犯。(2)程序浮动:程序被移动后,仍丝毫不影响它的执行。(3)资源的分配和调度:对各类资源按一定的策略进行分配和调度。采用多道程序设计应注意的2个问题(1)可能延长程序执行时间任何一个需要实时处理的计算问题,是不允许延长计算时间的。(2)并行工作道数与系统效率不成正比并行工作道数要根据系统配置的资源和用户对资源的要求而定。体现在:首先,主存空间的大小限制了可同时装入的程序数量。其次,外设的数量也是一个制约条件。第三,多个程序同时要求使用同一资源的情况也会经常发生。3.2进程概述3.2.1进程的定义3.2.2为什么要引入进程定义把一个程序在一个数据集上的一次执行称为一个进程(Process)。程序是静态的文本,进程是动态的过程。进程包括程序和程序处理的对象,进程实现了程序的功能。为什么要引进进程(从变化的角度动态分析和研究程序的执行)1.提高资源的利用率2.正确描述程序的执行情况通常把进程分为系统进程和用户进程两大类。把完成操作系统功能的进程称为系统进程,完成客户功能的进程称为用户进程在多道系统中,程序的执行实际上是“走走停停”的。@@@@@@@@@@@@@3.2.3进程属性1.进程的动态性:它包含数据和运行在数据集上的程序2.多个不同的进程可以包含相同的程序3.进程可以并发执行4.进程有三种基本状态●等待态——等待某一事件,也叫阻塞态●就绪态——等待系统分配处理器以便运行●运行态——正在占用处理器运行运行态就绪态等待态等待某一事件等待的事件发生选中落选三种状态转换:(1)运行态→等待态(2)等待态→就绪态(3)运行态→就绪态(4)就绪态→运行态根据上述四个基本属性可概括出进出具有如下三个特性:动态性、并发性、异步性简要说明:正确理解多个不同的进程可以包含相同的程序:•进程与程序并非是一一对应的。同一个程序运行在不同的数据集上就构成不同的进程,能得到不同的结果。•一个能被多个用户同时调用的程序(也叫可再入程序)在执行中,自身不能改变。否则就不能同时为多个用户服务。•可再入程序必须是纯代码的。编译程序和操作系统程序都是可再入程序,能同时被不同用户滴啊用而构成不同的进程。正确理解进程可以并发执行:同时执行的进程轮流占用处理器,其实是异步的。动态性:进程是程序的一次执行过程,过程中进程状态不断发生变化。并发性:若干进程是可同时执行的,轮流占用处理器交替运行。异步性:进程的执行速度取决于自身与外界原因以及能占用处理器的时间,以不可预知的速度向前推进。3.3进程队列进程名进程数据存放位置进程程序存放位置等待原因进程状态控制寄存器内容通用寄存器内容程序状态字寄存器内容进程优先级队列指针标识信息说明信息现场信息管理信息3.3.1进程控制块为了标识进程,记录各个进程执行时的情况,操作系统在创建进程时为每个进程设置一个进程控制块(PCB)。进程控制块包含四类信息:1.标识信息2.说明信息3.现场信息4.管理信息@@@@@@@@@@@@简要说明:1.标识信息•每个进程都有一个唯一的标识符,用以标识进程的存在和区分各个进程。标识符可以用字符和编号表示。2.说明信息•用于说明本进程的情况,其中“进程状态”是指进程的当前状态(运行态/就绪态/等待态)。若是等待态,则进一步说明具体的等待原因。•“进程程序存放位置”指出该进程的程序存放在哪里。“进程数据存放位置”指出进程执行时的工作区,用来存放被处理的数据集和处理结果。3.现场信息•便于进程再一次占用处理器运行时恢复现场。•通常被保留的现场信息有通用寄存器内容、控制寄存器内容、记录有关系统状态和进程中断时断点的程序状态字寄存器等。4.管理信息•是对进程进行管理和调度的信息。•通常用“进程优先级”指出进程可以占用处理器的先后次序。“队列指针”指出处于同一状态的另一个进程的PCB地址,这样就可以把具有相同状态的进程链接起来,便于对进程实施管理。@@@@@@@@@@@3.3.2进程的创建和撤销1.进程的创建当系统为一个程序分配一个工作区(存放程序处理的数据集)和建立一个进程控制块后就创建了一个进程。一个刚被创建的进程,它的初始态为就绪态。进程是一种动态实体,是有生命期的,即从创建到消亡,无法作为软件资料长期保存2.进程的撤销当一个进程完成了特定的任务后,系统收回这个进程所占的工作区和取消该进程的进程控制块,就撤销了该进程。操作系统中往往设计一些能完成特定功能且不可中断的过程。我们把这些不可中断的过程称为原语用于控制进程的原语:创建原语、撤销原语、阻塞原语、唤醒原语。@@@@@@@@@@@@@@@@@简要说明:创建原语:为一个程序分配一个工作区和建立一个PCB,并置该进程初始态为就绪态。撤销原语:一个进程完成工作后,收回它的工作区和PCB。阻塞原语:进程运行过程中发生等待事件时,置为等待态。唤醒原语:当进程等待的事件发生时,置为就绪态。。@@@@@@@@@@@@3.3.3进程队列的链接3.4UNIX系统中的进程UNIX不区分系统进程和用户进程。UNIX中的进程既可执行系统程序,又可执行用户程序,按照需要进行转换。UNIX中的进程在核心态或用户态执行时分别拥有不同的权力。详情翻阅P46~57@@@@@@@@@@@@@@UNIX中的每一个进程由三部分组成:进程控制块、正文段和数据段。UNIX进程的状态:1.运行状态2.就绪状态3.睡眠状态4.创建状态5.僵死状态用户态运行c核心态运行c僵死c在主存就绪c就绪且换出c在主存睡眠c睡眠且换出c创建c调度(被抢先者)fork终止调度睡眠被抢先唤醒唤醒主存充足主存不够换出换出换进系统调用中断返回@@@@@@@@@@@@@进程的创建由fork创建的子进程实际是其父进程的一个映像,除了进程的状态、标识与时间有关的控制项外,全部复制父进程的proc、user、栈和数据区。进程的终止换进换出:执行sched程序。标志runout和runin是交换进程的睡眠标志。睡眠和唤醒:forkwaitexecexitshell进程shell进程父进程命令执行子进程子进程终止3.5中断技术中断是实现多道程序设计操作系统的前提。没有中断技术,操作系统无法改变CPU的状态(管态-目态之间的互换)定义一个进程占有处理器运行时,由于自身或外界的原因(出现了事件)使运行被打断,让操作系统处理所出现的事件,到适当的时候再让被打断的进程继续运行。我们称这个进程在运行中被中断了,引起中断的事件称为中断源,对出现的事件进行处理的程序称为中断处理程序。3.5.1中断和中断类型中断事件分类:1.强迫性中断事件(非期待事件,随机发生,断点在任意位置)⑴硬件故障中断,如主存读写时发生校验错;⑵程序性中断事件,如使用了非法操作码;地址越界;⑶外部中断事件,如设备的定时时钟的时间已到;⑷输入/输出中断事件,如外设完成了一次信息传输操作;2.自愿性中断事件(也称访管中断;期待事件,断点位置确定)如用户请求启动外设工作;请求系统分配主存空间;3.5.2中断响应通常,处理器每执行完一条指令后,硬件的中断装置立即检查有无中断事件发生。若有中断事件发生,则暂停现行进程的执行,而让操作系统的中断处理程序占用处理器。这一过程称为中断响应。中断装置完成中断响应的三个内容:1.中断字寄存器记录强迫性中断事件的寄存器。中断寄存器的内容为中断字。2.程序状态字和程序状态字寄存器程序状态字(PSW,ProgramStatusWord)是用来控制指令执行顺序并且保留和指示与程序有关的系统状态。3.中断响应硬件故障事件程序性中断外部事件输入/输出事件访管中断事件硬件故障事件程序性中断外部事件输入/输出事件访管中断事件当前PSW①②③旧PSW新PSW@@@@@@@@@@@@简要说明:1.中断字寄存器处理器执行指令时,分析指令的操作码。若是访管指令,则直接立即通知中断装置有访管中断事件发生。然而,由于强迫性中断是在指令执行过程中识别到的或由随机外部事件引起的,中断装置怎样知道是否有强迫性中断事件发生呢?为此,硬件设置了中断字寄存器。对每一种强迫性中断事件都可设置一个中断字寄存器,分别对应硬件故障中断、程序性中断、外部中断,IO中断。中断字寄存器的每一位表示一个具体的中断事件。初始化时将其清“0”。注意当发生IO中断事件时,也将产生中断的“通道号及设备号”存入中断字寄存器中,以便系统识别哪个设备发生了IO中断事件。这样,中断装置需检查中断字寄存器方才知道是否有强迫性中断事件发生。@@@@@@@@@@@2.程序状态字和程序状态字寄存器当中断事件发生后,被中断的进程有哪些信息需要保护,怎样保护,又怎样让中断处理程序占用处理器呢?为此,硬件设置了程序状态字寄存器。程序状态字包含如下三部分内容:(1)程序基本状态①指令地址,指出下一条指令的存放地址;②条件码,指出指令执行结果的特征;③目态/管态,指出可否使用特权指令;④等待/计算,指出是否顺序执行下一条指令;@@@@@@@@@@@@(2)中断码保存程序执行时当前发生的中断事件。即中断字寄存器的内容(非0)传送到中断码位置进行保存。(3)中断屏蔽码指出程序执行中发生中断事件时,要不要响应出现的中断事件。例如,程序状态字的格式可以为,@@@@@@@@@@每个进程都要有一个程序状态字来刻画本进程中程序的执行状态。显然,在系统进程的PSW中目态/管态应设置为管态,而在用户进程的PSW中目态/管态应设置为目态。存放当前运行进程的PSW的寄存器称为程序状态字寄存器。处理器总是按程序状态字寄存器中的指令地址和设置的其他状态来控制程序的执行。一个进程被选中运行时,必须把该进程的PSW送入到程序状态字寄存器中,使得处理器控制该进程的程序执行。进程暂时让出处理器时,必须保存好它的PSW,一旦它被继续执行时,又可把它的PSW送入到程序状态字寄存器中。@@@@@@@@@@@@@@3.中断响应由于处理器总是按程序状态字寄存器中的指令地址和设置的其他状态来控制程序的执行,所以,哪个进程的PSW在程序状态字寄存器中,处理器就一定按该进程的PSW的指示执行指令。中断装置通过“交换PSW”完成中断响应。为了说明中断响应过程,必须区分三种PSW:①当前PSW:当前正在占用处理器的进程的PSW。②新PSW:出现中断事件后,占用处理器处理中断事件的中断处理程序的PSW,其中存放着中断处理程序的入口地址。③旧PSW:中断处理程序占用处理器之前,被中断进程的PSW。保护好旧PSW,以便该进程在适当时候按被中断时的情况继续执行。@@@@@@@@@@@@@@@@@@@@3.5.3中断事件的处理1.保护被中断进程的现场信息:保存到该进程的PCB中。2.分析中断原因:取出旧PSW的中断码,分析该中断的具体原因。3.处理发生的中断事件:处理原则大致如P62所述,有兴趣可翻阅。3.5.4中断优先级和中断屏蔽一般来说,中断装置是按预定的顺序响应同时出现的中断事件。这个预定的顺序称为中断优先级。即只是中断装置响应中断的次序。中断优先级是按中断事件的重要性和紧迫程度来确定的,是在硬件设计时固定的。一般情况,优先级的高低顺序依次为硬件故障中断、自愿中断、程序性中断、外部中断、输入/输出中断。@@@@@@@
本文标题:自考《02326操作系统2007》笔记3-20170511
链接地址:https://www.777doc.com/doc-1354768 .html