计算机操作系统教程(第三版)左万历.ppt

上传人:牧羊曲112 文档编号:6606461 上传时间:2023-11-17 格式:PPT 页数:64 大小:1.73MB
返回 下载 相关 举报
计算机操作系统教程(第三版)左万历.ppt_第1页
第1页 / 共64页
计算机操作系统教程(第三版)左万历.ppt_第2页
第2页 / 共64页
计算机操作系统教程(第三版)左万历.ppt_第3页
第3页 / 共64页
计算机操作系统教程(第三版)左万历.ppt_第4页
第4页 / 共64页
计算机操作系统教程(第三版)左万历.ppt_第5页
第5页 / 共64页
点击查看更多>>
资源描述

《计算机操作系统教程(第三版)左万历.ppt》由会员分享,可在线阅读,更多相关《计算机操作系统教程(第三版)左万历.ppt(64页珍藏版)》请在三一办公上搜索。

1、1,第二章 进程、线程与作业,2.1 多道程序设计Multi-programming2.2 进程的引入Process 2.3 线程与轻进程Thread and light-weighted process2.4 作业Job,Active objects,2,2.1 多道程序设计,Multi-programming,全部,处部时间,作,业道数,吞吐量,=,提高系统效率(吞吐量),多道程序设计目标,3,2.1.1 单道程序设计的缺点2.1.2 多道程序设计的提出2.1.3 多道程序设计的问题,4,2.1.1 单道程序设计的缺点,处理机利用率低设备利用率低内存利用率低,运行程序A,CPU,设备1,运

2、行程序A,t,t1,t2,t5,t6,设备2,5,2.1.2 多道程序设计的提出,CPU,设备1,程序A,t,t1,t2,t5,t6,设备2,程序B,提高处理机、设备、内存等各种资源的利用率,从而提高系统效率。,程序A,t3,t4,6,2.1.2 多道程序设计的提出(Cont.),增加同时运行程序的道数可以提高资源利用率,从而提高系统效率,但道数应与系统资源数量相当。道数过少,系统资源利用率低。道数过多,系统开销(system overhead)增大,程序响应速度下降。,7,2.1.3 多道程序设计的问题,处理机资源的管理程序个数处理机个数(如何分配?)存储资源的管理地址空间的相对独立性、共享

3、性内存、外存(swap space)的分配与去配设备资源管理分配策略IO控制,8,程序的并序执行,程序的顺序执行,9,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 进程与程序间的联系与差别,10,多道系统中的程序:推进,暂停,推进,暂停,.暂停:保存现场(PSW+PC,寄存器)推进:恢复现场(寄存器,PSW+PC)暂停原因:(1)自身原因:等待资源,启动IO(2)剥夺CPU给其它程序运行机会

4、,2.2 进程的引入(Cont.),11,2.2.1 进程的概念,定义:可参与并发执行的程序称为进程。进程是具有一定独立功能的程序关于一个数据集合的一次运行活动。定义强调两个方面:动态:执行中的程序;并发:可与其他进程同时执行。,12,并发 vs.并行,并发:concurrent宏观同时,“交替执行”,不要求多个CPU并行:parallel微观同时,要求多个CPU“并行算法”,13,2.2.2 进程状态及状态转换,2.2.2.1 进程状态(基本状态)运行态(RUN):占有CPU正在向前推进就绪态(READY):可以运行,但未得到CPU等待态(WAIT):等待某一事件发生2.2.2.2 状态转换

5、就绪运行:获得处理机运行就绪:剥夺处理机运行等待:申请资源未得到,启动IO等待就绪:得到资源,IO中断,14,2.2.2.2 进程状态转换图,演示,15,2.2.2.2 进程状态转换图,初创,终止,创建,结束,16,2.2.3 进程控制块(PCB),标志进程存在的数据结构,其中保存系统管理进程所需的全部信息PCB内容:(不同系统不尽相同)进程标识(pid)家族联系进程状态 地址信息现场信息 打开文件调度参数 消息指针所属用户(uid)队列指针,PCB是进程存在的唯一标志。进程的创建,进程的撤销,请见教材29页分析,Process Control Block,17,2.2.4 进程的组成与上下文

6、,进程的组成进程控制块(process control block)建立进程建立PCB撤销PCB撤销进程程序代码(code)数据(data)堆栈(stack+heap)栈:保存返回点、参数、返回值、局部变量堆:动态变量,18,2.2.4 进程的组成与上下文,进程的表记,PCB,程序,PCB,代码,数据+堆栈,表记1,表记2,系统空间,用户空间,19,2.2.4 进程的组成与上下文,进程上下文(process context)进程的物理实体与支持进程运行的物理环境统称为进程上下文PCB+程序系统环境:地址空间,系统栈,打开文件表,上下文切换(context switch)由一个进程的上下文转到另

7、外一个进程的上下文系统开销(system overhead)运行操作系统程序完成系统管理工作所花费的时间和空间,20,2.2.5 进程的队列,1.就绪队列:系统一个或若干个(根据调度算法确定)2.等待队列:每个等待事件一个3.运行 队列:每个处理机一个,PCB构成的队列:(不一定FIFO,单向或双向),21,进程队列模型,等待队列1,等待队列2,等待队列n,CPU,创建,完成,时间片用完,等待事件1,等待事件2,等待事件n,事件1发生,事件2发生,事件n发生,22,2.2.6 进程的类型与特征,进程类型系统进程运行操作系统程序,完成系统管理(服务)功能.用户进程运行用户(应用)程序,为用户服务

8、。,23,2.2.6 进程的类型与特征(Cont.),进程的特征并发性:可以与其它进程一道向前推进;动态性:动态产生、消亡,生存期内状态动态变化;独立性:一个进程是可以调度的基本单位;交互性:同时运行的进程可能发生相互作用;异步性:进程以各自独立,不可预知的速度向前推进;结构性:每个进程有一个PCB。,24,2.2.7 进程间相互联系与相互作用,相互联系相关进程同一家族的进程可以共享文件,需要相互通讯,协调推进速度父进程可以监视子进程,子进程完成父进程交给的任务。无关进程没有逻辑关系、同时执行的进程。有资源竞争关系,互斥、死锁、饿死。,25,2.2.7 进程间相互联系与相互作用,相互作用,1.

9、直接相互作用:发生在相关进程之间,2.间接相互作用:发生在任何进程之间,R,P2,P1,sync,send,receive,P1:,P2:,hold,wait,26,2.2.8 进程的创建与撤销,进程的创建建立PCB,分配内存,加载程序,入就绪链UNIX:pid=fork()进程的撤销去配资源,撤销PCB,通知父进程UNIX:exit()除初始进程外,其它进程由(父)进程创建,并形成进程家族。,演示,27,操作系统一旦发现了要求创建进程的事件后,便调用进程创建原语按以下过程创建一新进程:,28,进程的终止过程,29,2.2.9 进程与程序的联系与差别,进程与程序的联系进程包括一个程序进程存在的

10、目的就是执行这个程序进程与程序的差别程序静态,进程动态程序可长期保存,进程有生存期一个程序可对应多个进程,一个进程只能执行一个程序,30,2.3 线程与轻进程,2.3.1 线程的引入2.3.2 线程的概念2.3.3 线程的结构2.3.4 线程控制块2.3.5 线程的实现2.3.6 线程的应用2.3.7 Java线程,ThreadLight-weighted process,31,2.3.1 线程的引入,进程切换上下文涉及内容多,开销大,“笨重”PCB+程序系统环境:地址空间,系统栈,打开文件表,相关进程之间耦合关系差解决方案Multi-threading同一进程中包含多个线程上下文只涉及寄存器

11、和用户栈,切换速度快相关线程之间通讯方便、快捷,32,2.3.2 线程的概念,进程中一个相对独立的执行流。进程 vs.线程进程是资源分配单位线程是执行单位多线程优点切换速度快(地址空间不变)(light weighted)系统开销小通讯容易(共享数据空间),33,2.3.3 线程结构,寄存器,多进程结构(用户视图),34,2.3.3 线程结构,静态数据,程序代码,栈,栈,寄存器,寄存器,线程1:,线程2:,进程,动 态 堆,内存,多线程结构(用户视图),35,2.3.3 线程结构(另一种表示),text segment,data segment,Program counter,Task:,36

12、,2.3.4 线程控制块,TCB(Thread control block)标志线程存在的数据结构,其中包含对线程管理需要的全部信息内容线程标识线程状态调度参数现场(通用寄存器,PC,SP)链接指针存放位置用户级线程:目态空间(运行系统)核心级线程:系统空间,37,2.3.5 线程的实现,2.3.1 用户级别线程User-level thread2.3.2 核心级别线程Kernel-level thread2.3.3 混合线程Hybrid approach,38,2.3.5.1 用户级别线程,实现方法:基于library函数,系统不可见线程创建、撤销、状态转换在目态完成TCB在用户空间,每个进

13、程一个系统栈优点:不依赖于操作系统,调度灵活同一进程中多线程切换速度快(不需进入操作系统)缺点:同一进程中多个线程不能真正并行一个线程进入系统受阻,进程中其它线程不能执行,39,2.3.5.1 用户级别线程,运行系统,TCB,进程,线程,核心栈,进程表,用户空间,系统空间,40,2.3.5.2 核心级别线程,实现方法:基于系统调用创建、撤销、状态转换由操作系统完成优点:同一进程内多线程可以并行执行一线程进入核心等待,其它线程仍可执行缺点:系统开销大,同一进程内多线程切换速度慢调度算法不能灵活控制,41,2.3.5.2 核心级别线程,进程,线程,核心栈,进程表,用户空间,系统空间,TCB,42,

14、2.3.5.3 混合线程,Solaris例子User level thread:由Lib程序支持(创建,调度)Light weighted process(LWP):由Lib程序支持每个task至少一个LWP用戶级别线程与LWP可以多对多LWP对操作系统可见只有与LWP相联系的用户线程向前推进Kernel level thread:由kernel 支持每个LWP与唯一一个核心线程对应核心线程可与CPU多对多,可对一,43,2.3.5.3 混合线程(Solaris),CPU,task1,task2,task3,kernel,User level thread,Lightweight proces

15、s,Kernel thread,44,2.3.6 线程的应用,内在的多控制流,需要共享数据生产消费问题多线程优于多进程快100倍!提高处理机与设备的并行性多处理机环境提高处理机利用率,加快进程推进速度,45,2.3.6 线程的应用,例子:Word字处理(不同代码)交互编辑(T1)词法检查(T2)定时保存(T3)HTTP server(相同代码)对每个http请求,pop up一个线程,46,2.4 作业(Job),作业概念用户要求计算机系统为其完成的计算任务集合。作业步(job step)作业处理过程中一个相对独立的步骤一般一个作业步可由一个进程完成某些作业步之间可以并行作业分类批处理作业交互

16、式作业,47,2.4.1 批处理作业,作业控制语言(JCL)描述批处理作业控制意图的语言作业说明书(JCL语句的序列)一般一特殊符号起始$JOB J1$FORTN$LINK$EXEC$ENDJOB作业控制程序解释并处理作业说明书的程序作业控制进程执行作业控制程序的进程,48,作业控制进程,读入作业内容,释放输入井空间,顺取作业控制语句,是结束语句,执行该作业步(可能创建子进程),申请输出井空间,输出作业结果,进程自我终止,F,T,49,2.4.2 交互式作业,帐户管理/etc/passwd文件(用户名,口令,用户根目录,同组用户,余额)创建与撤销创建:用户提供(用户名,口令,资金)系统操作员建

17、立(根目录/usr/zhang,填写passwd文件)撤销:删除该用户目录及所有文件在passwd文件中清除对应entry,50,2.4.2 交互式作业,注册与注销注册:logon:用户名password:*(使用)注销:显式注销:logoff隐式注销:(如5分钟无输入命令),51,命令解释程序,提示符$,读入终端命令,分析,Logout,内部命令,处理,建立子进程,后台命令,等子进程结束,输出子进程号,记帐,T,F,T,F,F,T,52,小结:作业、进程、线程,作业与进程作业进入内存后变为进程一个作业通常与多个进程相对应进程与线程一个进程一般包含多个线程,至少包含一个线程不支持多线程的系统,

18、可视为单线程进程,53,2.5.1 Java线程,Java线程四种基本状态 New:新建的线程Runnable:可运行状态Blocked:封锁状态Dead:终止状态,54,Java线程,Java线程状态之间的转换关系图,Sleep()Suspend()IO,Runnable,Blocked,Dead,New,Start(),Stop(),Resume(),55,JAVA线程与JVM,Java线程是由Java虚拟机JVM支持的 JVM位于操作系统之上 Java线程与操作系统线程之间的对应关系由JVM确定 对于Windows NT的JVM,Java线程与操作系统线程具有一对一关系;对于Solari

19、s的JVM,其对应关系为多对多.,56,2.5.2 Linux进程与线程,进程与线程在系统内部具有统一的表示进程与线程的差别通过与fork不同的另外一个系统调用clone体现出来 Clone系统调用的形式 pid=clone(function,stack_ptr,sharing_flag,arg)Sharing-flag:CLONE_VM,CLONE_FILES,CLONE_SIGHAND,CLONE_PID,57,2.5.3 Windows2000/XP进程、线程与纤程,进程在Win32环境中创建进程的过程当Win32应用执行CreateProcess调用,消息被发给Win32子系统,后者调

20、用进程管理器创建进程,进程管理器调用OM创建进程对象,然后返回对象把柄给Win32.Win32子系统再次调用进程管理器为该进程创建线程,最后Win32将把柄返给新进程和线程,在XP下查看进程的DOS命令:tasklist,58,进程对象描述图,59,线程对象描述图,60,就绪,等待,初始,备用,运行,转换,终止,创建线程对象,重新初始化,执行完,入就绪队列,剥夺,唤醒,唤醒栈在外,换入内核栈,切换,选中,等待某对象,抢先,Windows线程状态转换图,61,第二章 重点难点学习提示,1、进程的基本概念(1)为什么要引入进程:引入进程是为了使内存中的多道程序程序能够正确地并发执行。(2)进程的基

21、本特征:动态性、并发性、独立性、异步性和结构特征、交互性;注意进程和程序的异同。(3)进程的基本状态:就绪,执行,阻塞。掌握三种状态的转换原因。(4)进程控制块。掌握PCB的作用及包含的内容。,62,2、线程的基本概念(1)为什么引入线程(2)线程的特征:轻型、可独立运行、可共享其所隶属的进程所拥有的资源。(3)如何创建和终止线程。,63,3、PCB的作用是什么?为什么说PCB是进程存在的惟一标志?解:进程控制块的作用:是使一个在多道程序环境下,不能独立运行的程序,成为一个能独立运行的基本单位、一个能与其他进程并发执行的进程。在创建进程时,系统将为他配置一个PCB;在进程调度时,执行中的进程,

22、当进程因某种原因而暂停执行时,也必须将断点的现场信息保存到它的PCB中;当进程结束时,系统将回收它的PCB。,64,在创建进程时,系统将为他配置一个PCB;在进程调度时,系统将根据PCB中的状态和优先级等信息来选择新进程,然后将老进程的现场信息保存到它的PCB中,再根据新进程PCB中所保存的处理机状态信息来恢复运行的现场;执行中的进程,如果需要访问文件或需要与合作进程实现同步或通信,则也都需要访问PCB;当进程因某种原因而暂停执行时,也必须将断点的现场信息保存到它的PCB中;当进程结束时,系统将回收它的PCB。可见,在进程的整个生命周期中,系统总是通过其PCB对进程进行控制和管理,所以说PCB是进程存在的惟一标志。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号