第2章进程描述及控制_第1页
第2章进程描述及控制_第2页
第2章进程描述及控制_第3页
第2章进程描述及控制_第4页
第2章进程描述及控制_第5页
已阅读5页,还剩95页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1第第2 2章章 进程描述与控制进程描述与控制v进程的特征和定义进程的特征和定义v进程的三种基本状态进程的三种基本状态v进程的描述进程的描述进程控制块进程控制块v进程控制进程控制 v线程和线程和SMP SMP 2进程的引入进程的引入v进程进程是现代操作系统中最重要的概念之一。是现代操作系统中最重要的概念之一。操作系统的重要功能之一就是创建、管理和操作系统的重要功能之一就是创建、管理和终止进程。终止进程。v为什么要在操作系统中引入进程这样一个概为什么要在操作系统中引入进程这样一个概念?念?3进程的引入(续)进程的引入(续)在在多道程序设计多道程序设计出现以前,广泛使用的是出现以前,广泛使用的是“

2、程序程序”的概念。那时,程序的执行是顺序的,即一个程的概念。那时,程序的执行是顺序的,即一个程序执行完之后,才可以把另一个程序调入内存执序执行完之后,才可以把另一个程序调入内存执行。这时,程序的执行有如下特征:行。这时,程序的执行有如下特征:l 顺序性顺序性l 封闭性封闭性 (一个程序独占资源,不受其它程序影响)(一个程序独占资源,不受其它程序影响)l 可再现性可再现性 (只要初始条件相同,无论何时执行,都会得到同一结果)(只要初始条件相同,无论何时执行,都会得到同一结果)4进程的引入(续)进程的引入(续)v在多道程序环境下在多道程序环境下,程序的执行特性已完全,程序的执行特性已完全改变,改变

3、,v例:例: 有两个循环程序有两个循环程序A A和和B B,他们共享一个变量他们共享一个变量N N; 程序程序A A每次循环都做每次循环都做N=N+1N=N+1操作;程序操作;程序B B每每次循环次循环 都要做:都要做:PrintPrint(N N),然后将),然后将N N置置0 0。 如下面程序段所示:如下面程序段所示:5进程的引入(续)进程的引入(续) int N=0; Cobegin A()() B( ) while(true) while(true) N=N+1; print(N); N=0; Coend6进程的引入(续)进程的引入(续)v在并发执行中,若恰巧总是先运行在并发执行中,若

4、恰巧总是先运行A A,再运行,再运行B B,则会打印出,则会打印出N N的系列值:的系列值:1 1,1 1,1 1v在并发执行中,若恰巧总是先运行在并发执行中,若恰巧总是先运行B B,再运行,再运行A A,则会打印出,则会打印出N N的系列值:的系列值:0 0,1 1,1 1v在并发执行中,若恰巧总是把在并发执行中,若恰巧总是把A A程序插在程序插在B B程程序的序的print(N)print(N)和和N=0N=0之间,则会打印出之间,则会打印出N N的系的系列值:列值:0 0,0 0,0 0 . . 到底哪种结果是对的呢?到底哪种结果是对的呢?7进程的引入(续)进程的引入(续)v在多道程序环

5、境下在多道程序环境下,程序的并发执行代替了程程序的并发执行代替了程序的顺序执行,程序不再像单道程序环境那样,序的顺序执行,程序不再像单道程序环境那样,顺序连贯地执行,而是走走停停,具有执行顺序连贯地执行,而是走走停停,具有执行暂停暂停执行的规律。执行的规律。v它破坏了程序的它破坏了程序的“封闭性封闭性”和和“可再现性可再现性”,使得使得程序和机器执行程序的活动不再一一对应,程序和机器执行程序的活动不再一一对应,程序执行的结果也不再唯一,程序执行的结果也不再唯一,这样,程序的执这样,程序的执行也就失去了意义。行也就失去了意义。8进程的引入(续)进程的引入(续)l这时这时“程序程序”这个静态的概念

6、已经不能反这个静态的概念已经不能反映程序活动所具有的特征,需要引进一个映程序活动所具有的特征,需要引进一个新的概念新的概念进程。进程。l为了使程序能并发执行,且为了对并发执为了使程序能并发执行,且为了对并发执行的程序加以描述和控制,人们引入了行的程序加以描述和控制,人们引入了“进程进程”的概念。的概念。92.1 进程的定义和特征进程的定义和特征v进程的定义有多种,比较典型的有:进程的定义有多种,比较典型的有:1 1)进程是程序在处理器上的一次执行过程。)进程是程序在处理器上的一次执行过程。2 2)进程是一个程序及其数据在处理机上顺序执)进程是一个程序及其数据在处理机上顺序执行时所发生的活动。行

7、时所发生的活动。3 3)进程是程序在一个数据集合上的运行的过程,)进程是程序在一个数据集合上的运行的过程,是系统进行资源分配和调度的一个独立单位。是系统进行资源分配和调度的一个独立单位。 通常人们定义进程为:进程是进程实体的运行通常人们定义进程为:进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立过程,是系统进行资源分配和调度的一个独立单位。单位。102.1 进程的定义和特征进程的定义和特征 进程的特征:进程的特征:v1) 1) 动态性动态性 v2) 2) 并发性并发性 v3) 3) 独立性独立性 v4) 4) 异步性异步性v5 5)结构特征)结构特征11 进程的特征:进程的特征:1

8、) 1) 动态性动态性v进程的实质是程序的一次执行过程,因此,动进程的实质是程序的一次执行过程,因此,动态性是进程最基本的特征。它由创建而产生,态性是进程最基本的特征。它由创建而产生,由调度而执行,由撤销而消亡,因而具有一定由调度而执行,由撤销而消亡,因而具有一定的生命期。的生命期。v而程序是而程序是静态静态的,它是一组有序指令的集合,的,它是一组有序指令的集合,并存放于某种介质上,其本身并不具有运动的并存放于某种介质上,其本身并不具有运动的含义。含义。12 进程的特征:进程的特征:2) 2) 并发性并发性v指多个进程共存于内存中,且能指多个进程共存于内存中,且能在一段时间在一段时间内内同时运

9、行。同时运行。v并发性是进程的重要特征,也成为并发性是进程的重要特征,也成为OSOS的重要的重要特征。引入进程的目的也就是为了使多个进特征。引入进程的目的也就是为了使多个进程能够并发执行;而程序(没有建立程能够并发执行;而程序(没有建立PCBPCB)是不能并发执行的。是不能并发执行的。13 进程的特征:进程的特征:3) 3) 独立性独立性v指进程实体是一个能独立运行,指进程实体是一个能独立运行,独立分配资独立分配资源和独立接受调度的基本单位。源和独立接受调度的基本单位。v凡未建立凡未建立PCBPCB的程序都不能作为一个独立的的程序都不能作为一个独立的单位参与运行。单位参与运行。14 进程的特征

10、:进程的特征:4) 4) 异步性异步性v指进程按各自独立的、不可预知的速度向指进程按各自独立的、不可预知的速度向前推进,或者说进程实体按异步方式运行。前推进,或者说进程实体按异步方式运行。15进程的特征:进程的特征:5) 5) 结构特征结构特征v为了描述进程的运动变化过程,并使之能独立为了描述进程的运动变化过程,并使之能独立运行,应为每一个进程都配置一个进程控制块运行,应为每一个进程都配置一个进程控制块PCBPCB。v这样,从结构上看,每个进程都是由程序段、这样,从结构上看,每个进程都是由程序段、数据段及数据段及PCBPCB三个部分组成。三个部分组成。16l2.2 2.2 进程的三种基本状态进

11、程的三种基本状态v1 1)就绪)就绪(Ready)(Ready)状态状态 v2) 2) 执行状态执行状态 v3) 3) 阻塞状态阻塞状态 171 1)就绪)就绪(Ready)(Ready)状态状态v当进程已分配到当进程已分配到除除CPUCPU以外以外的的所有的的所有必要资源必要资源后,只要再获得后,只要再获得CPUCPU就可以立即执行,这时的就可以立即执行,这时的进程状态称为进程状态称为就绪状态就绪状态。v在一个系统中处于就绪状态的进程可能有多在一个系统中处于就绪状态的进程可能有多个,通常将他们排成一个队列,称为个,通常将他们排成一个队列,称为就绪队就绪队列列182 2)执行状态)执行状态v进

12、程进程已获得已获得CPUCPU,其程序正在执行。,其程序正在执行。v在单处理机系统中,只有一个进程处于执在单处理机系统中,只有一个进程处于执行状态;行状态;v在多处理器系统中,则有多个进程处于执在多处理器系统中,则有多个进程处于执行状态。行状态。193 3)阻塞状态)阻塞状态v正在执行的进程由于发生某事件(如需要输正在执行的进程由于发生某事件(如需要输入或输出数据)而暂时无法继续执行时,便入或输出数据)而暂时无法继续执行时,便放弃处理机而处于暂停状态,放弃处理机而处于暂停状态,v即进程的执行受到阻塞,这种暂停的状态称即进程的执行受到阻塞,这种暂停的状态称为为阻塞状态阻塞状态。20致使进程阻塞的

13、典型事件有:致使进程阻塞的典型事件有:v请求请求I/OI/O,申请缓冲空间等。,申请缓冲空间等。v通常将阻塞进程也排成队列,有的系统根据阻通常将阻塞进程也排成队列,有的系统根据阻塞的原因不同,而把处于阻塞状态的进程排成塞的原因不同,而把处于阻塞状态的进程排成多个队列。多个队列。21进程的三种状态及其转换进程的三种状态及其转换就绪阻塞执行时间片完进程调度I/O 完成I/O 请求22进程的另一个状态进程的另一个状态 挂起状态挂起状态v尽管引入了多道程序设计,在内存中有多道程尽管引入了多道程序设计,在内存中有多道程序在共享处理机和外围设备,使得处理机利用序在共享处理机和外围设备,使得处理机利用率提高

14、,率提高,v但由于其运行速度的悬殊,还可能出现在内存但由于其运行速度的悬殊,还可能出现在内存中的所有进程都处在等待状态(阻塞状态),中的所有进程都处在等待状态(阻塞状态),而此时而此时CPUCPU空闲的情形。空闲的情形。v为了充分利用为了充分利用CPUCPU的宝贵资源,又引入了的宝贵资源,又引入了“挂挂起起”状态。状态。23进程的另一个状态进程的另一个状态 挂起状态(续)挂起状态(续)l由于由于I/OI/O操作比操作比CPUCPU计算慢得多,故常会出现计算慢得多,故常会出现内存中内存中所有进程都等待所有进程都等待I/OI/O的现象。的现象。l即使运行多个程序,处理器在大多数时间仍即使运行多个程

15、序,处理器在大多数时间仍处于空闲状态。处于空闲状态。l为此可采用为此可采用交换方法交换方法,将内存中的一部分进将内存中的一部分进程转移到磁盘中。程转移到磁盘中。24进程的另一个状态进程的另一个状态 挂起状态(续)挂起状态(续)l 那么需要在进程行为模式中需增加一个新的那么需要在进程行为模式中需增加一个新的挂起状态挂起状态l当内存所有进程阻塞时,操作系统可将一进程当内存所有进程阻塞时,操作系统可将一进程置为置为挂起状态挂起状态并交换到磁盘,并交换到磁盘,l再将另一个处于就绪状态的进程调入另一进程再将另一个处于就绪状态的进程调入另一进程执行。执行。25l挂起状态与原有的阻塞和就绪状态结合为起来挂起

16、状态与原有的阻塞和就绪状态结合为起来又可形成又可形成阻塞挂起阻塞挂起状态状态和和就绪挂起就绪挂起状态。状态。26挂起状态的进一步理解:挂起状态的进一步理解:v前面讨论的是多个进程同时在内存里并发执前面讨论的是多个进程同时在内存里并发执行的过程。行的过程。v但有时人们希望一些进程暂不活动,不参与但有时人们希望一些进程暂不活动,不参与进程调度,进程调度,v这时采取的方式往往就是将一些进程调换到这时采取的方式往往就是将一些进程调换到磁盘镜像区中,叫作将进程磁盘镜像区中,叫作将进程“挂起挂起”。27v可以把一个挂起进程等同于一个不在主存的可以把一个挂起进程等同于一个不在主存的进程,因此,挂起的进程将不

17、参与进程调度,进程,因此,挂起的进程将不参与进程调度,直到它们被对换进主存。直到它们被对换进主存。28引入引入“挂起挂起”状态的其它原因状态的其它原因粗略说来,挂起有四方面的需要:粗略说来,挂起有四方面的需要:v (1) (1)终端用户的请求。终端用户的请求。 v (2) (2) 父进程请求。父进程请求。 v (3) (3) 负荷调节的需要。负荷调节的需要。 v (4) (4) 操作系统的需要操作系统的需要29为了更好地理解为了更好地理解“挂起挂起”,进一步说明:,进一步说明:l(1 1)进程竞争资源,引起系统资源不足,负荷)进程竞争资源,引起系统资源不足,负荷过重,此时需要挂起部分进程,以调

18、整系统负过重,此时需要挂起部分进程,以调整系统负荷,保证系统的实时性或让系统正常执行;荷,保证系统的实时性或让系统正常执行;l(2 2)用户要求挂起自己的进程,以便根据中间)用户要求挂起自己的进程,以便根据中间执行情况和中间结果进行某些调试、检查和改执行情况和中间结果进行某些调试、检查和改进。进。l(3 3)系统中的进程均处于等待(阻塞)系统中的进程均处于等待(阻塞) 状态,状态,处理机空闲,此时需要把一些等待进程对换出处理机空闲,此时需要把一些等待进程对换出去,以腾出足够的内存装入就绪进程运去,以腾出足够的内存装入就绪进程运行;行;30引起进程挂起的原因(续)引起进程挂起的原因(续)l(4

19、4)把一些定期执行的进程(如审计程序、)把一些定期执行的进程(如审计程序、监控程序、记账程序)兑换出去,以减轻系统监控程序、记账程序)兑换出去,以减轻系统的负荷;的负荷;l(5 5)父进程要求挂起自己的后代进程,以进)父进程要求挂起自己的后代进程,以进行某些检查和改正;行某些检查和改正;l(6 6)操作系统需要挂起某些进程,检查运行)操作系统需要挂起某些进程,检查运行中的资源使用情况,改善系统性能;当系统出中的资源使用情况,改善系统性能;当系统出现故障或某些功能受损时,需要挂起某些进程现故障或某些功能受损时,需要挂起某些进程以排除故障。以排除故障。31引入挂起状态后进程状态的转换引入挂起状态后

20、进程状态的转换v引入挂起状态后,又会增加从挂起状态引入挂起状态后,又会增加从挂起状态(静止状态)到非挂起状态(活动状态)(静止状态)到非挂起状态(活动状态)的转换;的转换;v或者相反。或者相反。32和挂起有关的几种状态转换:和挂起有关的几种状态转换:v(1) (1) 活动就绪活动就绪静止就绪。静止就绪。 (通过挂起原语将其挂起(通过挂起原语将其挂起 )v(2) (2) 活动阻塞活动阻塞静止阻塞。静止阻塞。 v(3) (3) 静止就绪静止就绪活动就绪。活动就绪。 (用激活原语将静止状态变为活动状态)(用激活原语将静止状态变为活动状态) v(4) (4) 静止阻塞静止阻塞活动阻塞。活动阻塞。332

21、.3 2.3 进程的描述进程的描述进程控制块进程控制块l为了描述多道程序设计中进程的动态变化,便为了描述多道程序设计中进程的动态变化,便于对进程进行有效的控制和管理,系统为每一于对进程进行有效的控制和管理,系统为每一个进程都定义了一个数据结构个进程都定义了一个数据结构进程控制块进程控制块PCBPCB(Process Control BlockProcess Control Block)。)。lPCBPCB是操作系统中最重要的数据结构,它包含是操作系统中最重要的数据结构,它包含了进程的了进程的描述信息描述信息和和控制信息控制信息,是进程动态特,是进程动态特性的集中反映。性的集中反映。342.3

22、2.3 进程的描述进程的描述进程控制块进程控制块l当系统创建一个进程的时候,就是系统为当系统创建一个进程的时候,就是系统为某个程序建立一个某个程序建立一个PCBPCB,当进程运行结束,当进程运行结束被撤销时,系统就收回它的被撤销时,系统就收回它的PCBPCB,该进程,该进程也就消亡了。也就消亡了。lPCBPCB标志着进程的存在,操作系统根据系标志着进程的存在,操作系统根据系统中是否有该进程的统中是否有该进程的PCBPCB来判断该进程存来判断该进程存在与否。所以说,在与否。所以说,PCBPCB是进程存在的唯一是进程存在的唯一标志。标志。352.3 2.3 进程的描述进程的描述进程控制块进程控制块

23、v 进程控制块的作用是使一个在多道程序环境进程控制块的作用是使一个在多道程序环境下不能独立运行的下不能独立运行的程序程序( (含数据含数据) ),成为一个能,成为一个能独立运行的基本单位,一个能与其它进程并发独立运行的基本单位,一个能与其它进程并发执行的执行的进程进程。v或者说,或者说,OSOS是根据是根据PCBPCB来对并发执行的进程进来对并发执行的进程进行控制和管理的。行控制和管理的。36进程控制块进程控制块PCBPCB中的信息中的信息 进程控制块中包括进程控制块中包括4 4个方面的内容:个方面的内容:l进程描述信息:进程描述信息:包括进程标识符、进程名、包括进程标识符、进程名、用户标识符

24、、进程组等用户标识符、进程组等l进程控制信息:进程控制信息:当前状态、优先级、代码执当前状态、优先级、代码执行入口地址、程序外存地址、运行时间、阻行入口地址、程序外存地址、运行时间、阻塞原因等。塞原因等。l资源占用信息:资源占用信息:进程所占用的系统资源列表。进程所占用的系统资源列表。l处理器现场保护结构处理器现场保护结构:保存寄存器的内容保存寄存器的内容37l2.4 2.4 进程的产生和终止进程的产生和终止1.1.进程产生进程产生 通常有通常有4 4种事件会导致新进程产生:种事件会导致新进程产生:v 在一个交互式环境中,当一个新用户在终端在一个交互式环境中,当一个新用户在终端键入登录命令后,

25、若是合法用户,系统将为该键入登录命令后,若是合法用户,系统将为该用户建立一个进程。用户建立一个进程。v 在一个批处理环境中,为了响应一个任务的在一个批处理环境中,为了响应一个任务的要求而产生进程。要求而产生进程。 38v在运行一个用户程序的过程中,当获取用户在运行一个用户程序的过程中,当获取用户程序提出的某种请求后,程序提出的某种请求后,OSOS可以代用户程序产可以代用户程序产生进程以实现某种功能,使用户不必等待。生进程以实现某种功能,使用户不必等待。 v基于应用进程的需要,由已存在的进程产生基于应用进程的需要,由已存在的进程产生另一个进程,以便使新进程以并发运行的方式另一个进程,以便使新进程

26、以并发运行的方式完成特定任务。完成特定任务。392.4 2.4 进程的产生和终止(续)进程的产生和终止(续)2.2.进程终止进程终止 进程的终止(或退出)有三种可能:进程的终止(或退出)有三种可能:l进程完成所要求的功能,正常终止;进程完成所要求的功能,正常终止;l由于某种错误导致非正常终止;由于某种错误导致非正常终止;l父进程要求撤销某个子进程父进程要求撤销某个子进程402.4 2.4 进程的产生和终止(续)进程的产生和终止(续)2.2.进程终止(续)进程终止(续) 具体来说,导致进程终止的事件大致有具体来说,导致进程终止的事件大致有1414种种 :正常结束正常结束 、内存不足、内存不足 、

27、超界、超界 、保护错误、保护错误 、算、算术错误术错误 、超越时限、超越时限 、I/OI/O失败失败 、非法指令、非法指令 、特权指令特权指令 、错误使用数据、错误使用数据 、操作员或、操作员或OSOS干预干预 、父进程终止父进程终止 、父进程需要、父进程需要 。41进程产生和终止(续)进程产生和终止(续)l进程的动态性质是由其状态变化决定的。进程的动态性质是由其状态变化决定的。l通常操作系统中进程都具有通常操作系统中进程都具有三种状态:运行三种状态:运行态、就绪态和阻塞态态、就绪态和阻塞态。l除此外,进程的生命周期中通常还有除此外,进程的生命周期中通常还有创建创建和和消失消失两种状态。两种状

28、态。l创建和终止状态对进程管理非常有用。创建和终止状态对进程管理非常有用。 42进程状态模型(进程状态模型(5状态模型)状态模型) 执行执行:进程当前处于运行状态。进程当前处于运行状态。 就绪就绪;进程已准备好运行。进程已准备好运行。 阻塞阻塞;进程等待某些事件发生(如进程等待某些事件发生(如I/OI/O操作)后才能运行。操作)后才能运行。 创建:创建:进程刚产生,但还未被操作系统提交到可运行进程池中。进程刚产生,但还未被操作系统提交到可运行进程池中。 消失:消失:进程被操作系统从可运行进程池中释放。进程被操作系统从可运行进程池中释放。 事件发生 准许 创 建 就 绪 分派 执行 超时 释放

29、消 失 阻塞 等待事件 43l2.5 进程控制进程控制l在计算机系统中,操作系统负责在计算机系统中,操作系统负责调度进程、调度进程、分配资源、响应用户程序服务的请求分配资源、响应用户程序服务的请求l可以认为操作系统管理整个系统资源的使用,可以认为操作系统管理整个系统资源的使用,并且控制整个系统中的事件。并且控制整个系统中的事件。442.5 进程控制(续)进程控制(续) l操作系统操作系统内核内核负责控制和管理负责控制和管理进程的产生、执进程的产生、执行和消亡的整个过程,行和消亡的整个过程,l这主要通过对它们的控制操作实现。这主要通过对它们的控制操作实现。l操作系统的进程控制操作主要有:操作系统

30、的进程控制操作主要有: 创建进程、撤消进程、挂起进程、恢复进创建进程、撤消进程、挂起进程、恢复进程、改变进程优先级、封锁进程、唤醒进程、程、改变进程优先级、封锁进程、唤醒进程、调度进程等。调度进程等。 45引入一个新概念:引入一个新概念:处理机的执行模式与执行状态处理机的执行模式与执行状态 l大多数处理器都至少支持两种大多数处理器都至少支持两种执行模式执行模式,一,一种是种是同操作系统有关的模式同操作系统有关的模式,另一种则是,另一种则是同同用户程序有关的模式。用户程序有关的模式。l较低特权的模式称为较低特权的模式称为用户模式用户模式。较高特权的。较高特权的模式称模式称系统模式系统模式、控制模

31、式或内核模式控制模式或内核模式。46l内核模式能执行所有的指令,访问所有的内核模式能执行所有的指令,访问所有的内存;内存;l用户模式则只能执行有限的指令,访问规用户模式则只能执行有限的指令,访问规定的内存定的内存l处理器往往有一个或多个寄存器来保存处处理器往往有一个或多个寄存器来保存处理器模式信息理器模式信息程序状态字(程序状态字(PSWPSW)47处理机的执行模式与执行状态处理机的执行模式与执行状态l为了防止操作系统及其关键数据(如为了防止操作系统及其关键数据(如PCBPCB)遭)遭到用户程序有意或无意的破坏,通常将处理到用户程序有意或无意的破坏,通常将处理机的执行状态分为两种:机的执行状态

32、分为两种:l核心态核心态与与用户态用户态。48l核心态又称管态、系统态核心态又称管态、系统态,是,是操作系统管理操作系统管理程序程序执行时机器所处的状态。执行时机器所处的状态。l它具有较高的特权,能执行一切指令,能访它具有较高的特权,能执行一切指令,能访问所有的寄存器和存储区。问所有的寄存器和存储区。l用户态又称目态,用户态又称目态,是是用户程序用户程序执行时机器所执行时机器所处的状态。处的状态。l它具有较低的特权,只能执行规定的指令和它具有较低的特权,只能执行规定的指令和只能访问指定的寄存器和存储区。只能访问指定的寄存器和存储区。492.5 进程控制进程控制 创建进程创建进程 一旦一旦OSO

33、S决定创建一个进程时,便调用进程决定创建一个进程时,便调用进程创创建原语建原语Creat( )Creat( ), ,( 注:原语是在核心态执行的)注:原语是在核心态执行的)进进行如下操作:行如下操作: 给新进程一个编号并申请空白给新进程一个编号并申请空白PCBPCB。 为进程分配空间。为进程分配空间。 初始化初始化PCBPCB。 设置合适的链接。设置合适的链接。 生成其他一些数据结构。生成其他一些数据结构。 50增加一个概念(增加一个概念(1):):原语原语l内核的执行是通过各种内核的执行是通过各种原语操作原语操作实现的。实现的。l所谓所谓“原语原语”是由若干条机器指令构成的,是由若干条机器指

34、令构成的,用以完成特定功能的一段程序;用以完成特定功能的一段程序;l而这段程序在执行期间是而这段程序在执行期间是不能分割的不能分割的,作为,作为一个基本的执行单位出现。一个基本的执行单位出现。51原语(续)原语(续)l内核中包含的原语主要有:内核中包含的原语主要有:l进程控制原语、进程通信原语、资源管理原进程控制原语、进程通信原语、资源管理原语以及其它原语。语以及其它原语。l进程控制进程控制方面的原语有:进程创建原语、进方面的原语有:进程创建原语、进程挂起原语、进程阻塞原语、进程唤醒原语程挂起原语、进程阻塞原语、进程唤醒原语和进程撤销原语等。和进程撤销原语等。52增加一个概念(增加一个概念(2

35、):):指令的执行与中断指令的执行与中断l计算机最基本的功能就是执行指令。计算机最基本的功能就是执行指令。l任何应用程序都只有经过指令的执行才能得以任何应用程序都只有经过指令的执行才能得以完成。完成。l处理机必须先从内存中逐条把指令读入处理机必须先从内存中逐条把指令读入寄存器寄存器,然后才能执行该指令。然后才能执行该指令。53l其中,读指令是根据其中,读指令是根据程序计数器程序计数器PCPC所指的地所指的地址读入,而执行的指令则是址读入,而执行的指令则是指令寄存器指令寄存器IRIR中中的的指令指令。l我们把指令的读入和执行过程称为一个我们把指令的读入和执行过程称为一个执行执行周期或机器周期。周

36、期或机器周期。54复习一个名词:复习一个名词:寄存器寄存器v其实,在其实,在CPU内部,除了两个重要部件(控内部,除了两个重要部件(控制器和运算器)外,还有若干个存储单元制器和运算器)外,还有若干个存储单元寄存器。寄存器。v寄存器寄存器是用来临时存放数据的高速独立的存是用来临时存放数据的高速独立的存储单元,储单元,CPU的运算离不开寄存器的支持。的运算离不开寄存器的支持。v常见的寄存器有数据寄存器、指令寄存器、常见的寄存器有数据寄存器、指令寄存器、程序寄存器等等。程序寄存器等等。55v数据寄存器数据寄存器用来存储来自内存的输入数据、用来存储来自内存的输入数据、执行后的输出数据以及中间结果等数据

37、信息;执行后的输出数据以及中间结果等数据信息;v指令寄存器(指令寄存器(IR)存放逐条从内存中取出的存放逐条从内存中取出的指令;指令;v程序计数器(程序计数器(PC)存放当前正在执行的指令存放当前正在执行的指令的地址。当前指令执行完毕,计数器加的地址。当前指令执行完毕,计数器加1,指,指向下一条指令。向下一条指令。56复习一个名词:复习一个名词:机器周期机器周期vCPU利用重复的机器周期来执行程序中的利用重复的机器周期来执行程序中的指令。指令。v简化的周期包括简化的周期包括3步:步:1.取指令取指令l在该阶段,在该阶段,控制单元控制单元命令系统将下一条要执命令系统将下一条要执行的指令复制到行的

38、指令复制到CPU的指令计数器的指令计数器IR中;中;l被复制指令的地址保存在程序计数器被复制指令的地址保存在程序计数器PC中。中。l复制完成后,程序计数器自动加复制完成后,程序计数器自动加1指向内存指向内存中的下一条指令。中的下一条指令。57机器周期机器周期2.译码译码l当把指令置于指令寄存器(当把指令置于指令寄存器(IR)后,该指令)后,该指令由控制单元进行译码。由控制单元进行译码。l指令译码的结果是产生系统可以执行操作的指令译码的结果是产生系统可以执行操作的二进制代码。二进制代码。58机器周期机器周期3.执行执行l指令译码完成后,控制单元发送工作命令到指令译码完成后,控制单元发送工作命令到

39、CPU的某个部件,的某个部件,l例如控制单元告知系统,让它从内存中加载例如控制单元告知系统,让它从内存中加载(读)数据项,(读)数据项,l或者是或者是CPU让算术逻辑单元将两个输入寄存器让算术逻辑单元将两个输入寄存器中的内容相加并将结果保存到输出寄存器,这中的内容相加并将结果保存到输出寄存器,这就是执行。就是执行。59增加一个概念(增加一个概念(2):):指令的执行与中断指令的执行与中断(续)(续)l指令的执行涉及到指令的执行涉及到处理机与内存之间处理机与内存之间的数据传的数据传输、输、处理机与外部设备处理机与外部设备之间的之间的数据传输数据传输等;等;l指令的执行还涉及到指令的执行还涉及到数

40、据的处理数据的处理:如算术运算:如算术运算和逻辑运算;和逻辑运算;l指令的执行还可以是对其它指令的指令的执行还可以是对其它指令的控制控制过程。过程。l一条指令的执行可以是上述几种情况的组合。一条指令的执行可以是上述几种情况的组合。60概念解释(概念解释(2):):指令的执行与指令的执行与中断中断(续)(续)l在指令的执行过程中或一条指令执行结束时,在指令的执行过程中或一条指令执行结束时,尽管尽管指令地址计数器指令地址计数器PC中已经指明了下一条中已经指明了下一条被访问指令的地址,但是,外部设备或计算被访问指令的地址,但是,外部设备或计算机内部可能会发来急需处理的数据或其它紧机内部可能会发来急需

41、处理的数据或其它紧急事件处理信号。急事件处理信号。61v这就需要处理机暂停正在执行的程序,转去处这就需要处理机暂停正在执行的程序,转去处理相应的紧急事件,待处理完毕后再返回原处理相应的紧急事件,待处理完毕后再返回原处继续执行,这一过程称为继续执行,这一过程称为中断中断。62概念解释(概念解释(2):):指令的执行与中断(续)指令的执行与中断(续)l中断给操作系统设计带来许多好处:中断给操作系统设计带来许多好处: 使得实时处理许多紧急事件成为可能;使得实时处理许多紧急事件成为可能; 可以增加处理机的执行效率;可以增加处理机的执行效率; 简化了操作系统的设计简化了操作系统的设计 63v系统发生中断

42、时,处理机收到中断信号,从系统发生中断时,处理机收到中断信号,从而不能继续执行程序计数器而不能继续执行程序计数器PCPC中所指向的原中所指向的原程序。程序。v这时处理机将保存当前的这时处理机将保存当前的执行现场执行现场(也就是(也就是各寄存器中的值),并调用新的程序到处理各寄存器中的值),并调用新的程序到处理机上执行。机上执行。642.5 进程控制进程控制-进程切换进程切换l在某时刻,一个正在运行的进程被中断,操在某时刻,一个正在运行的进程被中断,操作系统就将另一个进程置为运行状态,并对作系统就将另一个进程置为运行状态,并对其进行控制。其进行控制。l当操作系统掌握控制权时,切换随时会发生。当操

43、作系统掌握控制权时,切换随时会发生。 l可能将控制权交给操作系统的事件有:可能将控制权交给操作系统的事件有: 中断中断 、陷阱(自陷、内陷、内中断)、陷阱(自陷、内陷、内中断)65 引入重要概念引入重要概念:中断与陷阱(自陷)中断与陷阱(自陷)v中断处理是操作系统的一个重要组成部分中断处理是操作系统的一个重要组成部分 操作系统就是由中断驱动的;操作系统就是由中断驱动的;v中断是现代计算机系统中基本设施之一,它中断是现代计算机系统中基本设施之一,它起着通讯联络作用,协调系统对各种外部事起着通讯联络作用,协调系统对各种外部事件的响应和处理;件的响应和处理;v中断是实现多道程序的必要条件中断是实现多

44、道程序的必要条件66 引入重要概念引入重要概念:中断与陷阱(自陷)中断与陷阱(自陷)v以下几种提法帮助大家理解其本质含义:以下几种提法帮助大家理解其本质含义:v中断定义中断定义1 1 :计算机系统内发生了某一急需处理的事件,计算机系统内发生了某一急需处理的事件,使得使得CPUCPU暂停正在执行的程序而转去执行相暂停正在执行的程序而转去执行相应的应的事件处理程序事件处理程序,待处理完毕后又返回,待处理完毕后又返回到原来被中断处继续执行到原来被中断处继续执行67v中断定义中断定义2 2 : 中断是指某个事件中断是指某个事件(例如,电源掉电、浮点运(例如,电源掉电、浮点运算溢出、外部设备传输完成或出

45、错等)算溢出、外部设备传输完成或出错等)发生发生时,系统因此中止现运行程序的执行,引出时,系统因此中止现运行程序的执行,引出处理事件程序处理事件程序对相应事件进行处理,处理完对相应事件进行处理,处理完毕后返回断点继续执行。毕后返回断点继续执行。 68v中断定义中断定义3 3 :lCPUCPU暂停正在执行的程序,保留现场后自动暂停正在执行的程序,保留现场后自动转去执行相应事件的处理程序;转去执行相应事件的处理程序;l处理完成后返回断点,继续执行被打断的程处理完成后返回断点,继续执行被打断的程序序69 引入重要概念引入重要概念:中断与陷阱(自陷)中断与陷阱(自陷)中断的特点:中断的特点: 1) 1

46、) 中断是随机的中断是随机的 2) 2) 中断是可恢复的中断是可恢复的 3) 3) 中断是自动处理的中断是自动处理的70中断、自陷(陷阱中断、自陷(陷阱) 中断即外中断,指中断即外中断,指来自处理机和内存外来自处理机和内存外部的中断,部的中断,包括包括 I/O I/O 设备发出的设备发出的 I/O I/O 中断、中断、外部信号中断、各种定时器引起的时钟中断外部信号中断、各种定时器引起的时钟中断以及调试程序中设置的断点等引起的调试中以及调试程序中设置的断点等引起的调试中断等断等。71 l陷阱即内中断陷阱即内中断,主要指在处理机和内存内部主要指在处理机和内存内部产生的中断产生的中断由执行了现行指令

47、引起的。由执行了现行指令引起的。l如程序出错如程序出错( (如溢出如溢出, ,缺页中断缺页中断, ,缺段中断缺段中断, ,地地址越界等址越界等) )、电源故障、系统调用等。、电源故障、系统调用等。72 中断和陷阱的主要区别:中断和陷阱的主要区别:l 陷阱(或自陷)通常由处理机正在执行的现陷阱(或自陷)通常由处理机正在执行的现行指令引起,行指令引起,l 而中断则是由与现行指令无关的中断源引起而中断则是由与现行指令无关的中断源引起的。的。 l 陷阱处理程序提供的服务为当前进程所用,陷阱处理程序提供的服务为当前进程所用,l而中断处理程序提供的服务则不是为了当前而中断处理程序提供的服务则不是为了当前进

48、程进程73中断和陷阱的主要区别:中断和陷阱的主要区别:l CPUCPU在执行完一条指令之后,下一条指令开始在执行完一条指令之后,下一条指令开始之前响应之前响应中断中断,而在一条指令执行中也可以响,而在一条指令执行中也可以响应应陷阱陷阱。 l在有的系统中,陷入处理程序被规定在各自的在有的系统中,陷入处理程序被规定在各自的进程上下文中执行,而中断处理程序则在系统进程上下文中执行,而中断处理程序则在系统上下文中执行。上下文中执行。74中断有关的几个术语中断有关的几个术语中断源:中断源:引起中断发生的事件引起中断发生的事件中断响应:中断响应:是处理机发现有中断请求时,中止现是处理机发现有中断请求时,中

49、止现运行程序的执行并自动引出中断处理程序的过运行程序的执行并自动引出中断处理程序的过程。程。关中断:关中断:使使CPUCPU不能响应中断不能响应中断开中断:开中断:使使CPUCPU能够响应中断能够响应中断75l2.6 2.6 线程线程l线程线程( (Thread)Thread)是近年来操作系统中出现的一是近年来操作系统中出现的一个非常重要的技术。个非常重要的技术。l线程的引入,进一步提高了程序并发执行的线程的引入,进一步提高了程序并发执行的程度,从而进一步提高了系统的吞吐量。程度,从而进一步提高了系统的吞吐量。 76线程及其管理线程及其管理 1.1.线程的引入线程的引入l为了既能提高程序的并发

50、程度,又能减少为了既能提高程序的并发程度,又能减少OSOS的的开销,操作系统设计者引入了线程,把进程的开销,操作系统设计者引入了线程,把进程的两个基本属性分离开来。两个基本属性分离开来。l即以即以进程进程为单位分配资源,以为单位分配资源,以线程线程为单位进行为单位进行调度调度。77v 引入线程还有一个好处,就是能较好地支持引入线程还有一个好处,就是能较好地支持对称多处理器系统对称多处理器系统( (Symmetric Symmetric MultiprocessorMultiprocessor,简称简称SMP)SMP)。78线程及其管理线程及其管理2.2.线程的定义及特征线程的定义及特征 线程是

51、进程内的一个相对独立的、可独立线程是进程内的一个相对独立的、可独立调度和指派的执行单元。调度和指派的执行单元。79线程具有以下性质:线程具有以下性质: l线程是进程内的一个相对独立的可执行单元。线程是进程内的一个相对独立的可执行单元。 l线程是操作系统中的基本调度单元线程是操作系统中的基本调度单元 。l一个进程中至少应有一个线程一个进程中至少应有一个线程 。l线程并不拥有资源,而是共享和使用包含了它线程并不拥有资源,而是共享和使用包含了它的的进程进程所拥有的所有资源。所拥有的所有资源。 l线程在需要时也可创建其他线程线程在需要时也可创建其他线程。80v有了线程的概念以后,进程模型得到了有效有了

52、线程的概念以后,进程模型得到了有效的扩展。在一个进程中完全可以设置多个执的扩展。在一个进程中完全可以设置多个执行流程,对应多个执行线程。行流程,对应多个执行线程。v即在一个进程中可以同时运行多个不同的线即在一个进程中可以同时运行多个不同的线程来执行不同的任务。程来执行不同的任务。v例如浏览器就是一个很好的多线程的例子。例如浏览器就是一个很好的多线程的例子。运行一次浏览器相当于启动了一个进程,在运行一次浏览器相当于启动了一个进程,在此进程中,你在浏览网页的同时还可以听音此进程中,你在浏览网页的同时还可以听音乐、下载图片等乐、下载图片等,这是多个线程并发的结果。这是多个线程并发的结果。81线程及其

53、管理线程及其管理进程和线程的区别与联系:进程和线程的区别与联系: l调度调度l拥有资源拥有资源 l并发性并发性 l系统开销系统开销 82线程及其管理线程及其管理3.3.线程的状态和管理线程的状态和管理 l 线程也有一个从创建到消亡的生命过程,虽线程也有一个从创建到消亡的生命过程,虽然在不同的操作系统,线程的状态设计不完全然在不同的操作系统,线程的状态设计不完全相同,但相同,但就绪、运行、阻塞就绪、运行、阻塞3 3个关键的状态是个关键的状态是共有的。共有的。l线程中不具有进程中的线程中不具有进程中的挂起状态挂起状态。l对具有多线程的进程状态,若一个线程被阻塞,对具有多线程的进程状态,若一个线程被

54、阻塞,整个进程不被阻塞。整个进程不被阻塞。83l线程使用线程控制块线程使用线程控制块( (TCB)TCB)来描述其数据结来描述其数据结构。构。l线程的状态转换是通过相关的线程的状态转换是通过相关的控制原语控制原语来实来实现的。现的。 84多线程的实现多线程的实现 l 多线程机制是指多线程机制是指OSOS支持支持在一个进程内执行多在一个进程内执行多个线程的能力。个线程的能力。l线程虽在许多系统中实现,但实现的方式并不线程虽在许多系统中实现,但实现的方式并不完全相同。完全相同。l对于对于进程进程来说,无论是系统进程还是用户进程,来说,无论是系统进程还是用户进程,在进行切换时都要依赖内核中的进程调度

55、程序。在进行切换时都要依赖内核中的进程调度程序。所以,所以,内核内核能感知能感知进程进程的存在。的存在。85l对于线程则不然。根据线程的切换是否依赖对于线程则不然。根据线程的切换是否依赖于内核可把线程分为于内核可把线程分为用户级线程用户级线程和和内核级线内核级线程程。l对于对于内核级线程内核级线程OSOS,处理机是以,处理机是以线程线程为单位为单位进行切换;而对于进行切换;而对于用户线程级用户线程级OSOS,则是以,则是以进进程程为单位进行切换的。为单位进行切换的。 86多线程的实现多线程的实现1.1.内核级线程(内核级线程(KLTKLT)l内核级线程内核级线程KLTKLT中的所有线程的创建、

56、调度和中的所有线程的创建、调度和管理全部由管理全部由操作系统内核操作系统内核负责负责. .l任何应用程序都可以设计成多线程的程序。任何应用程序都可以设计成多线程的程序。l当提交给当提交给多线程操作系统多线程操作系统执行时,内核首先为执行时,内核首先为它创建一个进程和一个线程,线程在执行中还它创建一个进程和一个线程,线程在执行中还可以通过内核的线程原语来创建新的线程。可以通过内核的线程原语来创建新的线程。l这个应用的所有线程均在一个进程中获得支持。这个应用的所有线程均在一个进程中获得支持。这就是通常所说的这就是通常所说的“纯纯KLTKLT方法方法”。87多线程的实现多线程的实现1.1.内核级线程

57、(内核级线程(KLTKLT)vWindows 2000/XPWindows 2000/XP、OS/2OS/2、MachMach等实现的都等实现的都是内核级线程是内核级线程88内核级线程的主要优点是:内核级线程的主要优点是:l在多处理机环境中,内核能同时将同一进程在多处理机环境中,内核能同时将同一进程的多个线程调度到不同的处理机上并行;的多个线程调度到不同的处理机上并行;l若进程的一个线程被阻塞了,内核能调用同若进程的一个线程被阻塞了,内核能调用同一进程的其它线程占据处理机;一进程的其它线程占据处理机;l不需要改变内存信息,切换速度比较快不需要改变内存信息,切换速度比较快89内核级线程的主要缺点:内核级线程的主要缺点:l由于应用程序线程运行在由于应用程序线程运行在用户态用户态,而线程的调,而线程的调度和管理却是在度和管理却是在内核内核中实现的。中实现的。l所以在同一个进程中,处理机的控制权从一个所以在同一个进程中,处理机的控制权从一个线程切换到另一个线程时,需要经过线程切换到另一个线程时,需要经过“用户用户态态内核态内核态用户态用户态”的模式转换,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论