第02操作系统课件课件_第1页
第02操作系统课件课件_第2页
第02操作系统课件课件_第3页
第02操作系统课件课件_第4页
第02操作系统课件课件_第5页
已阅读5页,还剩54页未读 继续免费阅读

下载本文档

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

文档简介

1、第二章第二章 进程、线程与作业进程、线程与作业n2.1 多道程序设计多道程序设计nMulti-programmingn2.2 进程的引入进程的引入nProcess n2.3 线程与轻进程线程与轻进程nThread and light-weighted processn2.4 作业作业nJobActive objects2.1 多道程序设计多道程序设计n2.1.1 单道程序设计的缺点单道程序设计的缺点n2.1.2 多道程序设计的提出多道程序设计的提出n2.1.3 多道程序设计的问题多道程序设计的问题 Multi-programming多道程序设计目标多道程序设计目标n提高系统效率提高系统效率(

2、(吞吐量吞吐量) )全部处理时间作业道数吞吐量 2.1.1 单道程序设计的缺点单道程序设计的缺点n处理机利用率低处理机利用率低n设备利用率低设备利用率低n内存利用率低内存利用率低运行程序运行程序ACPU设备设备1运行程序运行程序Att1t2t5t6设备设备22.1.2 多道程序设计的提出多道程序设计的提出CPU设备设备1程序程序Att1t2t5t6设备设备2程序程序Bn提高处理机、设备、内存等各种资源的提高处理机、设备、内存等各种资源的利用率,从而提高系统效率。利用率,从而提高系统效率。程序程序At3t42.1.2 多道程序设计的提出多道程序设计的提出(Cont.)n增加同时运行程序的道数可以

3、提高资源增加同时运行程序的道数可以提高资源利用率,从而提高系统效率,但道数应利用率,从而提高系统效率,但道数应与系统资源数量相当。与系统资源数量相当。n道数过少,系统资源利用率低。道数过少,系统资源利用率低。n道数过多,系统开销道数过多,系统开销(system overhead)增大,程序响应速度下降。增大,程序响应速度下降。2.1.3 多道程序设计的问题多道程序设计的问题n处理机资源的管理处理机资源的管理n程序个数程序个数 处理机个数处理机个数(如何分配如何分配?)n存储资源的管理存储资源的管理n地址空间的相对独立性、共享性地址空间的相对独立性、共享性n内存、外存内存、外存(swap spa

4、ce)的分配与去配的分配与去配n设备资源管理设备资源管理n分配策略分配策略nIO控制控制2.2 进程的引入进程的引入n2.2.1 进程的概念进程的概念n2.2.2 进程状态及状进程状态及状态转换态转换n2.2.3 进程控制块进程控制块n2.2.4 进程的组成与进程的组成与上下文上下文n2.2.5 进程的队列进程的队列n2.2.6 进程的类型与进程的类型与特征特征n2.2.7 进程间相互联进程间相互联系与相互作用系与相互作用n2.2.8 进程的创建与进程的创建与撤销撤销n2.2.9 进程与程序间进程与程序间的联系与差别的联系与差别多道系统中的程序:多道系统中的程序: 暂停:保存现场暂停:保存现场

5、(PSW+PC,寄存器),寄存器)推进:恢复现场推进:恢复现场(寄存器,寄存器,PSW+PC)暂停原因:暂停原因:(1) 自身原因:等待资源,启动自身原因:等待资源,启动IO (2) 剥夺剥夺CPU给其它程序运行机会给其它程序运行机会2.2 进程的引入进程的引入(Cont.)2.2.1 进程的概念进程的概念n定义:定义:n可参与并发执行的程序称为进程。可参与并发执行的程序称为进程。n进程是具有一定独立功能的程序关于一个数进程是具有一定独立功能的程序关于一个数据集合的一次运行活动。据集合的一次运行活动。n定义强调两个方面:定义强调两个方面:n动态:执行中的程序动态:执行中的程序;n并发:可与其他

6、进程同时执行。并发:可与其他进程同时执行。并发并发 vs. 并行并行n并发:并发:concurrentn宏观同时,宏观同时,“交替执行交替执行”,不要求多个,不要求多个CPUn并行:并行:paralleln微观同时,要求多个微观同时,要求多个CPUn“并行算法并行算法”2.2.2 进程状态及状态转换进程状态及状态转换n 进程状态进程状态(基本状态基本状态)n运行态运行态(RUN): 占有占有CPU正在向前推进正在向前推进n就绪态就绪态(READY): 可以运行,但未得到可以运行,但未得到CPUn等待态等待态(WAIT): 等待某一事件发生等待某一事件发生n 状态转换

7、状态转换n就绪就绪运行:获得处理机运行:获得处理机n运行运行就绪:剥夺处理机就绪:剥夺处理机n运行运行等待:申请资源未得到,启动等待:申请资源未得到,启动IOn等待等待就绪:得到资源,就绪:得到资源,IO中断中断就绪就绪等待等待运行运行获得处理机获得处理机剥夺处理机剥夺处理机等待事件等待事件事件发生事件发生 进程状态转换图进程状态转换图 进程状态转换图进程状态转换图就绪就绪等待等待运行运行获得处理机获得处理机剥夺处理机剥夺处理机等待事件等待事件事件发生事件发生初创初创终止终止创建创建结束结束2.2.3 进程控制块进程控制块(PCB)n标志进程存在的数据结构,其中保存

8、系标志进程存在的数据结构,其中保存系统管理进程所需的全部信息统管理进程所需的全部信息nPCB内容内容:(不同系统不尽相同不同系统不尽相同)n进程标识进程标识(pid) 家族联系家族联系n进程状态进程状态 地址信息地址信息n现场信息现场信息 打开文件打开文件n调度参数调度参数 消息指针消息指针n所属用户所属用户(uid) 队列指针队列指针Process Control Block2.2.4 进程的组成与上下文进程的组成与上下文n进程的组成进程的组成n进程控制块进程控制块(process control block)n建立进程建立进程建立建立PCBn撤销撤销PCB撤销进程撤销进程n程序程序n代码代

9、码(code)n数据数据(data)n堆栈堆栈(stack+heap)n栈:保存返回点、参数、返回值、局部变量栈:保存返回点、参数、返回值、局部变量n堆:动态变量堆:动态变量2.2.4 进程的组成与上下文进程的组成与上下文n进程的表记进程的表记PCB程序程序PCB代码代码数据数据+堆栈堆栈表记表记1表记表记2系统空间系统空间用户空间用户空间l进程上下文(进程上下文(process context)进程的物理实体与支持进程运行的物理环境统称为进程的物理实体与支持进程运行的物理环境统称为进程上下文进程上下文lPCB+程序程序l系统环境:地址空间,系统栈,打开文件表,系统环境:地址空间,系统栈,打开

10、文件表,l上下文切换(上下文切换(context switch)由一个进程的上下文转到另外一个进程的上下文由一个进程的上下文转到另外一个进程的上下文l系统开销(系统开销(system overhead)运行操作系统程序完成系统管理工作所花费的时间运行操作系统程序完成系统管理工作所花费的时间和空间和空间2.2.5 进程的队列进程的队列PCBPCBPCBhead1. 就绪队列:系统一个或若干个(根据调度算法确定)就绪队列:系统一个或若干个(根据调度算法确定)2. 等待队列:每个等待事件一个等待队列:每个等待事件一个3. 运行指示字:每个处理机一个运行指示字:每个处理机一个PCB构成的队列:(不一定

11、构成的队列:(不一定FIFO,单向或双向),单向或双向)2.2.6 进程的类型与特征进程的类型与特征n进程类型进程类型n系统进程系统进程n运行操作系统程序,完成系统管理运行操作系统程序,完成系统管理(服务服务)功能功能.n例如:例如:UNIX #0 - sched, #1 - initn用户进程用户进程n运行用户运行用户(应用应用)程序,为用户服务。程序,为用户服务。n例如:例如:UNIX vi, shell, cc2.2.6 进程的类型与特征进程的类型与特征(Cont.)n进程的特征进程的特征n并发性并发性:可以与其它进程一道向前推进;:可以与其它进程一道向前推进;n动态性动态性:动态产生、

12、消亡,生存期内状态动:动态产生、消亡,生存期内状态动态变化;态变化;n独立性独立性:一个进程是可以调度的基本单位;:一个进程是可以调度的基本单位;n交往性交往性:同时运行的进程可能发生相互作用;:同时运行的进程可能发生相互作用;n异步性异步性:进程以各自独立,不可预知的速度:进程以各自独立,不可预知的速度向前推进;向前推进;n结构性结构性:每个进程有一个:每个进程有一个PCB。2.2.7 进程间相互联系与相互作用进程间相互联系与相互作用n相互联系相互联系n相关进程相关进程n同一家族的进程同一家族的进程n可以共享文件,需要相互通讯,协调推进速度可以共享文件,需要相互通讯,协调推进速度n父进程可以

13、监视子进程,子进程完成父进程交给父进程可以监视子进程,子进程完成父进程交给的任务。的任务。n无关进程无关进程n没有逻辑关系、同时执行的进程。没有逻辑关系、同时执行的进程。n有资源竞争关系,互斥、死锁、饿死。有资源竞争关系,互斥、死锁、饿死。2.2.7 进程间相互联系与相互作用进程间相互联系与相互作用n相互作用相互作用RP2P1syncsendreceiveP1:P2:holdwait2.2.8 进程的创建与撤销进程的创建与撤销n进程的创建进程的创建n建立建立PCB,分配内存,加载程序,入就绪链,分配内存,加载程序,入就绪链nUNIX:pid=fork(),exec(prog,args) n进程

14、的撤销进程的撤销n去配资源,撤销去配资源,撤销PCB,通知父进程,通知父进程nUNIX:exit() vs. killn除初始进程外,其它进程由除初始进程外,其它进程由(父父)进程创建,并进程创建,并形成进程家族。形成进程家族。2.2.9 进程与程序的联系与差别进程与程序的联系与差别n进程与程序的联系进程与程序的联系n进程包括一个程序进程包括一个程序n进程存在的目的就是执行这个程序进程存在的目的就是执行这个程序n进程与程序的差别进程与程序的差别n程序静态,进程动态程序静态,进程动态n程序可长期保存,进程有生存期程序可长期保存,进程有生存期n一个程序可对应多个进程,一个进程只能执行一个一个程序可

15、对应多个进程,一个进程只能执行一个程序程序2.3 线程与轻进程线程与轻进程n2.3.1 线程的引入线程的引入n2.3.2 线程的概念线程的概念n2.3.3 线程的结构线程的结构n2.3.4 线程控制块线程控制块n2.3.5 线程的实现线程的实现n2.3.6 线程的应用线程的应用n2.3.7 Java线程线程ThreadLight-weighted process2.3.1 线程的引入线程的引入n进程切换进程切换n上下文涉及内容多,开销大,上下文涉及内容多,开销大,“笨重笨重”nPCB+程序程序n系统环境:地址空间,系统栈,打开文件表,系统环境:地址空间,系统栈,打开文件表,n相关进程之间耦合关

16、系差相关进程之间耦合关系差n解决方案解决方案nMulti-threadingn同一进程中包含多个线程同一进程中包含多个线程n上下文只涉及寄存器和用户栈,切换速度快上下文只涉及寄存器和用户栈,切换速度快n相关线程之间通讯方便、快捷相关线程之间通讯方便、快捷2.3.2 线程的概念线程的概念2.3.3 线程结构线程结构寄存器寄存器静态数据静态数据程序代码程序代码 栈栈寄存器寄存器进程进程2动动 态态 堆堆内存内存多进程结构(用户视图)多进程结构(用户视图)静态数据静态数据程序代码程序代码 栈栈进程进程1动动 态态 堆堆内存内存寄存器寄存器2.3.3 线程结构线程结构静态数据静态数据程序代码程序代码

17、栈栈栈栈寄存器寄存器寄存器寄存器线程线程1:线程线程2:进程进程动动 态态 堆堆内存内存多线程结构(用户视图)多线程结构(用户视图)2.3.3 线程结构(另一种表示)线程结构(另一种表示)text segmentdata segmentProgram counterTask:2.3.4 线程控制块线程控制块nTCB(Thread control block)n标志线程存在的数据结构,标志线程存在的数据结构, 其中包含对线程管理需其中包含对线程管理需要的全部信息要的全部信息n内容内容n线程标识线程标识n线程状态线程状态n调度参数调度参数n现场现场(通用寄存器通用寄存器,PC,SP)n存放位置存放

18、位置n用户级线程:目态空间(运行系统)用户级线程:目态空间(运行系统)n核心级线程:系统空间核心级线程:系统空间2.3.5 线程的实现线程的实现n2.3.1 用户级别线程用户级别线程nUser-level threadn2.3.2 核心级别线程核心级别线程nKernel-level threadn2.3.3 混合线程混合线程nHybrid approach 用户级别线程用户级别线程n实现方法:实现方法:n基于基于library函数,系统不可见函数,系统不可见n线程创建、撤销、状态转换在目态完成线程创建、撤销、状态转换在目态完成nTCB在用户空间,每个进程一个系统栈在用户空间,每

19、个进程一个系统栈n优点:优点:n不依赖于操作系统,调度灵活不依赖于操作系统,调度灵活n同一进程中多线程切换速度快同一进程中多线程切换速度快(不需进入操作系统不需进入操作系统)n缺点:缺点:n同一进程中多个线程不能真正并行同一进程中多个线程不能真正并行n一个线程进入系统受阻,进程中其它线程不能执行一个线程进入系统受阻,进程中其它线程不能执行 用户级别线程用户级别线程运行系统运行系统TCB进程进程线程线程核心栈核心栈进程表进程表用户空间用户空间系统空间系统空间 核心级别线程核心级别线程n实现方法:实现方法:n基于系统调用基于系统调用n创建、撤销、状态转换由操作系统完成创

20、建、撤销、状态转换由操作系统完成n优点:优点:n同一进程内多线程可以并行执行同一进程内多线程可以并行执行n一线程进入核心等待,其它线程仍可执行一线程进入核心等待,其它线程仍可执行n缺点:缺点:n系统开销大,同一进程内多线程切换速度慢系统开销大,同一进程内多线程切换速度慢n调度算法不能灵活控制调度算法不能灵活控制进程进程线程线程核心栈核心栈进程表进程表用户空间用户空间系统空间系统空间TCB 混合线程混合线程nSolaris例子例子nUser level thread:n由由Lib程序支持(创建程序支持(创建,调度)调度)nLight weighted process(LWP):n由

21、由Lib程序支持程序支持n每个每个task至少一个至少一个LWPn用戶级别线程与用戶级别线程与LWP可以多对多可以多对多nLWP对操作系统可见对操作系统可见n只有与只有与LWP相联系的用户线程向前推进相联系的用户线程向前推进nKernel level thread:n由由kernel 支持支持n每个每个LWP与唯一一个核心线程对应与唯一一个核心线程对应n核心线程可与核心线程可与CPU多对多,可对一多对多,可对一 混合线程混合线程(Solaris)CPUtask1task2task3kernelUser level threadLightweight processKernel t

22、hread2.3.6 线程的应用线程的应用n内在的多控制流内在的多控制流,需要共享数据需要共享数据n生产消费问题生产消费问题n多线程优于多进程多线程优于多进程n快快100倍倍!n提高处理机与设备的并行性提高处理机与设备的并行性n多处理机环境多处理机环境n提高处理机利用率,加快进程推进速度提高处理机利用率,加快进程推进速度2.3.6 线程的应用线程的应用n例子:例子:nWord字处理(不同代码)字处理(不同代码)n交互编辑交互编辑(T1)n词法检查词法检查(T2)n定时保存定时保存(T3)nHTTP server(相同代码)(相同代码)n对每个对每个http请求,请求,pop up一个线程一个线

23、程2.4 作业(作业(Job) )n作业概念作业概念n用户要求计算机系统为其完成的计算任务集合。用户要求计算机系统为其完成的计算任务集合。n作业步(作业步(job step)n作业处理过程中一个相对独立的步骤作业处理过程中一个相对独立的步骤n一般一个作业步可由一个进程完成一般一个作业步可由一个进程完成n某些作业步之间可以并行某些作业步之间可以并行n作业分类作业分类n批处理作业批处理作业n交互式作业交互式作业2.4.1 批处理作业批处理作业n作业控制语言作业控制语言(JCL) )n描述批处理作业控制意图的语言描述批处理作业控制意图的语言n作业说明书作业说明书(JCL语句的序列)语句的序列)n一般

24、一特殊符号起始一般一特殊符号起始n$JOB J1n$FORTN n$LINK n$EXEC n$ENDJOBn作业控制程序作业控制程序n解释并处理作业说明书的程序解释并处理作业说明书的程序n作业控制进程作业控制进程n执行作业控制程序的进程执行作业控制程序的进程作业控制进程作业控制进程读入作业内容读入作业内容释放输入井空间释放输入井空间顺取作业控制语句顺取作业控制语句是结束语句是结束语句 执行该作业步执行该作业步(可能创建子进程可能创建子进程)申请输出井空间申请输出井空间输出作业结果输出作业结果进程自我终止进程自我终止FT2.4.2 交互式作业交互式作业 n帐户管理帐户管理n/etc/passw

25、d文件文件n(用户名用户名,口令口令,用户根目录用户根目录,同组用户同组用户,余额余额)n创建与撤销创建与撤销n创建:创建:n用户提供(用户名用户提供(用户名,口令口令,资金)资金)n系统操作员建立(根目录系统操作员建立(根目录/usr/zhang, 填写填写passwd文件)文件)n撤销:撤销:n删除该用户目录及所有文件删除该用户目录及所有文件n在在passwd文件中清除对应文件中清除对应entry2.4.2 交互式作业交互式作业n注册与注销注册与注销n注册:注册:nlogon: 用户名用户名npassword: *n(使用使用)n注销:注销:n显式注销:显式注销:nlogoffn隐式注销:

26、隐式注销:n(如(如5分钟无输入命令)分钟无输入命令)命令解释程序命令解释程序提示符提示符$读入终端命令读入终端命令分析分析Logout内部命令内部命令处理处理建立子进程建立子进程后台命令后台命令等子进程结束等子进程结束输出子进程号输出子进程号记帐记帐TFTFFT小结:作业、进程、线程小结:作业、进程、线程n作业与进程作业与进程n作业进入内存后变为进程作业进入内存后变为进程n一个作业通常与多个进程相对应一个作业通常与多个进程相对应n进程与线程进程与线程n一个进程一般包含多个线程,至少包含一个一个进程一般包含多个线程,至少包含一个线程线程n不支持多线程的系统,可视为单线程进程不支持多线程的系统,

27、可视为单线程进程 2.5.1 Java线程线程 nJava线程四种基本状态线程四种基本状态 nNew:新建的线程:新建的线程nRunnable:可运行状态:可运行状态nBlocked:封锁状态:封锁状态nDead:终止状态:终止状态 Java线程线程nJavaJava线程状态之间的转换关系图线程状态之间的转换关系图 Sleep()Suspend()IORunnableBlockedDeadNewStart()Stop()Resume()JAVA线程线程与与JVMnJava线程是由线程是由Java虚拟机虚拟机JVM支持的支持的 nJVM位于操作系统之上位于操作系统之上 nJava线程与操作系统线

28、程之间的对应关线程与操作系统线程之间的对应关系由系由JVM确定确定 n对于对于Windows NT的的JVM,Java线程与操线程与操作系统线程具有一对一关系作系统线程具有一对一关系; n对于对于Solaris的的JVM,其对应关系为多对多,其对应关系为多对多.2.5.2 Linux进程与线程进程与线程 n进程与线程在系统内部具有统一的表示进程与线程在系统内部具有统一的表示n进程与线程的差别通过与进程与线程的差别通过与fork不同的另不同的另外一个系统调用外一个系统调用clone体现出来体现出来 nClone系统调用的形式系统调用的形式 npid = clone(function,stack_

29、ptr,sharing_flag,arg)pid = clone(function,stack_ptr,sharing_flag,arg) nSharing-flag:Sharing-flag:nCLONE_VM, CLONE_FILES, CLONE_SIGHAND, CLONE_PIDCLONE_VM, CLONE_FILES, CLONE_SIGHAND, CLONE_PID2.5.3 Windows2000/XP进程、线程与纤程 n进程n在Win32环境中创建进程的过程n当Win32应用执行CreateProcess调用,消息被发给Win32子系统,后者调用进程管理器创建进程,进程管理器调用OM创建进程对象,然后返回对象把柄给Win32.Win32子系统再次调用进程管理器为该进程创建线程,最后Win32将把柄返给新进程和线程 对象头部属性Type: Process对象体属性进程标识(Process id)访问令牌(Access token)基础优先级(Base priority)缺省亲合处理机(Default processor affinity)配额限制(Quota limits)执行时间(Execution time)输入/输出记数(I/O counters)执行/调试端口(Exception

温馨提示

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

评论

0/150

提交评论