您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 自考操作系统原理 第三章 处理器管理
处理器管理什么是多道程序设计让多个计算问题同时装入一个计算机系统的主存储器并行执行,这种程序设计技术称为多道程序设计。这种计算机系统称为多道程序设计系统,简称为多道系统。采用多道程序设计技术要注意下面三方面问题:存储保护:保证各道程序互不侵犯程序浮动:程序放在主存的任意区域都能正确执行,甚至在执行过程中改变存储区都不受影响,这种技术称为程序浮动。资源的分配和调度:竞争处理器、外围设备为什么要采用多道程序设计程序的顺序执行假设一个程序由输入、处理、输出组成,分别用时t0,t1,t2输入处理打印t0t1t2t0t1t2111222为什么要采用多道程序设计程序的并行执行现代计算机中的硬件使得处理机与外设具备了并行工作的能力。输入处理打印t0t1t2111222为什么要采用多道程序设计采用多道程序设计技术后,能提高整个系统的效率,具体表现为:提高了处理机利用率,从而提高单位时间的算题量充分利用外设资源发挥了处理器和外围设备以及外围设备之间的并行工作能力提高资源的利用率,增加了单位时间内的算题量,从而提高了吞吐量采用多道程序设计应注意的问题可能延长程序执行时间两道计算问题A和BA:计算50ms,打印100ms,计算50ms,打印100msB:计算50ms,输入80ms,计算100ms,打印100ms如果两道程序分别单独执行(顺序)A执行总共需要300ms,占用处理机100msB执行总共需要330ms,占用处理机150ms处理机的利用率为(100+150)/(300+330)=250/630=39.7%采用多道程序设计应注意的问题两道计算问题A和BA:计算50ms,打印100ms,计算50ms,打印100msB:计算50ms,输入80ms,计算100ms,打印100ms输入处理打印050150300400100180ABAB200AABB处理机的利用率为(100+150)/400=250/400=62.5%A总共花费300msB总共花费350ms,比单道时多花20ms采用多道程序设计应注意的问题并行道数和系统效率不成正比首先,主存空间限制同时装入的程序数量其次,外设的数量也是制约条件第三,多个程序同时要求同一资源多道程序能提高资源使用效率,增加单位时间的算题量,但对于单个问题来说,从算题开始到全部完成计算的时候可能要延长。确定并行道数时,应综合考虑系统的资源配置和用户对资源的需求。进程的定义程序是具有独立功能的一组指令或一组语句的集合,或者说是指出处理器执行操作的步骤。程序的执行必须依赖于一个实体---数据集。把一个程序在一个数据集上的一次执行称为一个进程。程序是静态的文本,进程是动态的过程,进程包括程序和程序处理的对象(数据集)。为什么要引入进程提高资源的利用率把一个计算问题分成n个独立执行的程序模块,例如输入进程、打印进程、处理进程,进程间可以并行工作,提高系统的利用率正确描述程序的执行情况假设有编译程序P,将c语言的源文件编译为目标文件,使用P编译a.c和b.c,两个并行编译a.c编译b.ct0t1第1条指令第n条指令,暂停第1条指令如何描述t1时刻P程序的状态呢?正在等待I/O操作完成?还是开始编译b.c?引入进程后,P为a.c服务时的进程称为Pa,P为b.c服务时的进程称为Pb。Pa的状态是等待I/O,Pb的状态是开始执行为什么要引入进程在操作系统中,尤其是采用了多道程序设计的系统中,引入进程是非常重要的。通常把进程分成系统进程和用户进程两大类。把完成操作系统功能的进程称为系统进程,完成用户功能的进程称为用户进程。进程的属性动态性多个不同的进程可以包含相同的程序把一个能被多个用户同时调用的程序称为可再入的程序。可再入程序必须是纯代码的,在执行中自身不变。一个可再入的程序要求调用者提供工作区,以保证程序以同样的方式为各用户服务。编译程序和操作系统都是可再入的程序。进程可以并发执行可重入代码(Reentrycode),也叫纯代码(Purecode)是一种允许多个进程同时访问的代码可重入就是,一个函数没有执行完成,由于外部因素或内部调用,又一次进入该函数执行。可重入代码,必须保证资源的互不影响的使用,比如全局变量,系统资源等。可重入最简单的理解就是任何变量都是局部变量。可重入指函数在运行过程中,被中断打断后,待返回时仍然能够正常运行。这就需要在编写代码时注意全局变量和公用资源的使用进程的基本状态进程有三种基本调度状态就绪状态(ready):进程已获得除处理机外的所需资源,只要分配处理器就可执行。运行状态(running):进程已获得处理机,正在执行。等待/阻塞状态(blocking):进程在运行过程中,因等待某一事件(如等待某一输入输出操作完成)而暂停的状态称为阻塞状态,运行等待就绪选中落选等待某一事件等待的时间发生进程的三个特性动态性:执行过程中状态不断发生变化并发性:进程可同时执行,轮流占用处理器异步性:执行速度不可预知进程控制块为了标识进程,记录各个进程执行时的情况,操作系统在创建进程时为每个进程设置一个进程控制块(ProcessControlBlock,简称PCB)。不同的操作系统,进程控制块记录信息的内容与数量是不相同的。一般情况下,进程控制块应包含四类信息进程名/编号进程状态等待原因进程程序存放位置进程数据存放位置通用寄存器内容程序状态字寄器内容控制寄存器内容进程优先级队列指针标识信息说明信息现场信息管理信息进程的创建和撤销每个进程都有生命周期,即从创建到消亡。进程的创建当系统为一个程序分配了一个工作区和建立了一个进程控制块后就创建了一个进程。进程控制块是进程存在的标识,一个刚被创建的进程其初始状态是就绪态。进程的创建和撤销进程的撤销当一个进程完成了特定任务后,系统收回这个进程所占的工作区和取消其进程控制块,就撤销了该进程。操作系统中往往设计一些能完成特定功能且不可中断的过程,这些不可中断的过程称为原语。用于进程控制的原语有:创建原语:为一个程序分配一个工作区和建立一个进程控制块,并设置该进程为就绪状态。撤销原语:一个进程完成工作后,收回它的工作区和进程控制块阻塞原语:进程运行过程中发生等待事件,把进程改为等待态唤醒原语:当进程等待的事件发生时,把进程的状态改为就绪态进程队列的链接为了便于管理,经常把处于相同状态的进程链接在一起,称为进程队列。进程队列可以用进程控制块的链接来形成,同一进程队列中,通过进程控制块中的队列指针联系起来。链接方式有两种:单向链接和双向链接。进程队列的链接PCBAPCBBPCBC进程A进程B进程C队首指针0单向链接PCBAPCBBPCBC进程A进程B进程C队首指针0双向链接0向后指针向前指针进程队列的链接一个刚被创建的进程,初始状态为“就绪态”,置于就绪队列中。如果一个进程被选中占用处理机,就从就绪队列中退出转换为“运行态”。运行过程中可能因为等待I/O传输,进入等待队列。IO传输结束,进程又退出等待队列进入就绪队列。一个进程从所在队列中退出称为出队,进入指定的队列中称为入队,系统负责进程入队和出队的工作称为队列管理。出队过程-队首进程出队PCBAPCBBPCBC进程A进程B进程C队首指针00PCBBPCBC进程B进程C队首指针001、把A进程的后续进程B的向前指针改为02、把A进程的向后指针(PCBB地址)送人队首指针单元出队过程-非队首非队尾进程出队PCBAPCBBPCBC进程A进程B进程C队首指针001、把B进程的向后指针送入A进程的向后指针。2、把B进程的向前指针送入C进程的向前指针。PCBAPCBC进程A进程C队首指针00出队过程-队尾进程出队PCBAPCBBPCBC进程A进程B进程C队首指针001、把B进程的向后指针改为02、把C进程的向前指针送入队首指针。PCBAPCBB进程A进程B队首指针00UNIX系统中的进程UNIX不区分系统进程和用户进程,UNIX的进程既可以执行用户程序,又可以执行用户程序。UNIX的进程在执行用户程序时在用户态执行,执行操作系统程序时在核心态执行。UNIX进程的组成UNIX的进程由三部分组成进程控制块正文段:可供多个进程共享的程序数据段:进程执行时的非共享程序和程序执行时用到的数据UNIX的进程控制块为了节省进程控制块所占的主存空间,UNIX把每个进程控制块分成两部分进程基本控制块:常驻主存,记录了进程调度时必须使用的一些信息,进程基本控制块的数据结构称为proc结构进程扩充控制块:非常驻主存,进程不占用处理器时,不会对这部分内容进行查询。这部分内容被存放在磁盘上(称为“对换区”的存储区域),它随着用户程序和数据装入或调出主存,它的数据结构称为user结构。进程基本控制块进程基本控制块proc结构的主要信息:标识信息:包括用户标识和进程标识进程非常驻主存部分的信息:通过这些信息可以找到进程的非常驻部分有关进程调度的信息:状态、标志、优先级其他信息进程扩充控制块进程控制块的信息标识现场保护主存管理文件读写系统调用进程控制与管理每个进程都有一个专用的user区,存放进程扩充控制块。仅当占用处理器的进程核心态运行时才能访问自己的user区。正文段在UNIX中把可供多个进程共享的程序称为进程的正文段。正文段是可再入程序,它由不可被修改的程序和常数组成。为了管理可共享的正文段,UNIX设置了一张正文表text。X_caddrX_iptrp_addrp_textpproc[]p_spt磁盘文件fileinodetext[]X_count请求正文段正文段主存页表数据段进程执行时的非共享程序和程序执行时用到的数据。UNIX的数据段划分为三部分用户栈区:进程在用户态的工作区用户数据区系统工作区核心栈:进程在核心态的工作区user区:存放进程扩充控制块UNIX进程状态UNIX系统中,进程按状态链入进程队列中,同一队列中的进程用进程基本块中的p_link链接在一起。在UNIX系统中,进程有如下几种状态:运行状态进程正占据处理器运行,当进程执行用户程序时在用户态运行;发生中断或者请求系统调用时就要执行系统程序,而转入核心态运行。就绪状态占用处理器一段时间,被剥夺处理器,该进程便处于就绪态。该进程可能被保留在主存中,也有可能被换出到磁盘”对换区“中。睡眠后被唤醒,处于就绪态UNIX进程状态睡眠状态为了等待某事件让出处理机便进入睡眠状态,进程睡眠时可能驻留在内存,也有可能被换到磁盘”对换区“中。创建状态使用系统调用fork创建进程,创建过程中,处于变迁阶段的状态称为创建状态,创建状态是进程的初始态,最终会变为就绪态。僵死状态进程消亡前的暂时状态,进程可以调用exit终止自己,进程终止时变处于僵死状态,它是进程的最后状态,不会发生转换。回收资源时,进程就消亡。UNIX进程树系统启动后,首先把UNIX的核心程序装入主存。核心程序完成自身初始化工作后,创建系统的第一个进程-0号进程。0号进程始终在核心态运行,功能是进程进程调度和让进程在主存与磁盘上进行交换,故也称0号进程为交换进程。0号进程创建1号进程,1号进程被称为初始化进程。1号进程在用户态运行。1号进程为每个用户创建一个login进程,分别处理各用户的登录过程。若用户注册登录成功,login进程为用户创建shell进程。UNIX的进程树被创建的进程称为创建者的子进程。0号进程和1号进程是进程簇的老祖宗,系统运行期永不消亡。Shell进程是每个终端用户服务的进程的祖先。进程的创建在UNIX中,除了0号和1号进程,其他进程总是使用系统调用fork来创建进程,形成父子关系。父进程和子进程可以并发执行,子进程可以共享父进程的正文段和已打开的文件。由fork创建的子进程是其父进程的一个映像,除了进程的状态、标识、与时间有关的控制项以外,全部复制父进程的proc、user、
本文标题:自考操作系统原理 第三章 处理器管理
链接地址:https://www.777doc.com/doc-4071620 .html