操作系统:02第二章 进程线程与作业_第1页
操作系统:02第二章 进程线程与作业_第2页
操作系统:02第二章 进程线程与作业_第3页
操作系统:02第二章 进程线程与作业_第4页
操作系统:02第二章 进程线程与作业_第5页
已阅读5页,还剩58页未读 继续免费阅读

下载本文档

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

文档简介

1、第二章第二章 进程、线程与作业进程、线程与作业2.1 多道程序设计多道程序设计 Multi-programming 2.2 进程的引入进程的引入 Process 2.3 线程与轻进程线程与轻进程 Thread and light-weighted process2.4 作业作业 Job2.5 系统举例系统举例2.1 多道程序设计多道程序设计2.1.1 单道程序设计的缺点单道程序设计的缺点2.1.2 多道程序设计的提出多道程序设计的提出2.1.3 多道程序设计的问题多道程序设计的问题n 目目 的:的:提高系统效率;提高系统效率;n 衡量指标:衡量指标:吞吐量吞吐量(throughput) 单位时

2、间内系统所处理作业单位时间内系统所处理作业(程序程序)的道数的道数(数量数量)。吞吐量吞吐量 作业道数作业道数全部处理时间全部处理时间n 解决方式:解决方式:提高系统资源利用率。提高系统资源利用率。多道程序设计能最大限度多道程序设计能最大限度地提高系统资源的利用率地提高系统资源的利用率2.1 多道程序设计多道程序设计2.1.1 单道程序设计的缺点单道程序设计的缺点n 概念:概念:一次只允许一个程序进入系统运行。一次只允许一个程序进入系统运行。n 缺点:缺点:资源利用率低,表现在:资源利用率低,表现在: 设备利用率低设备利用率低:同一时刻只能用一种设备或子集;同一时刻只能用一种设备或子集; 内存

3、利用率低:内存利用率低:单个程序所占内存远远小于主存容量;单个程序所占内存远远小于主存容量; 处理器利用率低:处理器利用率低:当有当有I/O操作时操作时CPU通常处于等待状态。通常处于等待状态。t运行程序运行程序ACPU设备设备1运行程序运行程序At1t2t5t6设备设备22.1.2 多道程序设计的提出多道程序设计的提出n 思想:思想:增加资源使用者数量,增加资源使用者数量, 即增加系统中程序运行个数。即增加系统中程序运行个数。n 优点:优点:提高处理器、设备、内存等各种资源的利提高处理器、设备、内存等各种资源的利 用率,从而提高系统效率。用率,从而提高系统效率。CPU设备设备1程序程序Att

4、1t2t5t6设备设备2程序程序B程序程序At3t42.1.2 多道程序设计的提出多道程序设计的提出(Cont.)n 道数确定:道数确定:增加同时运行程序的道数可以提增加同时运行程序的道数可以提 高资源利用率,从而提高系统效高资源利用率,从而提高系统效 率,但率,但道数应与系统资源数量相当道数应与系统资源数量相当。n 道数过少:道数过少:系统资源利用率低。系统资源利用率低。n 道数过多:道数过多:系统开销系统开销(system overhead)增大,增大, 程序响应速度下降。程序响应速度下降。2.1.2 多道程序设计的提出多道程序设计的提出(Cont.)道数限制因素:道数限制因素: 内存容量

5、限制:内存容量限制:由于虚拟地址空间的引入,内存可同时运由于虚拟地址空间的引入,内存可同时运 行多个程序。但每个程序不可能全部装入内存,会出现缺行多个程序。但每个程序不可能全部装入内存,会出现缺 页页/段的情况,导致频繁调入调出,即出现段的情况,导致频繁调入调出,即出现“抖动抖动”现象;现象; 设备数量限制:设备数量限制:道数过多,程序之间会出现互相等待设备道数过多,程序之间会出现互相等待设备 情况;情况; CPU竞争:竞争:道数过多会出现对道数过多会出现对CPU的竞争,增加处理器分的竞争,增加处理器分 配开销,影响系统响应速度。配开销,影响系统响应速度。2.1.3 多道程序设计的问题多道程序

6、设计的问题1. 处理器资源管理问题处理器资源管理问题l 程序个数程序个数 处理器个数处理器个数 程序对程序对CPU有竞争,如何分配、调度;有竞争,如何分配、调度;2. 存储资源管理问题存储资源管理问题l 存储空间的分配与管理;存储空间的分配与管理;l 程序逻辑地址到内存物理地址的映射;程序逻辑地址到内存物理地址的映射;l 程序之间存储空间的保护;程序之间存储空间的保护;l 内存、外存内存、外存(swap space)的分配与去配。的分配与去配。3. 设备资源管理问题设备资源管理问题l 分配策略分配策略l I/O控制控制4. 多道程序之间通信、互斥、多道程序之间通信、互斥、死锁等问题。死锁等问题

7、。2.2 进程的引入进程的引入2.2.1 进程的概念进程的概念2.2.2 进程状态及状态转换进程状态及状态转换2.2.3 进程控制块进程控制块2.2.4 进程的组成与上下文进程的组成与上下文2.2.5 进程的队列进程的队列2.2.6 进程的类型和特性进程的类型和特性2.2.7 进程间相互联系与进程间相互联系与 相互作用相互作用2.2.8 进程的创建与撤销进程的创建与撤销2.2.9 进程与程序间的联进程与程序间的联 系与差别系与差别多道系统中的程序:多道系统中的程序: 暂暂 停:停:保存现场保存现场(PSW+PC,寄存器,寄存器)推推 进:进:恢复现场恢复现场(寄存器,寄存器,PSW+PC)暂停

8、原因:暂停原因: 自身原因:等待资源,启动自身原因:等待资源,启动I/O; 剥夺剥夺CPU给其它程序运行机会。给其它程序运行机会。2.2 进程的引入进程的引入(Cont.)2.2.1 进程的概念进程的概念进程的多种观点:进程的多种观点: 进程是程序的一次执行;进程是程序的一次执行; 进程是可参与并发执行的程序;进程是可参与并发执行的程序; 进程是一个程序与数据通过处理器执行所发生的活动;进程是一个程序与数据通过处理器执行所发生的活动; 进程是给定空间和初始环境下,进程是给定空间和初始环境下, 在处理器上的执行过程;在处理器上的执行过程; 定义:进程是具有一定独立功能的程序关于一个数据集合定义:

9、进程是具有一定独立功能的程序关于一个数据集合的一次运行活动。的一次运行活动。2.2.2 进程状态及状态转换进程状态及状态转换1. 进程状态进程状态(基本状态基本状态)l 运行态运行态(RUN): 占有占有CPU正在向前推进正在向前推进l 就绪态就绪态(READY): 可以运行可以运行,但未得到,但未得到CPUl 等待态等待态(WAIT): 等待某一事件发生等待某一事件发生2. 状态转换状态转换l 就就 绪绪 运运 行:获得处理机行:获得处理机l 运运 行行 就就 绪:剥夺处理机绪:剥夺处理机l 运运 行行 等等 待:申请资源未得到;启动待:申请资源未得到;启动I/Ol 等等 待待 就就 绪:得

10、到资源;绪:得到资源;I/O中断中断就绪就绪等待等待运行运行调度选中调度选中剥夺剥夺等待事件等待事件事件发生事件发生进程状态转换图进程状态转换图2.2.2 进程状态及状态转换进程状态及状态转换(Cont.)n 进程状态转换由操作系统完成,对用户是透明的;进程状态转换由操作系统完成,对用户是透明的;n 进程在其生存期内经过多次状态转换,进程在其生存期内经过多次状态转换, 体现了进程的动态性和并发性。体现了进程的动态性和并发性。2.2.3 进程控制块进程控制块PCB定义定义 (Process Control Block) 标志进程存在的数据结构,其中包含系统对进程进标志进程存在的数据结构,其中包含

11、系统对进程进行管理所需的全部信息。行管理所需的全部信息。PCB内容:内容:(不同系统不尽相同不同系统不尽相同) 进程标识进程标识 程序地址程序地址 用户标识用户标识 当前打开文件当前打开文件 进程状态进程状态 消息队列指针消息队列指针 调度参数调度参数 资源使用情况资源使用情况 现场信息现场信息 进程队列指针进程队列指针 家族联系家族联系2.2.4 进程的组成进程的组成与上下文与上下文进程的组成进程的组成1. 进程控制块进程控制块(Process Control Block)l建立进程建立进程 建立建立PCBl撤销撤销PCB 撤销进程撤销进程2. 程程 序序l代代 码码 ( code ):纯代

12、码、可重定位;:纯代码、可重定位;l数数 据据 ( data ) 静态变量;静态变量; 栈、堆栈、堆 ( stack + heap )栈:保存返回点、参数、返回值、局部变量、寄存器内容;栈:保存返回点、参数、返回值、局部变量、寄存器内容;堆:动态变量堆:动态变量2.2.4 进程的组成进程的组成与上下文与上下文(Cont.)进程的表记:进程的表记:进程的物理形式表征。进程的物理形式表征。PCB程序程序PCB代代码码数据数据整体性整体性代码可共享性代码可共享性系统空间系统空间用户空间用户空间定义:进程的程序定义:进程的程序(代码和数据代码和数据)称为称为 进程影像进程影像(Process Imag

13、e)。(Cont.)n 进程上下文进程上下文 (process context) 进程的物理实体与支持进程运行的物理环境。进程的物理实体与支持进程运行的物理环境。 统称为进程上下文统称为进程上下文l PCB + 程序程序(数据、代码数据、代码)l 系统环境:地址空间,系统堆系统环境:地址空间,系统堆/栈,栈, 打开文件表,通用寄存器打开文件表,通用寄存器n 上下文切换上下文切换 (context switch) 由一个进程的上下文转到另外一个进程的上下文。由一个进程的上下文转到另外一个进程的上下文。定义:系统开销定义:系统开销 (system overhead) 运行操作系统程序、对系统进行管

14、理所花费的时间和空间。运行操作系统程序、对系统进行管理所花费的时间和空间。2.2.5 进程的队列进程的队列PCBPCBPCBhead1. 就绪队列:就绪队列:系统一个或若干个系统一个或若干个(根据调度算法确定根据调度算法确定);2. 等待队列:等待队列:每个等待事件一个;每个等待事件一个;3. 运行队列:运行队列:每个处理器一个,每个队列只有一个进程。每个处理器一个,每个队列只有一个进程。运行指示字:运行指示字:指向运行队列头部的指针叫做指向运行队列头部的指针叫做运行指示字。运行指示字。PCB构成的队列:构成的队列:( 不一定不一定FIFO,单向或双向,单向或双向)2.2.5 进程的队列进程的

15、队列(Cont.)就就 绪绪 队队 列列时间片用完时间片用完等待队列等待队列1等待队列等待队列2等待队列等待队列nCPU等待事件等待事件1等待事件等待事件2等待事件等待事件n事件事件1发生发生事件事件2发生发生事件事件n发生发生创创 建建完完 成成进程队列模型进程队列模型运运 行行2.2.6 进程的类型进程的类型和特性和特性进程类型进程类型n 系统进程系统进程l 运行操作系统程序,运行操作系统程序, 完成系统管理完成系统管理(服务服务)功能功能.l 也称作守护进程也称作守护进程 (daemon)n 用户进程用户进程l 运行用户运行用户(应用应用)程序,为用户服务。程序,为用户服务。l 例如例如

16、:UNIX vi, shell, cc2.2.6 进程的进程的类型和类型和特性特性(Cont.) 进程的特性进程的特性 并发性:并发性:可以与其它进程宏观上一齐向前推进;可以与其它进程宏观上一齐向前推进; 动态性:动态性:动态产生、消亡,生存期内状态动态变化;动态产生、消亡,生存期内状态动态变化; 独立性:独立性:一个进程是可以调度的基本单位;一个进程是可以调度的基本单位; 交互性:交互性:同时运行的进程可能发生同时运行的进程可能发生相互作用相互作用; 异步性:异步性:进程以各自独立不可预知的速度向前推进;进程以各自独立不可预知的速度向前推进; 结构性:结构性:每个进程有一个每个进程有一个PC

17、B。2.2.7 进程间相互联系进程间相互联系与相互作用与相互作用相互联系相互联系n 相关进程相关进程l 同一家族的进程;同一家族的进程;l 同步:同步:可以共享文件,需要相互通信,协调推进速度;可以共享文件,需要相互通信,协调推进速度;l 父进程可以监视子进程,父进程可以监视子进程, 子进程完成父进程交给的任务。子进程完成父进程交给的任务。n 无关进程无关进程l 没有逻辑关系、同时执行的进程。没有逻辑关系、同时执行的进程。l 有资源竞争关系,互斥、死锁、饿死。有资源竞争关系,互斥、死锁、饿死。2.2.7 进程间进程间相互联系与相互联系与 相互作用相互作用(Cont.)相互作用相互作用syncs

18、endreceiveP1:P2:RP2P1holdwait2.2.8 进程的创建与撤销进程的创建与撤销n 进程创建:进程创建: 初始进程;初始进程;(系统调用系统调用) 其它进程由其它进程由(父父)进程创建,并形成进程家族。进程创建,并形成进程家族。l 建立建立PCB,分配内存,加载程序,入就绪链,分配内存,加载程序,入就绪链l UNIX:pid=fork(),execl(prog,args) n 进程的撤销进程的撤销 正常终止;正常终止; 地址越界、非法指令、用户或父进程的地址越界、非法指令、用户或父进程的KILL.l去配资源,撤销去配资源,撤销PCB,通知父进程,通知父进程lUNIX:ex

19、it() vs. kill考虑进程生灭的状态转换图考虑进程生灭的状态转换图结束结束/异常异常创建创建事件发生事件发生剥夺处理机剥夺处理机就绪就绪等待等待运行运行调度选中调度选中等待事件等待事件创创建建终终止止2.2.8 进程的创建与撤销进程的创建与撤销(Cont.)2.2.9 进程与程序的联系与差别进程与程序的联系与差别n 进程与程序的联系进程与程序的联系l 进程包括一个程序;进程包括一个程序;l 进程存在的目的就是执行这个程序。进程存在的目的就是执行这个程序。n 进程与程序的差别进程与程序的差别l 程序静态,进程动态;程序静态,进程动态;l 程序可长期保存,进程有生存期;程序可长期保存,进程

20、有生存期;l 一个程序可对应多个进程,一个程序可对应多个进程, 一个进程只能执行一个程序。一个进程只能执行一个程序。2.3 线程与轻进程线程与轻进程2.3.1 线程的引入线程的引入2.3.2 线程的概念线程的概念2.3.3 线程的结构线程的结构2.3.4 线程控制块线程控制块2.3.5 线程的实现线程的实现2.3.6 线程的应用线程的应用Thread: Light-weighted process2.3.1 线程的引入线程的引入n 进程切换进程切换l 早期早期OS,进程一个执行流,进程是,进程一个执行流,进程是CPU基本调度单位;基本调度单位;l 上下文涉及内容多,开销大,上下文涉及内容多,开

21、销大,”笨重笨重”;l 相关进程之间耦合关系差;相关进程之间耦合关系差;n 线程思想线程思想 有些应用需要有些应用需要多个多个涉及相同代码或数据的涉及相同代码或数据的执行流执行流, 执行流之间的切换不涉及地址空间的变化。执行流之间的切换不涉及地址空间的变化。n 解决方案解决方案l Multi-threading;l 同一进程中包含多个线程;同一进程中包含多个线程;l 上下文只涉及寄存器和用户栈,切换速度快;上下文只涉及寄存器和用户栈,切换速度快;l 相关线程之间通信方便、快捷。相关线程之间通信方便、快捷。2.3.2 线程的概念线程的概念2.3.3 线程的结构线程的结构多进程结构多进程结构(用户

22、视图用户视图)用用户户栈栈寄存器寄存器进程进程2静态数据静态数据程序代码程序代码 用用户户栈栈进程进程1动动 态态 堆堆动动 态态 堆堆静态数据静态数据程序代码程序代码 内存内存寄存器寄存器内存内存2.3.3 线程结构线程结构(Cont.)多线程结构多线程结构(用户视图用户视图)静态数据静态数据程序代码程序代码 用用户户栈栈寄存器寄存器寄存器寄存器线程线程1线程线程2进程进程动动 态态 堆堆内存内存用用户户栈栈2.3.4 线程控制块线程控制块n TCB(Thread Control Block)l 标志线程存在的数据结构,标志线程存在的数据结构, 其中包含对线程管理需要的全部信息。其中包含对线

23、程管理需要的全部信息。n 内内 容容l 线程标识线程标识l 线程状态线程状态l 调度参数调度参数l 现场现场(通用寄存器通用寄存器,PC,用户栈指针用户栈指针SP)l 链接指针链接指针n 存放位置存放位置l 用户级线程:系统空间,或目态空间用户级线程:系统空间,或目态空间(运行系统运行系统)l 核心级线程:系统空间核心级线程:系统空间2.3.5 线程的实现线程的实现 用户级别线程用户级别线程 User-level thread 核心级别线程核心级别线程 Kernel-level thread 混合线程混合线程 Hybrid approach2.3.5.

24、1 用户级别线程用户级别线程n 实现方法:实现方法:l 基于基于library函数,函数,系统不可见系统不可见;l 线程创建、撤销、状态转换在目态完成;线程创建、撤销、状态转换在目态完成;l TCB在用户空间,在用户空间,CPU调度的基本单位是进程;调度的基本单位是进程;l 每个进程每个进程一个系统栈。一个系统栈。n 优优 点:点:l 不依赖于操作系统,不依赖于操作系统, 可采用与问题相关的调度策略,调度灵活;可采用与问题相关的调度策略,调度灵活;l 同一进程中多线程切换速度快同一进程中多线程切换速度快(不需进入操作系统不需进入操作系统)。n 缺缺 点:点:l (多(多CPU时)同一进程中多个

25、线程不能真正并行;时)同一进程中多个线程不能真正并行;l 一个线程通过系统调用进入系统受阻,一个线程通过系统调用进入系统受阻, 进程中其它线程也不能执行。进程中其它线程也不能执行。 用户级别线程用户级别线程(Cont.) 核心栈核心栈PCB栈栈栈栈栈代码数据堆代码数据堆TCB进程进程线程线程用户空间用户空间系统空间系统空间用户级别线程环境示意图用户级别线程环境示意图运行系统运行系统 用户级别线程用户级别线程(Cont.) 运行系统运行系统TCB进程进程线程线程核心栈核心栈进程表进程表用户空间用户空间系统空间系统空间 用户级别线程用户级别线程(Cont.

26、) n 进程状态进程状态l 若进程的多个线程中至少有一个处于运行态,若进程的多个线程中至少有一个处于运行态, 则该进程状态为运行态;则该进程状态为运行态;l 若进程的多个线程均不处于运行态,若进程的多个线程均不处于运行态, 但至少有一个处于就绪态,则该进程处于就绪态;但至少有一个处于就绪态,则该进程处于就绪态;l 若进程的多个线程均处于等待态,若进程的多个线程均处于等待态, 则该进程处于等待态。则该进程处于等待态。 核心级别线程核心级别线程n 实现方法:实现方法:l 基于系统调用;基于系统调用;l 创建、撤销、状态转换由操作系统完成;创建、撤销、状态转换由操作系统完成;l TCB

27、保存在系统空间;保存在系统空间;l 线程是线程是CPU调度的基本单位。调度的基本单位。n 优优 点:点:l 同一进程内多线程可以并行执行同一进程内多线程可以并行执行(多多CPU);l 一线程进入核心等待,其它线程仍可执行。一线程进入核心等待,其它线程仍可执行。n 缺缺 点:线程控制和状态转换由操作系统完成。点:线程控制和状态转换由操作系统完成。l 系统开销大,同一进程内多线程切换速度慢;系统开销大,同一进程内多线程切换速度慢;l 调度算法不能灵活控制。调度算法不能灵活控制。进程状态无进程状态无实际意义!实际意义! 进程进程线程线程核心栈核心栈PCB用户空间用户空间系统空间系统空间TCB2.3.

28、5.3 混合线程混合线程(Hybrid approach)Solaris例子:例子:n User level threadl 由由Lib程序支持程序支持(创建,调度创建,调度)。n Light weighted process(LWP)l 由由Lib程序支持;程序支持;l 每个每个task至少一个至少一个LWP;l 用戶级别线程与用戶级别线程与LWP可以多对多;可以多对多;l LWP对操作系统可见。对操作系统可见。l 只有与只有与LWP相联系的用户线程向前推进。相联系的用户线程向前推进。n Kernel level threadl 由由kernel 支持;支持;l 每个每个LWP与唯一一个核心

29、线程对应;与唯一一个核心线程对应;l 核心线程可与核心线程可与CPU多对多,可多对一。多对多,可多对一。 混合线程混合线程(Solaris)CPUtask1task2task3kernelUser level threadLight weight processKernel thread2.3.6 线程的应用线程的应用多线程的优点:多线程的优点: 内在的多控制流,需要共享数据;内在的多控制流,需要共享数据;l 生产消费问题生产消费问题 多线程速度优于多进程:多线程速度优于多进程:建立和切换;建立和切换; 提高处理机与设备的并行性;提高处理机与设备的并行性; 多处理机环境多处理机环

30、境l 提高处理机利用率,加快进程推进速度提高处理机利用率,加快进程推进速度2.3.6 线程的应用线程的应用(Cont.) 例子:例子:n Word文字处理文字处理(不同代码不同代码)l 交互编辑交互编辑(T1)l 词法检查词法检查(T2)l 定时保存定时保存(T3)n HTTP server(相同代码相同代码)l 对每个对每个http请求,请求,pop up一个线程一个线程2.4 作作 业业 (Job)n 作业概念作业概念用户要求计算机系统为其完成的计算任务集合。用户要求计算机系统为其完成的计算任务集合。n 作业步作业步 (job step)l 作业处理过程中一个相对独立的步骤;作业处理过程中

31、一个相对独立的步骤;l 一般一个作业步可由一个进程完成;一般一个作业步可由一个进程完成;l 某些作业步之间可以并行。某些作业步之间可以并行。n 作业分类作业分类l 批处理作业批处理作业l 交互式作业交互式作业2.4.1 批处理作业批处理作业 (Batch process)n 作业控制块作业控制块(JCB) 标志作业存在的数据结构,标志作业存在的数据结构, 其中包含系统对作业管理所需要的全部信息。其中包含系统对作业管理所需要的全部信息。n JCB内容内容 作业名称;作业名称; 作业状态;作业状态; 调度参数;调度参数; 资源请求;资源请求; 相关进程;相关进程; 作业长度;作业长度; I/O井中

32、存放位置;井中存放位置; 记账信息记账信息2.4.1 批处理作业批处理作业(Cont.)n 作业控制语言作业控制语言(JCL) 描述批处理作业控制意图的语言。描述批处理作业控制意图的语言。n 作业说明书作业说明书 (JCL的语句序列的语句序列) 一般一特殊符号起始一般一特殊符号起始 $ JOB J1 $ FORTN $ LINK $ EXEC $ ENDJOBn 作业控制程序:作业控制程序:解释并处理作业说明书的程序。解释并处理作业说明书的程序。n 作业控制进程:作业控制进程:执行作业控制程序的进程。执行作业控制程序的进程。作业控制程序流程作业控制程序流程读入作业内容读入作业内容释放输入井空间

33、释放输入井空间顺取作业控制语句顺取作业控制语句是结束语句?是结束语句? 执行该作业步执行该作业步(可能创建子进程可能创建子进程)申请输出井空间申请输出井空间输出作业结果输出作业结果进程自我终止进程自我终止NoYes2.4.1 批处理作业批处理作业(Cont.)2.4.2 交互式作业交互式作业 n 交互式作业:交互式作业:分时系统用户的每次登录称为一个交互式作业。分时系统用户的每次登录称为一个交互式作业。n 帐户管理:帐户管理:口令文件口令文件l口令文件位置:口令文件位置:/etc/passwd文件文件l口令文件内容:口令文件内容:用户名用户名,口令口令,用户根目录用户根目录,同组用户同组用户,

34、余额余额n 用户创建与撤销用户创建与撤销l创创 建建n用户提供(用户名用户提供(用户名,口令口令,注册资金);注册资金);n系统操作员建立系统操作员建立(根目录根目录/usr/zhang, 填写填写passwd文件文件)l撤撤 销销n删除该用户目录及所有文件;删除该用户目录及所有文件;n在在passwd文件中清除对应文件中清除对应entry。2.4.2 交互式作业交互式作业(Cont.) 注册注册(登录登录)与注销与注销n 注注 册册 logon: 用户名用户名 password: *n 使使 用:用:通过通过shell与系统交互。与系统交互。n 注注 销销l显式注销:显式注销:logoutl

35、隐式注销:如隐式注销:如5分钟无输入命令分钟无输入命令提示符提示符$读入终端命令读入终端命令分析分析Logout?处理处理内部命令?内部命令?建立子进程建立子进程后台命令?后台命令?等子进程结束等子进程结束输出子进程号输出子进程号记账记账终止终止2.4.2 交互式作业交互式作业(Cont.) 终端命令解释程序终端命令解释程序Yes Yes No No No Yes 小结:作业、进程、线程小结:作业、进程、线程n 作业与进程作业与进程l 作业进入内存后变为进程;作业进入内存后变为进程;l 一个作业通常与多个进程相对应。一个作业通常与多个进程相对应。n 进程与线程进程与线程l 一个进程一般包含多个

36、线程,一个进程一般包含多个线程, 至少包含一个线程;至少包含一个线程;l 不支持多线程的系统,可视为单线程进程。不支持多线程的系统,可视为单线程进程。2.5 系统举例系统举例2.5.1 Java线程线程2.5.2 Linux进程与线程进程与线程2.5.3 Windows 2000/XP 进程、线程与纤程进程、线程与纤程 2.5.1 Java线程线程Java线程四种基本状态线程四种基本状态 n New :新建的线程:新建的线程n Runnable :可运行状态:可运行状态n Blocked :封锁状态:封锁状态n Dead :终止状态:终止状态 Java线程状态之间的转换关系图线程状态之间的转换

37、关系图 Sleep()Suspend()Runnable BlockedDeadNewStart()Stop()Resume()2.5.1 Java线程线程(Cont.)JAVA线程线程与与JVMn Java 线程是由线程是由Java虚拟机虚拟机 JVM 支持的;支持的;n JVM 位于操作系统之上;位于操作系统之上;n Java线程与操作系统线程之间的对应关系线程与操作系统线程之间的对应关系 由由JVM确定:确定:l 对于对于Windows NT的的JVM, Java线程与操作系统线程具有一对一关系;线程与操作系统线程具有一对一关系;l 对于对于Solaris的的JVM,其对应关系为多对多。

38、,其对应关系为多对多。2.5.1 Java线程线程(Cont.)2.5.2 Linux进程与线程进程与线程 n 进程与线程在系统内部具有统一的表示;进程与线程在系统内部具有统一的表示;n 进程与线程的差别通过与进程与线程的差别通过与fork不同的不同的 另外一个系统调用另外一个系统调用clone体现出来;体现出来; n Clone系统调用的形式系统调用的形式pid = clone(function,stack_ptr,sharing_flag,arg)2.5.3 Windows2000/XP 进程进程、线程与纤程、线程与纤程 . 进进 程程n Win32环境中进程的创建环境中进程

39、的创建lWin32应用执行应用执行CreateProcess调用,调用, 创建进程消息发给创建进程消息发给Win32子系统;子系统;lWin32子系统调用子系统调用进程管理器进程管理器创建进程,创建进程, 进程管理器调用进程管理器调用OM (Object Management ) 创建进程对象,然后返回对象把柄给创建进程对象,然后返回对象把柄给Win32;lWin32子系统再次调用进程管理器为该进程创建子系统再次调用进程管理器为该进程创建线程,最后线程,最后Win32将把柄返给新进程和线程。将把柄返给新进程和线程。 进进 程程 进程对象描述进程对象描述对象头部属性对象头部属性类

40、型:进程类型:进程 ( type : process )对象体属性对象体属性进程标识进程标识 (Process id)访问令牌访问令牌 (Access token)基础优先级基础优先级 (Base priority)默认处理器亲和度(默认处理器亲和度(Default processor affinity)配额限制(配额限制(Quota limits)执行时间(执行时间(Execution time)输入输入/输出记数(输出记数(I/O counters)异常异常/调试端口(调试端口(Exception/debugging ports)退出状态(退出状态(exit status)服务服务创建进程

41、(创建进程(Create process)打开进程(打开进程(Open process)查询进程信息(查询进程信息(Query process information)设置进程信息(设置进程信息(Set process information)当前进程(当前进程(Current process)终止进程(终止进程(Terminate process)分配分配/释放虚拟存储(释放虚拟存储(Allocate/free virtual memory)读读/写虚拟存储(写虚拟存储(Read/write virtual memory)保护虚拟存储(保护虚拟存储(Protect virtual memor

42、y)加锁加锁/开锁虚存(开锁虚存(Lock/unlock virtual memory)查询虚拟存储(查询虚拟存储(Query virtual memory)刷新虚拟存储(刷新虚拟存储(Flush virtual memory) 线线 程程Windows 2000/XP 线程线程n 每个进程至少包含一个线程,每个进程至少包含一个线程, 线程是核心调度的基本单位;线程是核心调度的基本单位;n 每个线程包括两个栈:系统栈和用户栈;每个线程包括两个栈:系统栈和用户栈;n 线程通过线程通过Win32调用创建,调用创建, 可以访问进程内的对象;可以访问进程内的对象;n 当进程内所有线程终止时,进程终止。当进程内所有线程终止时,进程终止。 线线 程程 线程对象描述线程对象描述对象头部属性对象头部属性类

温馨提示

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

评论

0/150

提交评论