《计算机操作系统》解析课件

PPT
  • 阅读 105 次
  • 下载 0 次
  • 页数 58 页
  • 大小 1.308 MB
  • 2022-12-01 上传
  • 收藏
  • 违规举报
  • © 版权认领
下载文档30.00 元 加入VIP免费下载
此文档由【小橙橙】提供上传,收益归文档提供者,本网站只提供存储服务。若此文档侵犯了您的版权,欢迎进行违规举报版权认领
《计算机操作系统》解析课件
可在后台配置第一页与第二页中间广告代码
《计算机操作系统》解析课件
可在后台配置第二页与第三页中间广告代码
《计算机操作系统》解析课件
可在后台配置第三页与第四页中间广告代码
《计算机操作系统》解析课件
《计算机操作系统》解析课件
还剩10页未读,继续阅读
【这是免费文档,您可以免费阅读】
/ 58
  • 收藏
  • 违规举报
  • © 版权认领
下载文档30.00 元 加入VIP免费下载
文本内容

【文档说明】《计算机操作系统》解析课件.ppt,共(58)页,1.308 MB,由小橙橙上传

转载请保留链接:https://www.ichengzhen.cn/view-76711.html

以下为本文档部分文字说明:

湘潭大学第2章进程的描述与控制•在多道程序批处理系统和分时系统中,程序并不能独立运行。资源分配和独立运行的基本单位是进程。操作系统所具有的四大特征(并发、共享、虚拟、异步)也都是基于进程而形成的,并可从进程的观点来研究操作系统而形成所谓的进程观点。•在

操作系统中,进程是一个极其重要的概念。2.1前趋图和程序执行1.前趋图•前趋图(ProcedenceGraph)是一个有向无循环图DAG(DirectedAcyclicGraph)。用于描述进程之间执行的先后顺序。图中的结点可表示一条语句、一个程序段或进程;结点

间的有向边表示在两结点之间存在的偏序或前趋关系“→”,→={(Pi,Pj)|PimustcompletebeforePjmaystart}。若(Pi,Pj)∈→,则可以写成Pi→Pj,称Pi是Pj的前趋,Pj是Pi的直接后继。没有前趋的结点

称为初始结点,没有后继的结点称为终止结点。•此外,每个结点有一权重(Weight),可用该结点所含的程序量或结点的执行时间来计量。该图的前趋关系为:P1→P2,P1→P3,P1→P4P2→P5,P3→P5,P

4→P6P5→P7,P6→P7其中:P1是初始结点,P7是终止结点。1432657具有一个重量,该重量可用程序量或执行时间来计量。但下例则不是前趋图,因图中存在循环:12342.程序顺序执行•通常一个应用程序都由若干个

程序段组成。每个程序段完成特定功能,程序执行时,必须按照某种先后次序逐个执行,仅当前一个程序段执行完毕后,才能执行后继程序段。•例如:在进行计算时,总是先输入数据后,才能计算,计算完成后再打印结果。用结点代表各程序段的操作,结点I

表输入操作,C表计算操作,P表打印操作。则上述各程序段的执行可用以下前趋图来表示。I1C1P1I2C2P2•对于一个程序段中的多条语句来说,也有一个执行顺序问题。如下述的程序段:S1:a:=x+yS2:b:=a-5S3:c:=

b+1•其中S2必须在a被赋值后才能执行,S3也只能在b被赋值后才能执行。S1S2S3•程序顺序执行时的特征1.顺序性:处理机的操作,严格按照程序所规定的顺序执行,即只有前一个操作结束后,才能执行后继操作。2.封闭性:程序是在封闭的环境下运行的。即程序在运行时,独占全机资源,因而机内各资

源的状态(初试态除外),只有本程序才能改变。程序一旦运行,其执行结果不受外界因素影响。3.可再现性:只要程序执行时的环境和初始条件相同,当程序多次重复执行时,不论是从头到尾不停顿地执行,还是“停停走走”地执行,获得的结果是相同的。3.程序并发执行•对

一批程序进行处理时,可使它们并发执行。设结点Ii表输入程序、Ci表计算程序、Pi表打印程序,则下图描述了程序并发执行时的情况:其中的Ii+1,Ci,Pi-1是重叠的,即它们可并发执行。I1I4I3C1C2C3C4P2P1P3P4I2程序段中语句并发执行:•对于具有下述4条语句的程序段

:S1:a:=x+2S2:b:=y+4S3:c:=a+bS4:d:=c+6•可以看出,S3必须在a和b被赋值后方能执行;S4须在S3之后执行;但S1和S2可以并发执行,因它们彼此互不依赖。S1S2S3S4•程序并发执行时的特征:①间断性:程序在并发执行时,

因它们共享资源或为完成同一任务而相互合作,致使并发程序之间形成了相互制约的关系,这种关系导致并发程序具有执行—暂停执行—执行这种间断性的活动规律。②失去封闭性:程序并发执行时,多个程序共享系统的各种资源,

因而资源的状态将由多个程序来改变,使程序的运行失去了封闭性。③不可再现性:由于失去封闭性,从而导致可再现性的失去。•不可再现性的例子:•设有2个循环程序A和B,它们共享一个变量N。程序A每执行一次时,做都N

:=N+1操作,程序B则每执行一次时,都要执行print(N)操作,然后再将N置0,A和B以不同的速度运行。这样,可能出现三种情况(设某时刻N的值为n)。(1)N:=N+1beforeprint(N)an

dN:=0,sotheNisn+1,n+1,0.(2)N:=N+1afterprint(N)andN:=0,sotheNisn,0,1.(3)N:=N+1betweenprint(N)andN:=0,sotheNisn,n+1,0.•这说明程序并发执行时由于失去了封闭性,从而失去了可再现性,即程序

经过多次执行后,虽然其执行时的环境和初始条件都相同,但得到的结果却各不相同。2.2进程描述•程序并发执行时,产生了一些新特征,致使一般的程序不能并发执行。例如,程序在执行中一旦受阻而停下来,系统无法保留该程序的现场,因而也就无法再恢复该程序的现场以继续执行。•为使程序

在多道程序环境下能并发执行,并能对并发执行的程序加以控制和描述,而专门配置了一个称之为“进程控制块”的数据结构。其中,存放了进程标识符、进程运行的当前状态、程序和数据的地址,以及能保存该程序运行时的CPU的环境信息。由程序段、数据段和

进程控制块三部分构成了一个进程的实体(进程映像)。•一般情况下,进程实体简称为进程。2.2.1进程的定义和特征1.进程的定义•定义:进程是进程实体的运行过程,进程是系统进行资源分配和调度的一个独立单位。或者说进程是可并发执行的程序在一个数据集合上的运行过程。•进程和程序是两个截然不同的概念

,二者之间既着密切的联系,又相互区别。下面分析进程的特征,并与程序作一些对比。•(以动态的观点来理解进程是最基本的。注意区别进程、进程实体、程序这三个概念)2.进程的特征①动态性:动态性表现为:进程由创建而产生,由调度而执行,因得不到资源而暂停执行,以及由撤消而消亡。可见,进程有一定的生命周期。而

程序是一组有序指令的集合,并存放在某种介质上,本身无运动的含义,是一个静态实体。②并发性:指多个进程实体同存于内存中,能在一段时间内同时运行。引入进程的目的正是为了使其程序能和其它进程的程序并发执行,而程序是不能并发执行的。是OS的重

要特征。③独立性:指进程实体是一个能独立运行的基本单位,同时也是系统中独立获得资源和独立调度的基本单位。凡未建立进程的程序,都不能作为一个独立的单位参加运行。④异步性:指进程按各自独立的、不可预知的速度向前推进。这一特征导致了程序执行的不可再

现性。OS必须管制和协调。2.2.2进程的基本状态及转换1、进程的三种基本状态①就绪状态:当进程已分配到除CPU之外的所需资源后,只要再获得处理机,便可立即执行。这时的进程状态称为就绪态。多个进程可同时处于就绪态。②执行状态:指进程已获得处理机,其程序正在执行。③阻塞状态:进程因某事件(如请求

I/O、申请缓冲空间等)的发生而暂停执行时的状态。有时也称为“等待”或“睡眠”状态。处于阻塞态的进程将排入阻塞队列。2.三种基本状态的转换就绪阻塞执行时间片完进程调度I/O完成或事件发生I/O请求或等待某事件3

.创建状态和终止状态•创建状态:进程刚建立,尚未进入就绪队列时的状态。•终止状态:进程已正常或异常结束,已从就绪队列中移出但未撤消时的状态。就绪阻塞执行时间片完进程调度I/O完成或事件发生I/O请求或等待某事件创建终止许可释放2.2.3挂起操作和

进程状态的转换•不少系统中,进程只有上述五种基本状态,而有一些系统,基于某种需要又增加了一些新的进程状态,其中最重要的是挂起状态。所谓挂起状态,是指活动的进程暂时停止活动而处于静止的状态。引入挂起态可能是因下述的需要。①终端用户的需要。②父进程的

需要。③OS的需要。④对换的需要。⑤负荷调节的需要。活动阻塞活动就绪静止就绪静止阻塞执行挂起释放激活挂起请求I/O释放激活挂起调度2.2.4进程管理中的数据结构1.操作系统中用于管理控制的数据结构•对于每个资源和进程都设置一个数据结构,用于表征其实体,

称为资源信息表和进程信息表。内存设备文件进程内存表设备表文件表进程1进程2进程n进程1进程2进程n进程实体及所用资源列表……2.进程控制块(PCB)的作用•PCB是进程实体的一部分,是OS中最重要的记录型数据结构,记录了OS所需的、用于描述进程情况及控制进程运行

所需的全部信息。•PCB的作用是使一个在多道程序环境下不能独立运行的程序,成为一个能独立运行的基本单位,一个能与其他进程并发执行的进程。或者说,OS是根据PCB来对并发执行的进程进行控制和管理的。PCB是进程存在的唯一标志。•

PCB常驻内存,系统将所有的PCB组织成若干个链表(或队列),存放在OS中专门开辟的PCB区内。•PCB的具体作用:①作为独立运行基本单位的标志。②能实现间断性运行方式。③提供进程管理所需要的信息。④提供进程调度所需要的信息。⑤实现与其

他进程的同步与通信。3.进程控制块中的信息①进程标识符:进程的唯一标识,分为两种。(1)外部标识符。由创建者提供,供用户(进程)访问该进程时使用。(2)内部标识符。为方便系统而设置。②处理机状态信息:处理机

在运行时,许多信息都放在寄存器中,当前进程被中断时,这些信息必须保存在被中断进程的PCB中,以便该进程重新执行时,能从断点继续。这组寄存器包括(1)通用寄存器、(2)指令计数器、(3)程序状态字PSW、(4)用户栈指针。③进程调度信息:包括与进程调度和进程对换有关的信息。(1)进程状态。

(2)进程优先级。(3)进程调度所需的其他信息。(4)事件。指进程由执行态转变为阻塞态所等待发生的事件,即阻塞原因。④进程控制信息:(1)程序和数据的地址。(内、外存地址。)(2)进程同步和通信机制。(信号量等)(3)资源清单。(4)链接指针。(下一个进程的PCB首地址)

4.进程控制块的组织方式①线性方式:把系统中所有PCB组织在一张线性表上。②链接方式:把具有相同状态的PCB,用其中的链接字链接成一个队列。PCB14PCB23PCB30PCB48PCB5PCB67PCB79PCB80PCB9…执行指针就绪队列指针阻

塞队列指针空闲队列指针…③索引方式:系统根据所有进程的状态,建立几张索引表。PCB1PCB2PCB3PCB4PCB6PCB5PCB7执行指针就绪表指针阻塞表指针就绪索引表阻塞索引表2.3进程控制1.操作系统内核•现代OS的结构采用层次式结构,通常将

一些与硬件紧密相关的模块诸如中断处理程序等和运行频率较高的模块如时钟管理,进程调度等都安排在紧靠硬件的软件层次中,使他们常驻内存,并加以特殊保护。通常把这一部分模块称为OS内核。•为防止OS和关键数据受到用户程序的破坏,常将处理机的执行状态分为系统态(管态

,内核态)和用户态(目态)。•系统态:具有较高的特权,能执行一切指令,访问所有寄存器和存储区。•用户态:具有较低特权的执行状态,只能执行规定的指令,访问指定寄存器和存储区。•通常,用户程序运行在用户态

,OS内核运行在系统态。进程控制是由OS内核实现的。30OS的层次模型低级处理机管理(进程调度、PV管理)存储管理(分配、释放)高级处理机管理(进程创建、撤消、通讯等)设备管理(I/O调度等)裸机信息管理(建立/撤消文件打开/关闭文件、读/写文件)用户程序内核•OS内核包含

如下功能。①支撑功能:是提供给OS其他许多模块所需的一些基本功能,以支持这些模块工作。介绍三种最基本的支撑功能:1、中断处理。通常,内核只对中断进行“有限的处理”然后便转有关进程继续处理。2、时钟管理。OS的

许多活动都依赖于时钟。3、原语操作。内核对某些操作的执行,采用原语实现。原语操作不可分割。②资源管理功能1、进程管理。管理进程的功能模块的运行频率高。2、存储器管理。管理存储器功能模块运行频率高。3、设备管理。与硬件密切相关。2.进程的创建•(1)进程的层次结构•子进程由父进程创

建,子进程可以继承父进程所拥有的资源。子进程被撤消时,应归还从父进程处获得的资源。撤消父进程时,也同时撤消其所有子进程。在PCB中都设有家族关系表项,以标明自己的父进程和所有的子进程。•UNIX按分层

来组织进程,WINDOWS没有进程层次结构的概念,使用句柄实现进程控制。•(2)进程图(ProcessGraph)•进程图是用于描述进程家族关系的有向树。•(3)引起创建进程的事件•为使程序能运行就必须为它创建进程。导致一个进程创建另一个进程的典型事件有以下四类。1、用户登

录(在分时系统中)。2、作业调度(在批处理系统中)。3、提供服务。当运行中的用户提出某种服务请求后,系统将专门创建一个进程来提供服务。4、应用请求。该类事件是基于应用进程的需要,由它自己创建一个新进程,以便使新进程以并发方式完成特定任务。•(4)进程的创建(Creati

onofProcess)•当OS发现要求创建新进程的事件后,便调用进程创建原语Creat()创建一新进程。其过程如下:1、申请空白PCB。2、为新进程分配资源。3、初始化PCB。4、将新进程插入就绪队列。3.进程的终止•(1)引起进程终止(Terminatio

nofProcess)的事件1、正常结束2、异常结束3、外界干预•操作员或OS干预。•父进程请求。•父进程终止。•(2)进程的终止过程①根据被终止进程的标识符,从PCB读出该进程的状态。②若被终止进程正处于执行态,则立即终止执行,并置重新

调度标志。将处理机分配给一新进程。③若该进程有子孙进程,则一并终止。④将该进程拥有的全部资源,归还其父进程或系统。⑤将被终止进程的PCB从所在队列中移出。4.进程阻塞和唤醒(1)引起进程阻塞和唤醒的事件①向系统请求共享资源失败。②等

待某种操作的完成。③新数据尚未到达。④等待新任务的到达。•(2)进程阻塞过程•进程的阻塞是进程自身的一种主动行为,通过调用阻塞原语block()将自己阻塞。执行态阻塞态阻塞队列PxPxPxPzPy就绪队列调度程序执行态Py阻塞事件•(3)进程唤醒过程•当被阻塞进程所期待的事件出现时,则有

关进程调用唤醒原语wakeup(),将等待该事件的进程唤醒。阻塞队列PxPz将PCB由现行的阻塞态改为就绪态就绪队列PxPxPaPb•值得注意的是,block和wakeup是一对作用刚好相反的原语。必须成对使用。•若在

某进程调用了阻塞原语把自己阻塞,则必须在与之合作的另一个进程或其他相关进程中,调用唤醒原语来唤醒进程,否则,被阻塞进程将会因不能被唤醒而长久地处于阻塞状态,从而再无机会运行。5.进程的挂起与激活(1)进程的挂起过程:当出现引起进

程挂起的事件时,系统将用挂起原语suspend()将指定进程或处于阻塞状态的进程挂起,即由活动状态转为静止状态。(2)进程的激活过程:当发生激活进程的事件时,系统利用激活原语active()将指定进程激活。激活原语将先把进程从外存调入内存并转为活动状态。在采用抢占式调度方式中,若

被激活进程的优先级比当前运行的进程高,则立即剥夺当前进程的运行,把处理机分配给被激活的进程。2.4线程的基本概念•20世纪60年代中期,在设计多道程序OS时引入了进程概念,解决了单处理机环境下程序并发执行的问题。•20世纪80年代中期,提出线程(Threads)概念,改善单处理机环境

下程序并发的程度,在多处理机环境下提高程序并行执行的程度。2.4.1线程的引入1.进程的两个基本属性①进程是一个可拥有资源的独立单位;②进程是一个可以独立调度和分派的基本单位。2.程序并发执行所付出的时空开销①创建进程

时分配资源;②撤销进程时回收资源;③进程切换时要保留或设置CPU环境。•这限制了并发程度的进一步提高。3.线程—作为调度和分派的基本单位•将进程的两个属性分开,即作为调度和分派的基本单位就不作为独立分配资源的单位;而对拥有资源的基本单位,则使之切换不频繁。这样,产生了线程

的概念。•即线程作为调度和分派的基本单位。线程是进程中的一个实体,是被系统独立调度和分派的基本单位。2.4.2线程与进程的比较•线程具有许多传统进程的特征,故又称为轻型进程或进程元,而把传统进程称为重型进程,相当于只有一个线程的任务。在引入线程的OS中,进程都有若干个线程,至少也有一个线程。1.

调度的基本单位•线程是调度和分派的基本单位,而进程是资源拥有的基本单位,因而线程是能独立运行的基本单位。•线程切换的代价远低于进程切换的代价。•在同一进程中,线程的切换不会引起进程的切换,但由一个进程中的线程切换到另一进程中的线程时,将会引起进程切换。2.并发性•进程之间可以并发

执行,一个进程中的多个线程之间,也可以并发执行。3.拥有资源•进程拥有自己的资源。线程本身基本上不拥有系统资源。多个线程可共享同一进程的资源。4.独立性•每个进程拥有一个独立的地址空间和其他资源。同一进程中的不同线程共享进程的地址空间

和资源。5.系统开销•OS为进程所付出的开销要远大于线程。6.支持多处理机系统2.4.3线程的状态和线程控制块1.线程运行的三个状态•执行态:线程已获得处理机正在运行。•就绪态:线程已具备执行条件,只需获得CPU便可执行。•阻塞态:线程在执

行中受阻,而处于暂停状态。2.线程控制块(TCB)•系统为每个线程配置一个线程控制块。•记录在TCB中的信息有:①线程标识符②一组寄存器③线程运行状态④优先级⑤线程专有存储区⑥信号屏蔽⑦堆栈指针3.多线程OS中进程属性①进程是一个可拥有资

源的基本单位。②多个线程可并发执行。③进程已不是可执行的实体。2.4.4线程的类型和多线程模型•线程的类型:•用户级线程(ULT)•内核支持线程(KST)•很多系统都提供了对ULT和KST的支持,但由于连接方式不同,形成了不同类型的多线程

模型。•多对一模型•一对一模型•多对多模型2.5线程的实现2.5.1线程的实现方式•线程已在许多系统中实现,有的系统实现的是用户级线程,有的是内核支持线程,有的则同时实现UL和KST。1.内核支持线程•KST是在内核支持性运行的,其创建、

阻塞、撤销和切换等,也是在内核空间实现的。•在内核空间为每个内核线程设置一个线程控制块,内核根据该控制块感知线程的存在,并对线程进行控制。2.用户级线程•用户级线程是在用户空间实现的,线程的创建、撤销、同步与通信等

功能都无须内核的支持,即用户级线程与内核无关。•在设置用户级线程的系统中,调度仍是以进程为单位进行的。3.组合方式线程•有些OS提供了组合方式ULT/KST线程,在该系统中,内核支持多个KST的建立、调度和管理,同时也允许用户应用程序建立、调度和

管理。一些KST对应多个ULT,这是ULT多路复用KST来实现的。即将ULT对部分或全部KST进行多路复用,程序员可按应用需要和机器配置,对KST数目进行调整,以达到较好效果。2.5.2线程的实现1.内核支持线程的实现•在仅设置了内核支持线程的OS

中,一种线程控制方案是,系统在创建一个新进程时,便为它分配一个任务数据区(PTDA),其中包括若干个TCB空间,TCB保持在内核空间。•当进程要创建一个线程时,便为新线程分配一个TCB以及必要的资源。当PTDA中的TCB空间已用完,进程又要创建新线程时,只要其创建的线程数目未超过系统

允许值,系统可再为其分配新的TCB空间;在撤销一个线程时,也应回收该线程的所有资源和TCB。•内核支持线程的调度和切换与进程的调度和切换相似。2.用户级线程的实现•用户级线程是在用户空间实现的,都运行在一个中间系统上,当前有两种方式实现的中间系统。①运行时系统:实质上是管理和控

制线程的函数(过程)的集合。运行时系统中的所有函数都驻留在用户空间,并作为用户级线程与内核的接口。•用户级线程在切换时不需转入核心态,由运行时系统中的线程切换过程来执行切换任务。②内核控制线程•内核控制线程又称为轻型进程(LWP),每个进程可拥有多个LWP,每个LWP都有自己的数据结构(如TCB

),LWP也可共享进程所拥有的资源,LWP可通过系统调用来获得内核提供的服务。任务1任务2任务3CPU内核线程LWP用户级线程内核2.5.3线程的创建和终止1.线程的创建•应用程序在启动时,通常仅有一个线程

在执行,称为“初始化线程”,其主要功能是创建新线程。•在创建新线程时,需要利用一个线程创建函数,并提供相应的参数,如指向线程主程序的入口指针,堆栈的大小,以及用于调度的优先级等。在线程的创建函数执行完后,将返回一个线程标识符供以后使

用。2.线程的终止•当一个线程完成了自己的任务后,或是线程在运行时出现异常而强行终止时,由终止线程通过调用相应的函数对它执行终止操作。但有些线程(主要是系统线程)一旦建立,便一直运行下去而不被终止。在大多

数OS中,线程被终止后并不立即释放它所占用的资源,只有当进程中的其他线程执行了分离函数后,被终止线程才与资源分离,此时资源才能被其他线程利用。•被终止但尚未释放资源的线程,仍可以被需要它的线程所调用,以使被终止线程重新恢复运行,为此

,调用线程调用一条“等待线程终止”的连接命令,来与该线程进行连接。

小橙橙
小橙橙
文档分享,欢迎浏览!
  • 文档 25747
  • 被下载 7
  • 被收藏 0
相关资源
广告代码123
若发现您的权益受到侵害,请立即联系客服,我们会尽快为您处理。侵权客服QQ:395972555 (支持时间:9:00-21:00) 公众号
Powered by 太赞文库
×
确认删除?