《【教学课件】第二章进程、线程与作业.ppt》由会员分享,可在线阅读,更多相关《【教学课件】第二章进程、线程与作业.ppt(43页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、软件教研室软件教研室第二章 进程、线程与作业多道程序设计Multi-programming 进程的引入Process 线程与轻进程Thread and light-weighted process作业Job软件教研室软件教研室2.1 多道程序设计单道程序设计的缺点多道程序设计的提出多道程序设计的问题软件教研室软件教研室2.1.1 单道程序设计处理机利用率低设备利用率低内存利用率低t运行程序ACPU设备1运行程序At1t2t5t6设备2软件教研室软件教研室2.1.2 多道程序设计的提出t设计目标:提高系统效率(吞吐量)CPU设备1程序At1t2t5t6设备2程序B程序At3t4软件教研室软件教研
2、室2.1.3 多道程序设计的问题处理机资源的管理程序个数处理机个数(如何分配?)存储资源的管理地址空间的相对独立性、共享性内存、外存的分配与去配设备资源管理分配策略IO控制软件教研室软件教研室2.2 进程的引入进程的概念进程状态及状态转换进程控制块进程的组成与上下文进程的队列进程的类型与特征进程间相互联系与相互作用进程的创建与撤销进程与程序间的联系与差别软件教研室软件教研室2.2.1 进程的概念定义:进程是具有一定独立功能的程序关于一个数据集合的一次运行活动。定义强调两个方面:动态:执行中的程序;并发:可与其他进程同时执行。软件教研室软件教研室2.2.2 进程状态及转换进程状态(基本状态)运行
3、态(RUN):占有CPU正在向前推进就绪态(READY):可以运行,但未得到CPU等待态(WAIT):等待某一事件发生软件教研室软件教研室就绪就绪等待等待运行运行获得处理机剥夺处理机等待事件事件发生进程状态转换图软件教研室软件教研室进程状态转换图2初创初创终止终止创建结束就绪就绪等待等待运行运行获得处理机剥夺处理机等待事件事件发生软件教研室软件教研室2.2.3 进程控制块(PCB)标志进程存在的数据结构,其中保存系统管理进程所需的全部信息PCB 内容:进程标识(pid)家族联系进程状态 地址信息现场信息 打开文件调度参数 消息指针所属用户(uid)队列指针软件教研室软件教研室2.2.4 进程的
4、组成与上下文进程的组成进程控制块(process control block)建立进程建立PCB撤销PCB撤销进程程序代码(code)数据(data)堆栈(stack+heap)软件教研室软件教研室2.2.4 进程的组成与上下文进程的表记PCB程序程序PCB代码代码数据数据+堆栈堆栈表记1表记2系统空间用户空间软件教研室软件教研室2.2.4 进程的组成与上下文l进程上下文:进程的物理实体与支持进程运行的物理环境,包括:PCB+程序 系统环境:地址空间,系统栈,打开文件表,l上下文切换:由一个进程的上下文转到另一个进程的上下文l系统开销:运行操作系统程序完成系统管理工作所花费的时间和空间软件教研
5、室软件教研室2.2.5 进程的队列PCBPCBPCBhead1.就绪队列:系统一个或若干个(根据调度算法确定)2.等待队列:每个等待事件一个3.运行队列:每个处理机一个PCB构成的队列:(不一定FIFO)软件教研室软件教研室2.2.6 进程的类型与特征进程类型系统进程运行操作系统程序,完成系统管理(服务)功能.用户进程运行用户(应用)程序,为用户服务。软件教研室软件教研室2.2.6 进程的类型与特征(Cont.)进程的特征并发性:可以与其它进程一道向前推进;动态性:动态产生、消亡,生存期内状态动态变化;独立性:一个进程是可以调度的基本单位;交往性:同时运行的进程可能发生相互作用;异步性:进程以
6、各自独立,不可预知的速度向前推进;结构性:每个进程有一个PCB。软件教研室软件教研室2.2.7 进程间相互联系与相互作用相互联系相关进程同一家族的进程可以共享文件,需要相互通讯,协调推进速度父进程可以监视子进程,子进程完成父进程交给的任务。无关进程没有逻辑关系、同时执行的进程。有资源竞争关系,互斥、死锁、饿死。软件教研室软件教研室2.2.7 进程间相互联系与作用相互作用1.直接相互作用:发生在相关进程之间直接相互作用:发生在相关进程之间2.间接相互作用:发生在任何进程之间间接相互作用:发生在任何进程之间syncsendreceiveP1:P2:RP2P1holdwait软件教研室软件教研室2.
7、2.8 进程的创建与撤销进程的创建建立PCB,分配内存,加载程序,入就绪链UNIX:pid=fork(),exec(prog,args)进程的撤销去配资源,撤销PCB,通知父进程UNIX:exit()vs.kill除初始进程外,其它进程由(父)进程创建,并形成进程家族。软件教研室软件教研室2.2.9 进程与程序的联系与差别进程与程序的联系进程包括一个程序进程存在的目的就是执行这个程序进程与程序的差别程序静态,进程动态程序可长期保存,进程有生存期一个程序可对应多个进程,一个进程只能执行一个程序软件教研室软件教研室2.3 线程与轻进程2.3.1 线程的引入2.3.2 线程的概念2.3.3 线程的结
8、构2.3.4 线程的实现2.3.5 线程的应用2.3.6 Java线程软件教研室软件教研室2.3.1 线程的引入进程切换上下文涉及内容多,开销大,“笨重”相关进程之间耦合关系差解决方案Multi-threading同一进程中包含多个线程上下文只涉及寄存器和用户栈,切换速度快相关线程之间通讯方便、快捷软件教研室软件教研室2.3.2 线程的概念进程中一个相对独立的执行流。进程/线程进程是资源分配单位线程是执行单位多线程优点切换速度快(地址空间不变)(light weighted)系统开销小通讯容易(共享数据空间)软件教研室软件教研室线程控制块TCB(Thread control block)标志线
9、程存在的数据结构,其中包含对线程管理需要的全部信息内容线程标识、线程状态调度参数、现场(通用寄存器,PC,SP)存放位置用户级线程:目态空间(运行系统)核心级线程:系统空间软件教研室软件教研室2.3.3 线程结构寄存器静态数据程序代码 栈寄存器进程2动 态 堆内存多进程结构(用户视图)静态数据程序代码 栈进程1动 态 堆内存寄存器软件教研室软件教研室2.3.3 线程结构静态数据程序代码 栈栈寄存器寄存器线程1:线程2:进程动 态 堆内存多线程结构(用户视图)软件教研室软件教研室2.3.4 线程的实现2.3.1 用户级别线程User-level thread2.3.2 核心级别线程Kernel-
10、level thread2.3.3 混合线程Hybrid approach 软件教研室软件教研室2.3.4.1 用户级别线程实现方法:基于library函数,系统不可见线程创建、撤销、状态转换在目态完成TCB在用户空间,每个进程一个系统栈优点:不依赖于操作系统,调度灵活切换速度快缺点:同一进程中多个线程不能真正并行,一个线程进入系统受阻,进程中其它线程不能执行软件教研室软件教研室2.3.4.1 用户级别线程运行系统TCB进程线程核心栈进程表用户空间系统空间软件教研室软件教研室2.3.4.2 核心级别线程实现方法:基于系统调用创建、撤销、状态转换由操作系统完成优点:同一进程内多线程可以并行执行一
11、线程进入核心等待,其它线程仍可执行缺点:系统开销大,同一进程内多线程切换速度慢调度算法不能灵活控制软件教研室软件教研室2.3.4.2 核心级别线程进程线程核心栈进程表用户空间系统空间TCB软件教研室软件教研室2.3.4.3 混合线程Solaris例子User level thread:由由Lib程序支持(创建调度)程序支持(创建调度)Light weighted process(LWP):由由Lib程序支持程序支持每个每个task至少一个至少一个LWP用用戶戶级别线程与级别线程与LWP可以多对多可以多对多只有与只有与LWP相联系的用户线程向前推进相联系的用户线程向前推进Kernel level
12、 thread:由由kernel 支持支持每个核心线程与唯一一个每个核心线程与唯一一个LWP对应对应核心线程可与核心线程可与CPU多对多,可对一多对多,可对一软件教研室软件教研室2.3.4.3 混合线程(Solaris)CPUtask1task2task3kernelUser level threadLightweight processKernel thread软件教研室软件教研室2.3.5 线程的应用内在的多控制流生产消费问题多线程优于多进程快100倍!提高处理机与设备的并行性多处理机环境提高处理机利用率,加快进程推进速度软件教研室软件教研室2.3.5 线程的应用例子:Word字处理(不同
13、代码)交互编辑(T1)词法检查(T2)定时保存(T3)HTTP server(相同代码)对每个http请求,pop up一个线程软件教研室软件教研室2.4 作业(Job)作业概念用户要求计算机系统为其完成的计算任务集合。作业步(job step)作业处理过程中一个相对独立的步骤一般一个作业步可由一个进程完成某些作业步之间可以并行作业分类批处理作业交互式作业软件教研室软件教研室2.4.1 批处理作业作业控制语言(JCL)描述批处理作业控制意图的语言作业说明书(JCL语句的序列)一般以特殊符号起始$JOB J1$FORTN$LINK$ENDJOB作业控制程序:解释并处理作业说明书的程序作业控制进程
14、:执行作业控制程序的进程软件教研室软件教研室作业控制进程读入作业内容读入作业内容释放输入井空间释放输入井空间顺取作业控制语句顺取作业控制语句是结束语句是结束语句 执行该作业步执行该作业步(可能创建子进程可能创建子进程)申请输出井空间申请输出井空间输出作业结果输出作业结果进程自我终止进程自我终止FT软件教研室软件教研室2.4.2 交互式作业 帐户管理:/etc/passwd文件创建与撤销创建:用户提供(用户名,口令,资金)系统操作员建立(根目录/usr/zhang,填写passwd文件)撤销:删除该用户目录及所有文件在passwd文件中清除对应entry软件教研室软件教研室2.4.2 交互式作业注册与注销注册:logon:用户名password:*注销:显示注销:logout隐式注销:(如5分钟无输入命令)软件教研室软件教研室命令解释程序提示符$读入终端命令分析Logout内部命令处理建立子进程后台命令等子进程结束输出子进程号记帐TFTFFT软件教研室软件教研室小结:作业、进程、线程作业与进程作业进入内存后变为进程一个作业通常与多个进程相对应进程与线程不支持多线程的系统,可视为单线程进程一个进程一般包含多个线程,至少包含一个线程