第三章 进程管理1_第1页
第三章 进程管理1_第2页
第三章 进程管理1_第3页
第三章 进程管理1_第4页
第三章 进程管理1_第5页
已阅读5页,还剩151页未读 继续免费阅读

下载本文档

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

文档简介

1、,1,第三章,进程管理,为了描述程序在并发执行时对系统资源的共享,我们需要一个描述程序执行时动态特征的概念,这就是进程。本章将讨论进程概念、进程控制和进程间关系。,本章内容,本章内容,概述 进程的描述 进程控制进程互斥和同步(重点) 进程间通信 死锁问题(难点) 进程其他方面的举例 线程及编程,3.1.1 程序的顺序执行和并发执行 程序的两种执行方式:顺序执行和并发执行。 顺序执行是单道批处理系统的执行方式,也用于简单的单片机系统 现在的操作系统多为并发执行,具有许多新的特征。引入并发执行的目的是为了提高资源利用率,3.1 概述,1. 程序的顺序执行 程序 完成所要求的功能时,所应采取的顺序步

2、骤,是执行指令的有序集合。 顺序执行特点 具有独立功能的程序独占CPU直至得到最终结果的过程,3.1.1 程序的顺序执行和并发执行,1 程序的顺序执行 (1)顺序执行的特征 顺序性:按照程序结构所指定的次序(可能有分支或循环) 封闭性:独占全部资源,计算机的状态只由于该程序的控制逻辑所决定 可再现性:初始条件相同则结果相同。,3.1.1 程序的顺序执行和并发执行,2. 程序的并发执行 目的 提高计算机的处理能力 提高资源利用率,3.1.1 程序的顺序执行和并发执行,2. 程序的并发执行 (1)形式 多道程序环境下的多道程序的并发执行 在某道程序的几个程序段中,包含可同时执行或可颠倒顺序执行的代

3、码。,3.1.1 程序的顺序执行和并发执行,2 程序的并发执行 (1)定义 程序的并发执行是指一组在逻辑上互相独立的程序或程序段在执行时间上客观上互相重叠,即一个程序或程序段的执行尚未结束,另一个程序(段)的执行已经开始的执行方式。,3.1.1 程序的顺序执行和并发执行,2. 程序的并发执行 (2)并发与并行区别 并发:在一段时间内的同时并行 并行:在同一物理时刻的同时,3.1.1 程序的顺序执行和并发执行,2. 程序的并发执行 (3)并发执行的特征 间断(异步)性:“走走停停”,一个程序可能走到中途停下来,失去原有的时序关系; 失去封闭性:共享资源,受其他程序的控制逻辑的影响。 失去可再现性

4、:失去封闭性 失去可再现性,3.1.1 程序的顺序执行和并发执行,2. 程序的并发执行 (4)不加控制的并发执行所带来的影响 例:利用堆栈管理一块内存区中各数据块的使用情况。 用getaddr(top) 从栈顶取出相应的内存块的地址。 用reladdr(blk)将数据块的地址(以bkl为地址)放入堆栈中,3.1.1 程序的顺序执行和并发执行,2. 程序的并发执行 (案例分析),int getaddr(top) int r; 1.1 r stop; 1.2 top top+1; 1.3 return (r); void reladdr(blk) 2.1 top top-1; 2.2 stop b

5、lk; ,分析getaddr(top) 与reladdr(blk)的并发执行,2.1 top top-1,1.1 r stop,1.2 top top+1,1.3 return (r),2.2 stop blk,blk,什么原因? 说明什么问题?,低地址,高地址 栈底,3.1.1 程序的顺序执行和并发执行,2. 程序的并发执行(案例分析) 例子说明 程序的执行不再具有封闭性和结果的可再现性。 getaddr()和reladdr()的并发执行,产生了错误的结果,不同执行顺序得到不同的结果。 原因:对公共变量(堆栈或堆栈指针)的共享引起的。 为了获得结果的可再现性,程序的并发执行是需要条件的。,3

6、.1.1 程序的顺序执行和并发执行,2. 程序的并发执行 (5)并发执行的条件 达到封闭性和可再现性 并发执行失去封闭性的原因是共享资源的影响,去掉这种影响就行了。,3.1.1 程序的顺序执行和并发执行,2、并发执行 (5)并发执行条件 任意两个程序P(i)和P(j)可并发的条件: R(i)W(j)= W(i)R(j)= W(i)W(j)=,现在的问题是 这个条件不好检查。 怎么办?,3.1.1 程序的顺序执行和并发执行,1、定义 一个具有一定独立功能的程序在一个数据集合上的一次动态执行过程。简言之,进程是程序的一次执行活动。,3.1.2 进程的定义,2、引入进程意义 进程描述了程序的动态执行

7、过程; 它对应虚拟处理机、虚拟存储器和虚拟外设等资源的分配和回收;,3.1 概述,2、引入进程意义 反映系统中程序执行的并发性、随机性和资源共享 引入多进程,提高了对硬件资源的利用率,但又带来额外的空间和时间开销,增加了OS 的复杂性,3.1 概述,3. 进程的特征 (1)动态性 进程对应程序的执行 进程是动态产生:创建-运行-消亡 进程在其生命周期内,在三种基本状态之间转换,3.1 概述,3. 进程的特征 (2)独立性 各进程的地址空间相互独立,除非采用进程间通信手段 (3)并发性:任何进程都可以同其他进程一起向前推进,3.1 概述,3. 进程的特征 (4)异步性:每个进程都以其相对独立的不

8、可预知的速度向前推进 (5)结构化:进程 = 代码段 + 数据段 + PCB,3.1 概述,一个进程是( )。,由协处理机执行的一个程序,A,一个独立的程序+数据集,B,PCB结构与程序和数据的组合,C,一个独立的程序,D,提交,进程所具有的基本特征包括( )。,动态性,A,顺序性,B,并发性,C,封闭性,D,异步性,E,提交,4 进程与程序的区别 (1)进程是动态的,程序是静态的: 炒菜 菜谱 (2)进程是暂时的,程序的永久的:进程是一个状态变化的过程,程序可长久保存。,3.1 概述,进程和程序的本质区别是()。,存储在内存和外存,A,顺序和非顺序执行机器指令,B,分时使用和独占使用计算机资

9、源,C,动态和静态特征,D,提交,4 进程与程序的区别 (3)进程与程序的组成不同:进程的组成包括程序、数据和进程控制块(即进程状态信息)。 (4)进程与程序的对应关系:通过多次执行,一个程序可对应多个进程;通过调用关系,一个进程可包括多个程序。,3.1 概述,5. 进程与程序的区别 (5)进程具有并发 /并行特征,程序没有。进程具有独立性和异步性 (6)进程是竞争计算机资源的基本单位。,3.1 概述,一个进程执行过程中不可能对应( )。,一个PCB,A,一个JCB,B,多个PCB,C,一个程序,D,提交,6 进程举例,正在运行的Web浏览器是一个进程,正在运行的Windows资源管理器是一个

10、进程,正在运行的Visual C编程环境也是一个进程 在计算机中处于运行状态的任何一个程序都是一个进程,一个进程拥有内存、CPU时间等一系列资源,3.1 概述,7 进程与作业关系,用户,线程,进程,作业步,作业,作业步,进程,线程,由用户创建,由系统创建,由用户指定,.,.,.,3.1 概述,7. 进程与作业关系 (1)作业是用户向计算机提交任务的实体;进程则是完成用户任务的执行实体,是向系统申请分配资源的基本单位,3.1 概述,7. 进程与作业关系 (2)一个作业可由多个进程组成,且必须至少由一个进程组成,但反过来不成立。 (3)作业的概念主要用在批处理系统中;而进程的概念用在几乎所有的多道

11、系统中。,3.1 概述,3.2.1 进程的组成 进程 = 程序 + 数据 + 进程控制块PCB 程序是进程的不可缺少的组成部分; 数据是进程处理的对象; 进程控制块是进程的控制结构,3.2 进程的描述,3.2.1 进程的组成 进程控制块 包含了进程的描述信息、控制信息和资源信息以及现场保护区,是进程的唯一标识,系统通过PCB管理和控制进程。,3.2 进程的描述,1、功能 (1)PCB是由OS维护的用来记录进程相关信息和管理进程而设置的一个专门的数据结构 (2)PCB是进程动态特性的集中反映 系统通过PCB感知进程的存在,通过PCB中所包含的各项变量的变化,掌握进程的状态以达到控制进程活动的目的

12、,3.2.2 进程控制块PCB,2、特征 PCB结构的全部或部分常驻内存; PCB随进程的创建而填写,随进程的撤消而释放; 系统利用PCB来控制和管理进程,所以PCB是系统感知进程存在的唯一标志 进程与PCB是一一对应的,3.2.2 进程控制块PCB,3、进程控制块的内容 (1)进程描述信息: 进程标识符(process ID),唯一,通常是一个整数 进程名,通常基于可执行文件名 用户标识符(user ID) 进程组关系(process group),3.2.2 进程控制块PCB,3、进程控制块的内容 (2)进程控制信息 当前状态 优先级(priority) 代码执行入口地址 程序的外存地址,

13、3.2.2 进程控制块PCB,3、进程控制块的内容 (2)进程控制信息 运行统计信息(执行时间、页面调度) 进程间同步和通信,3.2.2 进程控制块PCB,3、进程控制块的内容 (2)进程控制信息 资源占用信息:虚拟地址空间的现状、打开文件列表 CPU现场保护结构:寄存器值(通用、程序计数器PC、状态PSW,地址包括栈指针),3.2.2 进程控制块PCB,进程的控制信息和描述信息存放在( )。,JCB,A,PCB,B,TCB,C,STACK,D,提交,1、定义:对进程执行活动全过程的静态描述。 2、组成内容 进程的用户地址空间内容 硬件寄存器内容 核心数据结构(正文段、数据集、堆栈),3.2.

14、3 进程上下文,3、类型 用户级上下文:进程的用户地址空间,包括用户正文段、用户数据段和用户栈; 寄存器级上下文:程序寄存器、处理机状态寄存器、栈指针、通用寄存器的值;,3.2.3 进程上下文,3、类型 (3)系统级上下文 静态部分(PCB和资源表格) 动态部分:核心栈(核心过程的栈结构,不同进程在调用相同核心过程时有不同核心栈),3.2.3 进程上下文,4、进程上下文结构,PCB,各种 控制表 指针,栈区,数据集,正文集,各种寄存器,3.2.3 进程上下文,1、 PCB表 (1)系统把所有PCB组织在一起,并把它们放在内存的固定区域,就构成了 PCB表; (2)PCB表的大小决定了系统中最多

15、可同时存在的进程个数,称为系统的并发度。,3.2.4 PCB的组织方式,2、组织方式 (1)链表 同一状态的进程其PCB成一链表,多个状态对应多个不同的链表 各状态的进程形成不同的链表:就绪链表、阻塞链表,3.2.4 PCB的组织方式,2、组织方式(链表),3.2.4 PCB的组织方式,2、组织方式 (2)索引表 同一状态的进程归入一个index表(由index指向PCB),多个状态对应多个不同的index表 各状态的进行形成不同的索引表:就绪索引表、阻塞索引表,3.2.4 PCB的组织方式,1. 核心态和用户态 (1)用户执行状态,又称用户态,进程的用户程序段执行时,该程序处于用户态。用户态

16、时不可直接访问受保护的OS代码; (2)系统执行状态,又称系统态,核心态,进程的系统程序执行时,该进程处于系统态。核心态时可以执行OS代码,可以访问全部进程空间。,3.2.5 进程的状态及其转换,2、划分用户态和系统态的原因 (1)把用户程序和系统程序分开,以利程序的保护和共享; (2)但增加了系统复杂度和系统开销。,3.2.5 进程的状态及其转换,3. 进程的三种基本状态 (1)就绪态(Ready) :一个进程已经具备运行条件,但由于无CPU暂时不能运行的状态(当调度给其CPU时,立即可以运行。“万事俱备,只欠东风”。位于“就绪队列”中);,3.2.5 进程的状态及其转换,3 进程的三种基本

17、状态 (2)执行态(Running) :进程占有了包括CPU在内的全部资源,并在CPU上运行,3.2.5 进程的状态及其转换,3 进程的三种基本状态 (3)等待态(Blocked) :阻塞态 指进程因等待某种事件的发生而暂时不能运行的状态(即使CPU空闲,该进程也不可运行)。处于等待态的进程位于等待队列中。,3.2.5 进程的状态及其转换,一个进程获得了除CPU以外的所需资源,则该进程可能处于( ) 状态。,运行,A,就绪,B,等待,C,D,提交,(B)和(C),运行 Running,就绪 Ready,等待 Blocked,调度,时间片到,事件,等待,事件,发生,4. 进程的三种基本状态及转换

18、,基本状态间的转换图,3.2.5 进程的状态及其转换,一进程在某一时刻具有( ) 。,一种状态,A,两种状态,B,三种状态,C,四种状态,D,提交,运行状态的进程由于某种原因可能变为( )。,就绪状态,A,等待状态,B,后备状态,C,完成状态,D,活跃状态,E,提交,4 进程的三种基本状态及转换 在进程运行过程中,这三种基本状态可以依据一定的条件相互转换 (1)就绪运行(进程调度)调度程序选择一个新的进程运行 (2)运行就绪 运行进程用完了时间片 运行进程被中断,因为一高优先级进程处于就绪状态,3.2.5 进程的状态及其转换,多道程序系统中,( ) 的作用是从就绪状态中挑选一个进程投入运行。,

19、作业调度,A,交换调度,B,进程调度,C,SPOOLING调度,D,提交,4. 进程的三种基本状态及转换 (3)运行等待:当一进程等待某一事件的发生时 请求系统服务 无新工作可做 (4) 等待就绪:当所等待的事件发生时 初始化I/O 且必须等待结果 等待某一进程提供输入,3.2.5 进程的状态及其转换,在进程状态转换时,下列( )转换是不可能发生的。,就绪态运行态,A,运行态就绪态,B,运行态阻塞态,C,阻塞态运行态,D,提交,进程从运行状态变为等待的原因可能是( ) 。,输入/输出事件发生,A,时间片到,B,输入/输出事件完成,C,某个进程被唤醒,D,提交,一个进程被唤醒,意味着( )。,该

20、进程重新占有了CPU,A,进程状态变为就绪,B,它的优先权变为最大,C,其PCB移至就绪队列的队首,D,提交,一次I/O操作的结束,有可能导致( )。,一个进程由睡眠变就绪,A,几个进程由睡眠变就绪,B,一个进程由睡眠变运行,C,几个进程由睡眠变运行,D,提交,一个进程释放一种资源将有可能导致一个或几个进程( )。,由就绪变运行,A,由运行变就绪,B,由阻塞变运行,C,由阻塞变就绪,D,提交,进程从阻塞状态转换到就绪状态的可能原因是( ).,时间片完,A,其它进程执行了唤醒原语,B,执行了V操作,C,执行了P操作,D,提交,进程从执行状态转换到阻塞状态的可能原因是( ).,时间片完,A,需要等

21、待其它进程的执行结果,B,执行了V操作,C,执行了P操作,D,提交,5 其它状态 (1)创建状态:创建( 新new)状态 OS 已完成为创建一进程所必要的工作 已构造了进程标识符 已创建了管理进程所需的表格,3.2.5 进程的状态及其转换,5. 其它状态 (1)创建状态 但还没有允许执行该进程 (尚未同意) 因为资源有限,OS所需的关于该进程的信息保存在主存中的进程表中,但进程自身还未进入主存,也没有为与这个程序相关的数据分配空间,程序保留在辅存中。,3.2.5 进程的状态及其转换,进程创建原语的任务是( ) 。,为进程编制程序,A,为进程建立PCB表,B,为进程分配CPU,C,为进程分配所需

22、的各种资源,D,提交,5. 其它状态 (1)创建状态 导致进程创建的原因 批处理环境中,选择一新作业即将进入内存执行 交互环境中,新用户登录到系统 由现有进程生成,父进程-子进程,3.2.5 进程的状态及其转换,进程被创建后即进入( )排队。,阻塞队列,A,就绪队列,B,缓冲队列,C,运行队列,D,提交,3. 其它状态 (2)终止状态(Exit): 终止后进程移入该状态 它不再有执行资格 表格和其它信息暂时保留 实用程序为了分析性能和利用率,可能要提取程序的历史信息,3.2.5 进程的状态及其转换,5 其它状态 (3)终止状态:进程完成任务或者其它原因退出,进程无法恢复,3.2.5 进程的状态

23、及其转换,5 其它状态 导致进程终止的原因 分时系统中,用户的行为可指示终止 PC机环境中,用户结束一应用程序 父进程终止,OS自动终止所有后代进程,3.2.5 进程的状态及其转换,6. 五状态进程模型,3.2.5 进程的状态及其转换,6. 五状态进程模型 (1)五状态进程模型(单队列结构),Admit,Ready Queue 就绪队列,Dispatch,Time-out 超时,Event Wait,Release,CPU,Blocked Queue 等待队列,Event,Occurs,提交,调度,Processor,释放,等待事件,事件发生,3.2.5 进程的状态及其转换,6. 五状态进程模

24、型 (1)五状态进程模型(多队列结构),Admit,Ready Queue,Dispatch,Time-out,Release,Processor,Event 1 Wait,Event 1 Queue,Event 1,Occurs,Event 2 Wait,Event 2 Queue,Event 2,Occurs,3.2.5 进程的状态及其转换,7. 挂起进程模型 (1)进程挂起的目的 提高处理机效率 为运行进程提供足够内存,3.2.5 进程的状态及其转换,7. 挂起进程模型 (1)单挂起进程模型,3.2.5 进程的状态及其转换,7. 挂起进程模型 (2)双挂起进程模型,Admit,Runni

25、ng,Ready,Suspend,Exit,Ready,Blocked,Dispatch,Timeout,Event,Wait,Event,Occurs,Release,Blocked,Suspend,Suspend,New,Event,Occurs,Activate,Suspend,Activate,Admit,Suspend,3.2.5 进程的状态及其转换,从执行状态挂起的进程解除挂起时进入( )状态。,就绪,A,执行,B,阻塞,C,挂起,D,提交,7. 挂起进程模型 (3)挂起类型 根据是否就绪、是否在内存分类 1)就绪状态(Ready):进程在内存且可立即进入运行状态; 2)阻塞状态(

26、Blocked):进程在内存,并等待某事件的出现;,3.2.5 进程的状态及其转换,7. 挂起进程模型 (3)挂起类型 根据是否就绪、是否在内存分类 3)就绪挂起状态(Ready, suspend):进程在外存,但只要进入内存,即可运行; 4)阻塞挂起状态(Blocked, suspend):进程在外存并等待某事件的出现;,3.2.5 进程的状态及其转换,7. 挂起进程模型 (4)状态间的转换 挂起(Suspend):把一个进程从内存转到外存 挂起类型 阻塞到阻塞挂起 就绪到就绪挂起 运行到就绪挂起,3.2.5 进程的状态及其转换,7. 挂起进程模型 (4)状态间的转换 激活(Activate

27、):把一个进程从外存转到内存 就绪挂起到就绪 阻塞挂起到阻塞,3.2.5 进程的状态及其转换,1、如果系统中有N个进程,运行的进程最多几个,最少几个;就绪进程最多几个最少几个;等待进程最多几个,最少几个? 2、有没有这样的状态转换,为什么? 等待运行; 就绪等待 3、一个状态转换的发生,是否一定导致另一个转换发生,列出所有的可能 4、举3个日常生活中类似进程的例子,课堂练习题,进程定义、特征、组成、 PCB: 作用、内容、组织 进程与程序、作业的区别 进程描述、进程上下文 进程状态:3、5、6、7 状态间的转换,内容总结,3.3.1 进程控制的功能 完成创建和撤消进程,挂起和激活进程等 完成进

28、程状态的转换。 使各进程有序地、正确地运行,共享系统资源,3.3 进程控制,1、原语(primitive) (1)定义 由若干条指令构成的“原子操作”过程,作为一个整体而不可分割-要么全都完成,要么全都不做。许多系统调用就是原语。,3.3.1 进程控制的功能,1、原语(primitive) (2)类型 机器指令级:不允许中断 功能级原语:允许中断,不允许并发,3.3.1 进程控制的功能,1、原语(primitive) 注意:系统调用并不都是原语。 进程A调用read(),因无数据而阻塞,在read()里未返回。然后进程B调用read(),此时read()被重入。 系统调用不一定一次执行完并返回

29、该进程,有可能在特定的点暂停,而转入到其他进程。,3.3.1 进程控制的功能,进程创建与撤消原语 进程阻塞与唤醒原语 进程挂起与激活原语,3.3.2 进程控制的主要原语,1. 进程创建原语 (1)主要任务: 为进程创建一个PCB 赋予一个统一进程标识符 为进程映象分配空间 初始化进程控制块 设置相应的链接 把新进程加到就绪队列的链表中 插入家族队列,3.3.2 进程控制的主要原语,1. 进程创建原语 (2) 引起创建进程的事件 用户登录:分时系统 作业调度:批处理系统 提供服务:为用户打印服务而创建的打印进程 应用请求:由用户程序创建,3.3.2 进程控制的主要原语,1. 进程创建原语 (3)

30、子进程创建的3种形式,产生新进程,不产生新进程,复制现有 进程的上下文,fork,(新进程的系统上,下文会有不同),加载程序,spawn,(创建新进程并 加载新程序),exec,(加载新程序并,覆盖自身),3.3.2 进程控制的主要原语,1. 进程创建原语,(4)子进程与父进程 继承(inherit)的信息:子进程可以从父进程中继承用户标识符、环境变量、打开文件、文件系统的当前目录、控制终端、已经连接的共享存储区、信号处理例程入口表等 不被继承信息:进程标识符,父进程标识符,3.3.2 进程控制的主要原语,2. 进程撤销原语Destroy (1)导致进程被撤消的原因 一个进程在完成任务而正常终

31、止 由于错误导致非正常终止 外界干预(操作员/OS干预;父进程请求;父进程终止),3.3.2 进程控制的主要原语,只作用于一个进程一次的原语是( )。,创立,A,解挂,B,阻塞,C,挂起,D,提交,2. 进程撤销原语Destroy (2)功能 释放内外存空间 关闭所有打开文件 释放共享内存段和各种锁定lock 撤消其子孙进程(以免其成为不可控的) 释放其PCB,3.3.2 进程控制的主要原语,3. 进程阻塞原语Block (1)阻塞原因 当进程期待的某事件尚未出现时,该进程调用阻塞原语把自己阻塞起来。 注意:进程自己阻塞自己,但该进程的唤醒则是在该进程所期待的事件发生后,由“发现者”进程调用唤

32、醒原语实现,3.3.2 进程控制的主要原语,3. 进程阻塞原语Block (3)处理过程: 保护中断现场 置进程的状态为“等待态” 将其插入该事件的等待队列WQ(r) 转进程调度,3.3.2 进程控制的主要原语,4. 进程唤醒原语Wakeup (1)唤醒原因 进程等待的事件发生,3.3.2 进程控制的主要原语,4. 进程唤醒原语Wakeup (2)唤醒进程的两种方法 由系统进程唤醒。系统进程统一控制事件的发生,并将“事件发生”这一消息通知等待进程。等待的是公共资源。 由事件发生进程唤醒。事件发生进程与被唤醒的进程是合作关系, 等待私有资源,3.3.2 进程控制的主要原语,进程依靠( )从阻塞状

33、态过渡到就绪状态。,程序员的命令,A,系统服务,B,等待下一个时间片到来,C,“合作”进程的唤醒,D,提交,5 挂起原语 Suspend Primitive (1)原因 当需要把某进程置于就绪挂起状态(Readys)或阻塞挂起状态(Blockeds)时,调用挂起原语,即将进程从活动就绪状态或阻塞状态变为相对静止的就绪挂起状态或阻塞挂起状态。,3.3.2 进程控制的主要原语,5 挂起原语 Suspend Primitive (2)进程的挂起方式 发命令的进程自身挂起; 挂起具有指定标识符的进程;,3.3.2 进程控制的主要原语,为使进程由活动就绪变为静止就绪,应利用( )原语?,Suspend,

34、A,Active,B,Block,C,Wakeup,D,提交,6 激活原语 Active Primitive (3)功能 使处于静止状态的进程变为活动状态,即把“静止就绪”变为“活动就绪”,把“静止阻塞”变为“活动阻塞”。,3.3.2 进程控制的主要原语,6.激活原语 Active Primitive (4)激活方式 激活一个指定标识符的进程 激活某进程及其所有“子孙”进程等 当激活的进程处于“活动就绪”状态时,将引起进程的重新调度,3.3.2 进程控制的主要原语,从执行状态挂起的进程解除挂起时进入( )状态。,就绪,A,执行,B,阻塞,C,挂起,D,提交,1、进程建立过程 系统上电引导程序自

35、举操作系统进入内存建立0#进程、1#进程为各终端创建用户交互进程(Shell)和终端管理进程出现提示符创建新用户进程 进程树,1#进程是祖先。,3.3.3 Unix的进程管理,2. UNIX的进程上下文 (1)进程动态特性 定义为在 进程上下文中的执行 (2)进程的静态描述 程序正文段+数据段+PCB(进程的上下文),3.3.3 Unix的进程管理,3. UNIX的进程上下文类型 (1)用户级上下文 进程正文:程序中可执行的机器指令 进程数据:由这个进程访问的数据 用户栈:过程调用时的参数、局部变量、返回地址 共享存储区:与其他进程共享的存储区,用于进程间的通信,3.3.3 Unix的进程管理

36、,3. UNIX的进程上下文类型 (2)寄存器级上下文 程序计数器 状态寄存器 栈指针(指向用户栈或核心栈的栈顶,取决于当前的运行模式) 通用寄存器,3.3.3 Unix的进程管理,3 UNIX的进程上下文类型 (3)系统级上下文 进程表项( proc结构):进程的基本常用信息,常驻内存 U用户区( user结构):可以调出到外存,进程处于执行状态时才用得着,各种资源表格 本进程区表:定义了从虚地址到实地址的映射 核心栈:核心态执行时的过程调用的栈结构,3.3.3 Unix的进程管理,4. UNIX的进程状态及其转换,Not Enough,Memory,Kernal,Running,Ready

37、 to Run,Swapped,Zombie,Ready to Run,in Memory,Asleep in,Memory,Reschedule,Process,Sleep,Wakeup,Exit,Sleep,Swapped,Swap Out,Created,Wakeup,Swap In,Enough,Memory,Fork,Swap Out,User,Running,Preempted,Return,System Call,Interrupt,Interrupt,Interrupt Return,Preempt,Return,to User,3.3.3 Unix的进程管理,3.3.3 Un

38、ix的进程管理 3. UNIX的进程控制 UNIX的进程控制的系统调用 fork(): 创建一个新进程 exec(): 执行一个可执行程序 exit(): 退出 sleep():暂停一段时间,3.3.3 Unix的进程管理,5. UNIX的进程控制 (1)UNIX的进程控制的系统调用 pause(): 暂停并等待信号 wait() : 等待子进程暂停或终止 kill() : 发送信号到某个或一组进程 ptrace():设置执行断点(breakpoint),允许父进程控制子进程的运行,3.3.3 Unix的进程管理,5 . UNIX的进程控制,(2) fork()创建一个新进程 fork()调用

39、格式: pid = fork() 父子进程的fork()返回值不同:在子进程中返回时,pid为0;在父进程中返回时, pid为所创建的子进程的标识。,3.3.3 Unix的进程管理,(3) exec()执行一个文件的调用 子进程如何执行一个新的程序文本? 通过exec族调用,加载新的程序文本 exec用一个新进程覆盖调用进程。,3. UNIX的进程控制,3.3.3 Unix的进程管理,总结2,原语 进程控制原语:创建、撤销、阻塞与唤醒、挂起与激活 UNIX的进程、状态、控制原语(Fork),3.3 进程控制,3.4 线程(THREAD),引入线程的目的是简化线程间的通信,以小的开销来提高进程内

40、的并发程度: 提高系统的执行效率; 减少处理机的空转时间和调度切换的时间,便于系统管理。,本节内容包括,线程的引入 进程和线程的比较 线程举例,1、进程Process地位 资源分配单位(存储器、文件)和CPU调度(分派)单位。又称为任务(task)” 多线程是指OS支持在一个进程中执行多个线程的能力,3.4.1 进程与线程的关系,2、线程Thread:作为CPU调度单位,而进程只作为其他资源分配单位。 (1)只拥有必不可少的资源,如:线程状态、寄存器上下文和栈 (2)同样具有就绪、阻塞和执行三种基本状态,3.4.1 进程与线程的关系,在下面的叙述中正确的是( )。,线程是比进程更小的能独立运行

41、的基本单位。,A,引入线程可提高程序并发执行的程度,可进一步提高系统效率。,B,线程的引入增加了程序执行时的时空开销。,C,一个进程一定包含多个线程。,D,提交,下面关于线程的叙述中,正确的是( )。,不论是系统支持线程还是用户级线程,其切换都需要内核的支持。,A,线程是资源的分配单位,进程是调度和分配的单位。,B,不管系统中是否有线程,进程都是拥有资源的独立单位。,C,在引入线程的系统中,进程仍是资源分配和调度分派的基本单位。,D,提交,3 进程与线程关系类型,3.4.1 进程与线程的关系,4 进程与线程的关系,线程组成:TCB、堆栈、寄存器,3.4.1 进程与线程的关系,1、进程模型适应场

42、合 在处理“基于同数据区的同时多请求”时的效率局限性。 例:售票系统:数据库服务器软件需同时处理来自多个用户进程的读盘请求,可以有如下几种方式:,3.4.2 线程的引入,2、线程特点 (1)通过线程可方便有效地实现并行性 (2)创建线程快,开销少 所有线程可共享进程的主存;程序之间切换的开销要比线程之间切换的开销小 (3)多线程机制,对多个客户同时提出服务请求时的回答十分有利,3.4.2 线程的引入,下面关于线程的叙述中,正确的是( )。,不论是系统线程还是用户级线程,其切换都需要内核的支持。,A,线程是资源的分配单位,进程是调度和分配的单位。,B,不管系统中是否有线程,进程都是拥有资源的独立

43、单位。,C,在引入线程的系统中,进程仍是资源分配和调度分派的基本单位。,D,提交,1、减小并发执行的时间和空间开销(线程的创建、退出和调度) 2、线程的创建时间比进程短; 3、线程的终止时间比进程短;,3.4.3 线程的优点,在下面的叙述中,不正确的是( )。,一个进程可创建一个或多个线程,A,一个线程可创建一个或多个线程,B,一个线程可创建一个或多个进程,C,一个进程可创建一个或多个进程,D,提交,4、同进程内的线程切换时间比进程短 5、由于同进程内线程间共享进程的代码、数据、内存等资源,可直接进行不通过内核的通信;而进程间的通信需要通过内核进行,以提供保护和通信所需机制,3.4.3 线程的

44、优点,在下面的叙述中,正确的是()。,引入线程后,处理机只在线程间切换。,A,引入线程后,处理机仍在进程间切换。,B,线程的切换,不会引起进程的切换。,C,线程的切换,可能引起进程的切换。,D,提交,1、不适宜:很少做进程调度和切换的实时系统、个人数字助理系统。任务单一 2、最适宜:多处理机系统,3.4.4 线程的适用范围,3、典型应用环境 服务器中的文件管理、客户服务器方式的服务器程序。 前后台处理。如表处理程序,用户输入命令和命令执行 异步处理:一个程序中可以并发的程序段,使用不同的线程,3.4.4 线程的适用范围,1、基本状态 执行、就绪、阻塞,就绪,执行,阻塞,结束,派生 Spawn,调度 Dispatch,激活,阻塞,结束,3.4.5 线程的状态,1.内核线程(kernel-level thread) 依赖于OS核心,由内核的内部需求进行创建和撤销,用来执行一个指定的函数。Windows NT和OS/2支持内核线程;,

温馨提示

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

评论

0/150

提交评论