收藏 分销(赏)

处理器管理912.pptx

上传人:人****来 文档编号:4379526 上传时间:2024-09-14 格式:PPTX 页数:115 大小:1.05MB 下载积分:20 金币
下载 相关 举报
处理器管理912.pptx_第1页
第1页 / 共115页
处理器管理912.pptx_第2页
第2页 / 共115页


点击查看更多>>
资源描述
第2章 处理器管理 主讲:周文强 课程:操作系统本章内容:2.1 处理器管理概述2.2 进程的描述2.3 进程控制2.1 处理器管理概述在计算机系统中,处理器是最重要的硬件资源,也是最紧俏的资源。因此,对处理器管理的好坏,将直接影响到计算机的整体性能。处理器管理的主要任务是对处理器进行分配,并对其运行进行有效的控制和管理。2.1.1 处理器管理的功能 在现代操作系统中,处理器的分配和运行都是以进程为基本单位的,因而对处理器的管理也可以视为对进程的管理。1、进程控制 在并发运行环境中,要使程序运行,必须先为它创建一个或几个进程,并给它分配必要的资源。程序运行结束时,要撤销这些进程,并回收这些进程所占用的各类资源。进程控制的主要任务就是为程序创建进程,撤销已结束的进程,以及控制进程在运行过程中的状态转换。2、进程同步 在并发环境中,进程是以异步方式工作的,并且以不可预知的速度向前推进。为了使多个进程能有条不紊地运行,系统中必须设置进程同步机制。进程同步的主要任务是对众多的进程运行进行协调。协调方式有两种:1)进程互斥方式 2)进程同步方式 1)进程互斥方式 进程在对临界资源访问时,应采用互斥方式,也就是当一个进程访问临界资源时,另一个要访问该临界资源的进程必须等待;当获取临界资源的进程释放临界资源后,其他进程才能获取临界资源。这种进程之间的相互制约关系称为互斥。临界资源是指一次只能被一个进程使用的资源。互斥可以简单的理解为:有你就没有我,有我就没有你2)进程同步方式 相互合作的进程,由同步机构对它们的执行次序加以协调。当前一个进程结束,后一个进程才能开始;前一个进程没有结束,后一个进程就不能开始。这种进程之间的相互合作关系称为同步,同步可以简单理解为:有你才有我,没你就没有我同步进程举例同步进程举例-病人就诊病人就诊门诊医生:开化验单;等化验结果;继续诊病;化验员:等化验单;化验;填写化验结果;继续化验 等待等待唤醒后唤醒后3、进程通信 在系统中,经常会用多个进程需要相互配合去完成一个共同的任务,而在这些进程之间,往往需要相互交换信息。进程通信的任务就是用来实现相互合作进程之间的信息交换。4、处理器调度 等待在后备队列上的作业,通过要经过处理器调度才能执行。处理器调度包括作业调度、进程调度和中级调度。进程调度被认为是低级调度,它决定哪个进程可以获得处理器。进程调度的基本任务是从后备队列中按照一定的算法,选择出若干个作业,为它们分配必要的资源,将它们调入主存,然后为它们建立进程,使之成为可能获取处理器的就绪进程,并按照一定算法将其插入到就绪队列。2.1.2 程序执行 程序执行是指程序在计算机中的运行过程。程序的执行可以用前趋图表示,程序的执行方式有顺序执行和并发执行。1、前趋图(Precedence GraphPrecedence Graph)前趋图是一个前趋图是一个有向无循环图有向无循环图,记为,记为DAGDAG(Directed Directed Acyclic GraphAcyclic Graph),用于描述进程之间执行的前后关用于描述进程之间执行的前后关系。系。1 1、每个结点可用于表示一条语句、一个程序等;、每个结点可用于表示一条语句、一个程序等;2 2、结点间的有向边用于表示两个结点之间存在前趋、结点间的有向边用于表示两个结点之间存在前趋关系;关系;3 3、前趋关系用、前趋关系用表示;表示;4 4、在前趋图中,没有前驱的结点称为、在前趋图中,没有前驱的结点称为初始结点初始结点,没,没有后续结点称为终止终点;有后续结点称为终止终点;5 5、前驱图中不能存在循环。、前驱图中不能存在循环。前趋图P1C1P1I2C2前趋关系有:前趋关系有:P1-P2,P1-P3,P2-P4,P3-P4,P4-P5P1叫初始结点,叫初始结点,P4叫终止结点叫终止结点 程序是一个在时间上按严格次序前后相继的操作序列,是一程序是一个在时间上按严格次序前后相继的操作序列,是一个静态的概念。一个较大的个静态的概念。一个较大的程序程序通常由通常由若干个操作若干个操作组成。程序在组成。程序在执行时,必须按照执行时,必须按照某种先后次序某种先后次序逐个执行,只有逐个执行,只有当前一个操作当前一个操作执执行完后,才能执行行完后,才能执行后一个操作后一个操作。例如:在进行计算时,总是先输。例如:在进行计算时,总是先输入需要的数据,然后才能进行计算,计算完成后再将结果输出。入需要的数据,然后才能进行计算,计算完成后再将结果输出。用用I I代表输入,代表输入,C C代表计算,代表计算,P P代表打印。代表打印。I1C1P1I2P2C22、程序的顺序执行程序顺序执行时的特征程序顺序执行时的特征 顺序性顺序性:程序顺序执行时,其执行过程可看做一系列程序顺序执行时,其执行过程可看做一系列严格按严格按程序规定程序规定的的状态转移过程状态转移过程,也就是每执行一条指,也就是每执行一条指令,系统就从令,系统就从上一个执行状态上一个执行状态转移到转移到下一个执行状态下一个执行状态,且上一条指令的执行且上一条指令的执行结束结束是下一条指令执行是下一条指令执行开始开始的充分的充分必要条件;必要条件;例如:例如:输入输入计算计算打印打印 的顺序性的顺序性程序顺序执行时的特征程序顺序执行时的特征封闭性:封闭性:程序是在封闭的环境下执行。即程序是在封闭的环境下执行。即程序在运行时程序在运行时独占全部资源独占全部资源,资源的状况,资源的状况只有本程序才能改变它。程序一旦开始执只有本程序才能改变它。程序一旦开始执行,其执行结果不受外界因素影响。行,其执行结果不受外界因素影响。程序顺序执行时的特征程序顺序执行时的特征确定性:确定性:顺序执行的最终结果可再现是说顺序执行的最终结果可再现是说程序执行的结果程序执行的结果与执行速度无关,程序无与执行速度无关,程序无论是从头到尾不停的执行,还是论是从头到尾不停的执行,还是“停停走停停走走走”的执行,都不会影响到最终结果。的执行,都不会影响到最终结果。可再现性:可再现性:只要程序只要程序执行的环境执行的环境和和输入的输入的初始条件初始条件相同,则程序无论重复执行多少相同,则程序无论重复执行多少次,按照何种方式执行,都将获得会相同次,按照何种方式执行,都将获得会相同的结果。的结果。3、程序的并发执行 一个较大的程序包括若干个按照一定次序执行的组成部分。但是,在处理一批程序时,它们之间有时并不存在严格的执行次序,可以并发执行。如程序顺序执行中的示例,虽然在进行计算时,总是先输入需要的数据,然后才能进行计算,计算完成后,再将结果输出。但是,完成第一次输入后,在对第一次输入进行计算的同时,可以进行第二次输入,实现第一次计算与第二次输入的并发执行。程序的并发执行及其特征程序的并发执行及其特征1 1、程序的并发执行、程序的并发执行I1C1P1I2C2P2I3C3P3I4C4P4输入进程是计算进程的前提,计算进程是打印进程的前提。I1c1 p1:顺序执行生产者消费者输入进程计算进程计算进程打印进程 程序的并发执行是指在程序的并发执行是指在一个时间段一个时间段内执行内执行多个程序多个程序。程。程序在并发执行时,虽然提高了系统的吞吐量,但是,也序在并发执行时,虽然提高了系统的吞吐量,但是,也会产生一些与顺序执行时不同的特征。会产生一些与顺序执行时不同的特征。1 1)间断性)间断性:程序在并发执行时,由于它们:程序在并发执行时,由于它们共享系统资源共享系统资源,以及为完成同,以及为完成同一任务而一任务而相互合作相互合作,致使在这些并发执行的程序之间形成了相互制,致使在这些并发执行的程序之间形成了相互制约的关系。从而使得有些程序在执行中出现走走停停的情况,表现约的关系。从而使得有些程序在执行中出现走走停停的情况,表现为为“执行执行暂停执行暂停执行执行执行”的间断性活动规律。的间断性活动规律。程序并发执行时的特征程序并发执行时的特征程序并发执行时的特征程序并发执行时的特征2 2)失去封闭性)失去封闭性:程序并发执行时,由多个程序(进程):程序并发执行时,由多个程序(进程)共享资源共享资源,因,因而对而对资源的状态资源的状态由由多个程序多个程序来改变,致使程序的运行失去了封闭来改变,致使程序的运行失去了封闭性。这样,程序在执行时,必然会受到性。这样,程序在执行时,必然会受到其他程序其他程序的影响。的影响。3 3)不可再现性)不可再现性:由于程序执行时:由于程序执行时失去了封闭性失去了封闭性,也将导致失去可再现,也将导致失去可再现性。即使并发程序执行的环境和初始条件相同,程序多次执行或性。即使并发程序执行的环境和初始条件相同,程序多次执行或以不同的方式执行,可能获得不相同的结果。以不同的方式执行,可能获得不相同的结果。并发执行案例初始条件:程序A和程序B为并发执行,它们共享变量K,假设K初始值为5,程序A执行K=K-1;程序B执行print K;K=K+3。执行条件:程序A和程序B,如果按以下顺序执行,K的执行结果是多少?并发执行案例顺序1 按K=K-1;print K;K=K+3条件执行,K的执行结果是多少?解:K初始值为5 K执行的结果分别是4,5,7并发执行案例顺序2 按print K;K=K-1;K=K+3条件执行,K的执行结果是多少?解:K初始值为5 K执行的结果分别是5,4,7并发执行案例顺序2 按print K;K=K+3;K=K-1条件执行,K的执行结果是多少?解:K初始值为5 K执行的结果分别是5,8,7程序并发执行时的特征程序并发执行时的特征 4)资源共享性。系统中的硬件资源(CPU、内存和I/O设备等)和软件资源(系统程序和数据集等)不再被单个用户或程序独占,而为多个用户或作业共同使用。程序并发执行时的特征程序并发执行时的特征5)程序和计算不再一一对应。程序是指令的有序集合,是静态的概念;计算是指令序列在处理器上执行过程,和处理器按照程序的规定执行操作的过程,是动态的概念。程序并发执行时的特征程序并发执行时的特征程序在顺序执行时,程序与计算间有着一一对应的关系。程序在并发执行时,一个共享程序可为多个用户作业调用,而使该程序处于多个执行中,从而形成了多个计算。这就是说,一个共享程序可对应多个计算。因此,程序与计算已不再一一对应。2.2 进程的描述 在计算机系统中,特别是在多道程序环境下,众多的计算机用户程序并行运行,它们抢占处理器的处理时间,这就存在一个问题,如何正确有效地分配系统的各类资源,才能充分发挥处理器的强大功能?程序的概念已描述不清系统的这种并行情况,反映不了它们的活动规律和状态变化。进程是动态研究操作系统,以进程作为资源分配和独立运行的基本单位。2.2.1 进程的概念 从不同的角度,对进程所作的解释:(1)进程是程序的一次执行。(2)进程是可以和别的计算并发执行的计算。(3)进程是程序在一个数据集合上运行的过程,是系统进行资源分配和调度的独立单位。(4)进程是一个具有一定功能的程序关于某个数据集合的一次运行活动。(5)进程是进程实体的一次活动。进程与程序进程与程序 进程与程序是两个截然不同但又有联系的概念,可从以下四个点来分析:(1)进程是程序的一次执行过程,而程序是一组指令的有序集合。(2)进程具有动态性、并发性、独立性和异步性等,而程序不具有这些特性。(3)进程包含程序、数据和进程控制块PCB。(4)程序多次运行,便可以产生多个进程。进程与程序进程与程序(掌握)掌握)从以上四点可以看出进程与程序的差异:1、程序是静态的概念,而进程是动态的概念。2、程序可以长期保存,而进程是短暂存在的,它动态地产生、变化和消亡。3、程序和相应进程之间,有点像乐谱和相应演奏之间的关系,乐谱可以长期保存,而演奏是个动态的过程。进程特征进程特征 进程具有以下进程具有以下5 5个基本特征:个基本特征:1 1)结构特征:程序段)结构特征:程序段+相关数据段相关数据段+PCB+PCB 2 2)动态性)动态性 :进程是运行的程序。:进程是运行的程序。3 3)并发性)并发性 4 4)独立性)独立性 5 5)异步性)异步性最基最基本的本的两个两个特征特征1 1)结构特征)结构特征 进程实体:进程实体:程序段程序段+相关数据段相关数据段+PCB+PCB 2 2)动态性)动态性 (基本特征)(基本特征)进程是运行的程序。它由创建而产生、由调度而进程是运行的程序。它由创建而产生、由调度而执行,由撤消而消亡。执行,由撤消而消亡。相当于身份证进程特征进程特征进程特征进程特征3 3)并发性)并发性(重要特征)(重要特征)多个进程多个进程在在一段时间一段时间内同时运行,内同时运行,交替交替使使用用处理器处理器的情况。如分时系统中按时间片的情况。如分时系统中按时间片运行。运行。4 4)独立性)独立性 进程实体是一个能进程实体是一个能独立运行独立运行、独立分配资源独立分配资源和和独独立接受调度立接受调度的基本单位。的基本单位。凡未建立凡未建立PCBPCB的程序,都不能作为一个独立的单的程序,都不能作为一个独立的单位参与运行。位参与运行。进程特征进程特征进程特征进程特征5 5)异步性)异步性 系统中的各进程按照系统中的各进程按照各自独立各自独立的、的、不可不可预知的速度预知的速度向前推进,或者说,进程按向前推进,或者说,进程按异异步方式步方式运行。异步性导致执行的不可再现运行。异步性导致执行的不可再现性。故在系统中必须采取相应的措施保证性。故在系统中必须采取相应的措施保证进程之间能够协调运行。(进程之间能够协调运行。(进程同步机制进程同步机制保证进程之间的正确运行)保证进程之间的正确运行)2.2.2 进程的状态及其转换系统中的诸多系统中的诸多进程进程并发运行,并因竞争系并发运行,并因竞争系统而统而相互依赖相互依赖和和相互制约相互制约,因而进程执行,因而进程执行时呈现了时呈现了“运行运行暂停暂停运行运行”的间断性。的间断性。进程执行时的进程执行时的间断性,间断性,可用进程的状态及可用进程的状态及其转态的转换来描述。其转态的转换来描述。进程的进程的并发执行,并发执行,会引起进程之间竞争资会引起进程之间竞争资源和协作,造成进程间断执行,同时引起源和协作,造成进程间断执行,同时引起了进程的状态变化。了进程的状态变化。1.1.进程的进程的3 3种基本状态种基本状态 进程可能由于等待进程可能由于等待I/O操作、竞争资源、以及相互操作、竞争资源、以及相互协作等原因产生了协作等原因产生了“走走停停走走停停”的动态性。的动态性。进程执进程执行时的间断性,决定了进程可能具有多种状态。行时的间断性,决定了进程可能具有多种状态。进程在生存期内至少具有五种基本状态进程在生存期内至少具有五种基本状态:初始:初始、就、就绪、运行、等待、绪、运行、等待、终止终止进程是运行的程序,所以不存在提交状态;进程是运行的程序,所以不存在提交状态;作业运行的环境是批处理系统所以无阻塞状态。作业运行的环境是批处理系统所以无阻塞状态。进程状态进程状态事件发生事件发生如如I/O完成完成运行运行就绪就绪等待事件发生等待事件发生如等待如等待I/O分分时时系系统统时间片到时间片到调度调度等待等待系统态系统态用户态用户态初始初始终止终止再再加加上上初初始始和和终终止止,总共有总共有5 5种基本状态种基本状态初始态初始态 进进程程刚刚被被创创建建时时,没没有有得得到到任任何何资资源源,同同时时其其它它进进程程正正占占有有处处理理机机而而得得不不到到执执行行,只能处于初始状态。只能处于初始状态。操作系统要做如下事情:操作系统要做如下事情:建立建立PCB 建立资源表建立资源表 分配资源分配资源 建立地址空间表建立地址空间表就绪就绪(Ready)(Ready)状态状态 当进程已分配到当进程已分配到除处理器除处理器以外的所有必要资源后,以外的所有必要资源后,只要再获得处理器就可以运行的状态称为只要再获得处理器就可以运行的状态称为就绪状就绪状态态。已经分配到除已经分配到除CPUCPU之外的所有资源,可谓之外的所有资源,可谓“万事万事俱备,只欠俱备,只欠CPUCPU”。就绪队列:在一个系统中处于就绪队列:在一个系统中处于就绪状态就绪状态的的进程可能有多个,通常将它们排成一个队进程可能有多个,通常将它们排成一个队列,称为列,称为就绪队列就绪队列。执行状态执行状态 处于就绪状态的进程获得了包括处于就绪状态的进程获得了包括CPUCPU在内的所在内的所需的全部资源需的全部资源,进程状态处于运行状态。程序,进程状态处于运行状态。程序正在执行。正在执行。单处理机系统中,只有单处理机系统中,只有一个进程一个进程处于执行状态;处于执行状态;多处理机系统中,多处理机系统中,多个进程多个进程处于执行状态处于执行状态等待状态等待状态 正在执行的进程由于发生某事件(正在执行的进程由于发生某事件(等待事件等待事件)而暂时无法继续执行时,便而暂时无法继续执行时,便放弃处理机放弃处理机而处于而处于暂停状态,即进程的执行受到阻塞,把这种暂暂停状态,即进程的执行受到阻塞,把这种暂停状态成为停状态成为等待状态等待状态。通常把处于等待状态的进程通常把处于等待状态的进程排成一个队列,称为排成一个队列,称为等待队列等待队列。终止状态终止状态 进进程程在在执执行行结结束束后后,将将退退出出执执行行而而被被终终止止的状态。的状态。47进程调度进程调度进程调度进程调度时间片满时间片满时间片满时间片满等待某个事件等待某个事件等待某个事件等待某个事件因等待事件发生因等待事件发生因等待事件发生因等待事件发生而唤醒而唤醒而唤醒而唤醒完成完成完成完成2.进程状态的转换进程状态的转换48就绪就绪就绪就绪执行执行执行执行等待等待等待等待进程调度进程调度进程调度进程调度时间片满时间片满时间片满时间片满等待某个事件等待某个事件等待某个事件等待某个事件因等待事件发生因等待事件发生因等待事件发生因等待事件发生而唤醒而唤醒而唤醒而唤醒初始初始初始初始终止终止终止终止完成完成完成完成1.初始初始 就绪就绪49就绪就绪就绪就绪执行执行执行执行等待等待等待等待进程调度进程调度进程调度进程调度时间片满时间片满时间片满时间片满等待某个事件等待某个事件等待某个事件等待某个事件因等待事件发生因等待事件发生因等待事件发生因等待事件发生而唤醒而唤醒而唤醒而唤醒初始初始初始初始终止终止终止终止完成完成完成完成2.就绪就绪 执行执行50就绪就绪就绪就绪执行执行执行执行等待等待等待等待进程调度进程调度进程调度进程调度时间片满时间片满时间片满时间片满等待某个事件等待某个事件等待某个事件等待某个事件因等待事件发生因等待事件发生因等待事件发生因等待事件发生而唤醒而唤醒而唤醒而唤醒初始初始初始初始终止终止终止终止完成完成完成完成3.执行执行 就绪就绪51就绪就绪就绪就绪执行执行执行执行等待等待等待等待进程调度进程调度进程调度进程调度时间片满时间片满时间片满时间片满等待某个事件等待某个事件等待某个事件等待某个事件因等待事件发生因等待事件发生因等待事件发生因等待事件发生而唤醒而唤醒而唤醒而唤醒初始初始初始初始终止终止终止终止完成完成完成完成4.执行执行 等待等待52就绪就绪就绪就绪执行执行执行执行等待等待等待等待进程调度进程调度进程调度进程调度时间片满时间片满时间片满时间片满等待某个事件等待某个事件等待某个事件等待某个事件因等待事件发生因等待事件发生因等待事件发生因等待事件发生而唤醒而唤醒而唤醒而唤醒初始初始初始初始终止终止终止终止完成完成完成完成5.执行执行 终止终止53就绪就绪就绪就绪执行执行执行执行等待等待等待等待进程调度进程调度进程调度进程调度时间片满时间片满时间片满时间片满等待某个事件等待某个事件等待某个事件等待某个事件因等待事件发生因等待事件发生因等待事件发生因等待事件发生而唤醒而唤醒而唤醒而唤醒初始初始初始初始终止终止终止终止完成完成完成完成6.等待等待 就绪就绪进程状态转换进程状态转换v运行状态运行状态等待状态等待状态等待使用资源或某事件发生等待使用资源或某事件发生 ;v初始状态初始状态就绪状态就绪状态进程创建后,得到了除进程创建后,得到了除CPUCPU之外的全部资源;之外的全部资源;v等待状态等待状态就绪状态就绪状态资源得到满足或事件发生资源得到满足或事件发生进程状态转换进程状态转换v运行状态运行状态就绪状态就绪状态运行时间片到;出现有更高优先权进程。运行时间片到;出现有更高优先权进程。v就绪状态就绪状态运行状态运行状态CPUCPU空闲时选择一个就绪进程。空闲时选择一个就绪进程。v执行状态执行状态终止状态终止状态执行结束。执行结束。LinuxLinux下进程状态的转换下进程状态的转换2.2.3 进程的挂起状态1 1、引入挂起状态的原因、引入挂起状态的原因 (1 1)终端用户的请求:修改程序)终端用户的请求:修改程序 (2 2)父进程请求:对子进程的修改等)父进程请求:对子进程的修改等 (3 3)负荷调节的需要)负荷调节的需要 :资源不够用:资源不够用 (4 4)操作系统的需要)操作系统的需要 :检查资源利用情况:检查资源利用情况2 2、引入挂起状态后的进程状态转换、引入挂起状态后的进程状态转换 在引入挂起状态后,又增加了挂起状态(静止状态)到非在引入挂起状态后,又增加了挂起状态(静止状态)到非挂起状态(活动状态)的转换;以及反转换。挂起状态(活动状态)的转换;以及反转换。(1 1)活动就绪)活动就绪静止就绪静止就绪(2 2)活动阻塞)活动阻塞 静止阻塞静止阻塞(3 3)静止就绪)静止就绪活动就绪活动就绪(4 4)静止阻塞)静止阻塞活动阻塞活动阻塞运行状态运行状态静止就绪静止就绪 正在运行的进程正在运行的进程,如果用,如果用挂起原语挂起原语将将该进程挂起后,此时进程就暂停运行,该进程挂起后,此时进程就暂停运行,转变为转变为静止就绪状态静止就绪状态。静止就绪静止就绪活动就绪活动就绪 处于处于静止就绪状态静止就绪状态的进程,若用的进程,若用激活原语激活原语将将该进程激活后,进程状态就由静止就绪状该进程激活后,进程状态就由静止就绪状态变为态变为活动就绪状态活动就绪状态,激活后的进程就可,激活后的进程就可以以被调度被调度运行了。运行了。活动就绪活动就绪静止静止就绪就绪 当进程处于未被挂起的就绪状态时,称之为当进程处于未被挂起的就绪状态时,称之为活动就绪状态活动就绪状态,在用,在用挂起原语挂起原语将该进程挂将该进程挂起后,此时进程就变为起后,此时进程就变为静止就绪状态静止就绪状态。处。处于静止就绪状态的进程,不能再被调度运于静止就绪状态的进程,不能再被调度运行。行。活动等待活动等待静止等待静止等待 当进程处于未被挂起的等待状态是,称当进程处于未被挂起的等待状态是,称之为之为活动等待状态活动等待状态。在用。在用挂起原语挂起原语将将该进程挂起后,此时进程就转变为该进程挂起后,此时进程就转变为静静止等待状态止等待状态。静止等待静止等待活动等待活动等待 处于处于静止等待状态静止等待状态的进程,若用的进程,若用激活激活原语原语将该进程激活,进程状态就由静将该进程激活,进程状态就由静止等待状态变为止等待状态变为活动等待状态活动等待状态。静止等待静止等待静止就绪静止就绪 处于处于静止等待状态静止等待状态的进程,在其所需的进程,在其所需要的资源满足或完成等待的事件后,要的资源满足或完成等待的事件后,就会变为就会变为静止就绪状态静止就绪状态。运行运行挂起原语挂起原语活动活动等待等待静止静止等待等待活动活动就绪就绪静止静止就绪就绪激活原语激活原语挂起原语挂起原语挂起原语挂起原语资源满足或完成等资源满足或完成等待后,释放待后,释放激活原语激活原语释放释放请求请求I/O具有挂起状态的进程状态图具有挂起状态的进程状态图2.3 进程控制(掌握)进程控制的主要任务是为作业程序创建进程,撤销已结束的进程,以及控制进程在运行过程中的状态转换。本节主要介绍进程控制块的作用、组成、组织方式,进程的创建与撤销,进程的等待与唤醒。2.3.1 进程控制块PCB PCB:PCB:为了描述和控制进程的运行,系统为每为了描述和控制进程的运行,系统为每个进程定义了一个数据结构,成为进程控制块。个进程定义了一个数据结构,成为进程控制块。通过通过PCBPCB,使得原来,使得原来不能独立运行不能独立运行的的程序程序(数(数据),成为一个可以据),成为一个可以独立运行独立运行的基本单位,一的基本单位,一个能够个能够并发运行并发运行的的进程进程。1.进程控制块的作用进程控制块进程控制块随着进程的创建而创建随着进程的创建而创建,即创建,即创建一个进程,就是创建一个一个进程,就是创建一个PCBPCB;进程控制块进程控制块随着进程的撤消而撤消随着进程的撤消而撤消,即撤消,即撤消一个进程,就是撤消进程一个进程,就是撤消进程PCBPCB。因此,因此,PCBPCB是进程的存在的惟一标志是进程的存在的惟一标志。2.进程控制块的内容进程控制块主要包括四个方面的信息:进程控制块主要包括四个方面的信息:1、进程标识信息、进程标识信息2、说明信息(进程调度信息)、说明信息(进程调度信息)3、现场信息(处理器状态信息)、现场信息(处理器状态信息)4、管理信息(进程控制信息)、管理信息(进程控制信息)1、进程标识信息、进程标识信息进程标识符进程标识符进程名进程名进程号进程号用户标识用户标识用户名用户名用户号用户号家族联系家族联系父进程父进程子进程子进程3、处理机状态信息(现场信息)、处理机状态信息(现场信息)通用寄存器通用寄存器指令计数器指令计数器程序状态字程序状态字用户栈指针用户栈指针2、进程调度信息(说明信息)、进程调度信息(说明信息)进程状态进程状态进程优先数(级进程优先数(级/权)权)等待原因等待原因调度算法参数等调度算法参数等4、进程控制信息(管理信息)、进程控制信息(管理信息)程序和数据地址程序和数据地址进程同步和通信机制进程同步和通信机制资源清单资源清单链接指针链接指针访问权限访问权限打开的文件打开的文件3.进程控制块的组织方式在一个系统中,通常拥有数十个、数百个在一个系统中,通常拥有数十个、数百个乃至数千个乃至数千个PCB,为了能对它们进行有效,为了能对它们进行有效的管理,就必须通过适当的方式将它们组的管理,就必须通过适当的方式将它们组织起来。织起来。目前,常用的组织方式有目前,常用的组织方式有链接方式链接方式和和索引索引方式方式。1 1)链接方式)链接方式 LinuxLinux采用链接方式采用链接方式 具有同一状态的具有同一状态的PCB PCB,组成,组成PCBPCB队列队列 就绪队列、阻塞队列、空闲队列就绪队列、阻塞队列、空闲队列2 2)索引方式)索引方式 系统根据所有进程的状态建立几张索引表系统根据所有进程的状态建立几张索引表 保存各索引表在内存的首地址记录保存各索引表在内存的首地址记录 在每个索引表的表目中,记录具有相应状态的在每个索引表的表目中,记录具有相应状态的某个某个PCBPCB在在PCBPCB表中的地址。表中的地址。单一队列可能造成队列太长,单一队列可能造成队列太长,以及进程可能处于多个状态,以及进程可能处于多个状态,从而造成效率太低。从而造成效率太低。73PCB1PCB2PCB3PCB4PCB5PCB6PCB7PCBn.空空 PCBPCB运行态运行态就绪态就绪态等待等待1 1等待等待2 26751015进程控制块进程控制块744.进程控制原语原语:原语:是指具有是指具有特定功能特定功能的不可能的不可能被中断被中断的过程。原语是不可再分,要么全做,要的过程。原语是不可再分,要么全做,要么全不做。么全不做。它主要用于实现操作系统的一些专门控制它主要用于实现操作系统的一些专门控制操作。用于进程控制的原语有操作。用于进程控制的原语有创建原语创建原语、撤销原语撤销原语、等待原语等待原语、唤醒原语唤醒原语。进程控制为什么要使用原语?进程控制为什么要使用原语?系系统统在在控控制制进进程程时时,如如进进程程的的创创建建、撤撤销销,进进程程状状态态的的改改变变都都要要调调用用相相应应的的程程序序段段来来完完成成这这些些功功能能,若若不不采采用用原原语语,那那么么这这些些程程序序段段可可并并发发执执行行,这这样样这这些些程程序序段段任任意意执执行行很很可可能能使使其其执执行行结结果果失失去去封封闭闭性性、可可再再现现性性,从从而而达达不不到到进进程程控控制制的的目目的的。因因此此,进进程程控控制制须须用用原原语语实实现现,如如:创创建建原原语语、撤撤销销原原语语、等等待待原原语语、唤醒原语唤醒原语等。等。2.3.2 进程创建1 1、进程图(、进程图(Process GraphProcess Graph)进程图是进程图是用于描述一个进程的家族关系的用于描述一个进程的家族关系的有向树有向树。在进程在进程PiPi创建了进程创建了进程PjPj之后,称之后,称PiPi是是PjPj的的父进程父进程,PjPj是是PiPi的的子进程子进程。子进程可以继承父进程所拥有的所有资源。子进程可以继承父进程所拥有的所有资源。为了标识进程之间的家族关系,在为了标识进程之间的家族关系,在PCBPCB中设置了中设置了家族关系家族关系表项表项,以标明自己的父进程以及所有的子进程。,以标明自己的父进程以及所有的子进程。进程图是反应进程家族关系的有向树。进程图1 1)用户登录:)用户登录:合法用户进程合法用户进程2 2)作业调度:)作业调度:运行作业时,分配资源,创建进程运行作业时,分配资源,创建进程3 3)提供服务:)提供服务:如打印进程如打印进程4 4)应用请求:)应用请求:如输入、计算、打印三进程如输入、计算、打印三进程引起创建进程的事件引起创建进程的事件/创建进程的原因创建进程的原因进程创建的处理过程进程创建的处理过程1 1)引起创建进程的事件发生)引起创建进程的事件发生2 2)调用)调用进程创建原语进程创建原语3 3)创建步骤如下:)创建步骤如下:进程创建步骤:进程创建步骤:父进程父进程(Parent Process)(Parent Process)建建子进程子进程(Child Process)(Child Process)时,时,系统在进程表中增加一项,并从系统在进程表中增加一项,并从PCBPCB池中取一个空白池中取一个空白PCBPCB。为新进程的进程映像分配地址空间。传递环境变量,构造为新进程的进程映像分配地址空间。传递环境变量,构造共享地址空间。共享地址空间。为新进程分配资源,除内存空间外,还有其他各种资源。为新进程分配资源,除内存空间外,还有其他各种资源。查找辅存,找到进程正文段并装到正文区。查找辅存,找到进程正文段并装到正文区。初始化进程控制块,为新进程分配进程标识符,初始化初始化进程控制块,为新进程分配进程标识符,初始化PSWPSW。加入就绪进程队列加入就绪进程队列,将进程投入运行。将进程投入运行。通知操作系统的某些模块,如记账程序、性能监控程序。通知操作系统的某些模块,如记账程序、性能监控程序。功功 能能:创创建建一一个个具具有有指指定定标识符进程标识符进程创创建建方方式式:由由系系统统程程序序模模块块统一创建统一创建 由父进程创建由父进程创建入入口口信信息息:进进程程标标识识符符、优优先先级级、进进程程开开始始地地 址址、初初 始始CPUCPU状状 态态、资资源清单等源清单等2.3.3 进程撤销1 1)正常结束:)正常结束:进程顺利的完成使命后进程顺利的完成使命后终止终止(大多数情况)。(大多数情况)。批处理系统的结束标志:批处理系统的结束标志:HoltHolt指令、撤消的系统调用指令、撤消的系统调用分式系统:分式系统:Logs off Logs off 指令指令1.1.引起进程引起进程撤销撤销的事件的事件2 2)进程异常错误:在进程运行期间,由于出现某种错误和)进程异常错误:在进程运行期间,由于出现某种错误和故障而迫使进程故障而迫使进程终止终止。可能的异常事件:可能的异常事件:1 1)越界错误)越界错误 2 2)保护错)保护错 3 3)非法指令)非法指令 4 4)特权指令错)特权指令错 5 5)运行超时)运行超时 6 6)等待超时)等待超时 7 7)算术运算错)算术运算错 8 8)I/OI/O故障故障 1.1.引起进程引起进程撤销撤销的事件的事件1.1.引起进程引起进程撤销撤销的事件的事件3 3)进程应外界的请求而终止运行)进程应外界的请求而终止运行 指在进程运行的过程中,应外界的请求而指在进程运行的过程中,应外界的请求而终止终止运行。运行。比如调整资源。比如调整资源。可能的干预:可能的干预:1 1)操作员或操作系统干预)操作员或操作系统干预 2 2)父进程请求)父进程请求 3 3)父进程)父进程终止终止2.进程撤销的处理过程 一旦操作系统发现了要求一旦操作系统发现了要求终止进程的事件终止进程的事件后,便后,便调用进程终止原语调用进程终止原语,按照下列步骤终止指定的进,按照下列步骤终止指定的进程。程。根据进程根据进程PIDPID得到进程得到进程PCBPCB得到进程的状态得到进程的状态若进程在执行,停止执行,置调度标志为真。若进程在执行,停止执行,置调度标志为真。终止子进程终止子进程归还资源给父进程或系统归还资源给父进程或系统移出队列移出队列88功功 能能:撤销一指定进程:撤销一指定进程入口信息入口信息:被撤销的进程名:被撤销的进程名撤销条件撤销条件:v已完成所要求的功能而终止已完成所要求的功能而终止v由某种错误导致非正常终止由某种错误导致非正常终止v祖先进程要求撤销某子进程祖先进程要求撤销某子进程2.3.4 进程等待1)请求系统服务 正在运行的进程请求系统提供服务时,例如:申请打印机打印,但是,申请服务资源被另外的进程占有,该进程只能处于等待状态。1.引起进程等待的事件1.引起进程等待的事件2)正在运行的进程启动某种操作后,其后续命令必须在该操作完成后才能运行,所以要先等待该进程。例如:某进程启动键盘输入数据,只有数据输入完成后才能计算,此时,该进程要被等待。1.引起进程等待的事件3)新数据尚未到达 对于相互合作的进程,如果一个进程需要先获得另一个进程提供的数据后才能运行,则只有等待所需要的数据到达才能运行。所以,该进程也要被阻塞。1.引起进程等待的事件4)无新工作可做 系统往往设置一些具有特定功能的系统进程,每当这种进程完成任务后,便把自己阻塞起来等待新任务的到来。例如系统中的发送进程,其主要任务是发送数据,若已有数据发送完成又无新的发送请求,则该进程自我阻塞。2.进程等待的处理过程 一旦操作系统发现了要求等待进程的事件后,便调用进程等待原语,按照下列步骤阻塞指定的进程。1)立即停止执行该进程 2)修改进程控制块中的相关信息。把进程控制块中的运行状态由“运行”改为“等待”状态,并填入等待原因,以及进程的各种状态信息。3)把进程控制块插入到等待队列。根据等待队列的组织方式,把等待进程的进程控制块插入等待队列中。4)转调度程序重新调度,运行就绪队列中的其他进程。功功 能能:停停止止进进程程的的执执行行,变变为等待为等待入口信息入口信息:可省:可省2.3.5 进程唤醒1)请求系统服务得到满足 因请求服务得不到满足的等待队列中的进程,得到相应的服务要求时,处于等待队列中的进程就被唤醒。1.引起进程唤醒的事件1.引起进程唤醒的事件2)启动某种操作完成 处于等待某种操作完成的等待队列中的进程,其等待的操作已经完成,可以执行其后续命令,则必须把它唤醒。1.引起进程唤醒的事件3)新数据已经到达 对于相互合作的进程,如果一个进程需要另一个进程提供的数据已经到达,则把因此而处于等待的进程唤醒。1.引起进程唤醒的事件4)有新工作可做 系统中的具有特定功能的系统进程,接收到新的任务时,就必须唤醒它。2.进程唤醒的过程 一旦操作系统发现了要求唤醒进程的事件后,便调用进程唤醒原语,按照下列步骤唤醒指定的进程。1)从等待队列中找到该进程2)修改该进程控制块中的相关内容,把等待状态改为就绪状态,删除等待原因等。3)把进程控制块插入到就绪队列中。按照就绪队列的组织方式,把被唤醒的
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服