




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第三讲第三讲 进程与线程进程与线程授课教师:马立平授课教师:马立平联系方式:联系方式:Southwest University of Science and Technology进程的定义和性质进程的定义和性质程序的并发执行: P1P2P3P4I1I2I3I4C1C2C3C4程序的并发执行: 四条语句的前趋关系S1S2S3S4对于具有下述四条语句的程序段:程序程序A:每执行一次时,都要做:每执行一次时,都要做N =N+1操作;操作;程序程序B:每执行一次时,:每执行一次时, 都要执行都要执行Print(N)操作,然后再将操作,然后再将N置成置成“0”。 (1) N =N+1在在Print(N)
2、和和N =0之前,此时得到的之前,此时得到的N值分别为值分别为n+1, n+1, 0。 (2) N =N+1在在Print(N)和和N =0之后,此时得到的之后,此时得到的N值分别为值分别为n, 0, 1。 (3) N =N+1在在Print(N)和和N =0之间,此时得到的之间,此时得到的N值分别为值分别为n, n+1, 0。 程序的并发执行时的特征: 举例: 进程定义: 进程是可并发执行的程序在某个数据集合上的一次计算活动,也是操作系统进行资源分配和保护的基本单位。 进程是一个既能用来共享资源,又能描述程序并发执行过程的系统基本单位。 进程是一种支持程序执行的系统机制。操作系统为什么要引入
3、进程概念操作系统为什么要引入进程概念?(1)?(1)原因原因1- 1-刻画程序的并发性刻画程序的并发性。程序是并发执行的,即不是连续而是走走程序是并发执行的,即不是连续而是走走停停的。程序的并发执行引起资源共享和停停的。程序的并发执行引起资源共享和竞争问题,执行的程序不再处在封闭环境竞争问题,执行的程序不再处在封闭环境中。中。“程序程序”自身只是计算任务的指令和数据自身只是计算任务的指令和数据的描述,是静态概念无法刻画程序的并发的描述,是静态概念无法刻画程序的并发特性,系统需要寻找一个能描述程序动态特性,系统需要寻找一个能描述程序动态执行过程的概念,这就是进程执行过程的概念,这就是进程。操作系
4、统为什么要引入进程概念操作系统为什么要引入进程概念原因原因2-2-解决解决资源的共享性资源的共享性。 “可再用可再用” 程序;程序; “可再入可再入” 程序;程序; “可再入可再入”程序具有的性质。程序具有的性质。“进程进程”和和“程序程序”的比较的比较进程和线程进程进程的概念进程控制块进程状态三状态进程模型挂起进程模型为什么引入线程线程的概念用户线程内核线程线程实际操作系统中的进程 进程和程序是什么样的关系?进程的定义进程是指一个具有一定独立功能的程序在一个数据集合上的一次动态执行过程进程地址空间代码初始化数据堆栈共享库段表加载可执行文件代码初始化数据文件头编译链接源代码文件void X (
5、int b) if(b = 1) int main() int a = 2; X(a);main; a = 2X; b = 2堆栈内存中的进程void X (int b) if(b = 1) int main() int a = 2; X(a);程序源代码内存中进程进程的组成进程包含了正在运行的一个程序的所有状态信息代码数据状态寄存器 CPU状态CR0、指令指针IP通用寄存器 AX、BX、CX进程占用系统资源 打开文件、已分配内存 进程的特点进程执行过程进程切换ABCD时间进程ABCD四个指令指针ABCD动态性并发性独立性制约性可动态地创建、结束进程进程可以被独立调度并占用处理机运行不同进程的
6、工作不相互影响因访问共享数据/资源或进程间同步而产生制约 进程是操作系统处于执行状态程序的抽象程序 = 文件 (静态的可执行文件)进程 = 执行中的程序 = 程序 + 执行状态 同一个程序的多次执行过程对应为不同进程如命令“ls”的多次执行对应多个进程 进程执行需要的资源内存:保存代码和数据CPU:执行指令进程是动态的,程序是静态的程序是有序代码的集合进程是程序的执行,进程有核心态/用户态进程是暂时的,程序的永久的进程是一个状态变化的过程程序可长久保存进程与程序的组成不同进程的组成包括程序、数据和进程控制块进程和线程进程进程的概念进程控制块进程状态三状态进程模型挂起进程模型为什么引入线程线程的
7、概念用户线程内核线程线程操作系统管理控制进程运行所用的信息集合进程控制块(PCB,Process Control Block)操作系统用PCB来描述进程的基本情况以及运行变化的过程PCB是进程存在的唯一标志每个进程都在操作系统中有一个对应的PCB进程控制块的使用进程的状态转换?PCB具体包含什么信息?如何组织的?进程创建 生成该进程的PCB进程终止 回收它的PCB进程的组织管理 通过对PCB的组织管理来实现进程控制块进程地址空间代码初始化数据堆栈共享库段表PCSP其他寄存器PIDUID调度优先级打开文件列表进程标识信息处理机现场保存进程控制信息进程控制信息调度和状态信息调度进程和处理机使用情况
8、 进程间通信信息进程间通信相关的各种标识存储管理信息指向进程映像存储空间数据结构进程所用资源进程使用的系统资源,如打开文件等有关数据结构连接信息与PCB相关的进程队列进程控制块列表进程控制块的组织链表索引表就绪等待就绪等待索引表同一状态的进程其PCB成一链表,多个状态对应多个不同的链表各状态的进程形成不同的链表:就绪链表、阻塞链表同一状态的进程归入一个索引表(由索引指向PCB),多个状态对应多个不同的索引表各状态的进行形成不同的索引表:就绪索引表、阻塞索引表进程控制块列表进程和线程进程进程的概念进程控制块进程状态三状态进程模型挂起进程模型为什么引入线程线程的概念用户线程内核线程线程进程创建进程
9、执行进程抢占进程等待进程唤醒进程结束进程的生命周期划分引起进程创建的情况进程创建系统初始化时用户请求创建一个新进程正在运行的进程执行了创建进程的系统调用创 建就 绪内核选择一个就绪的进程,让它占用处理机并执行进程执行如何选择?创 建就 绪运 行进程等待只有进程自身才能知道何时需要等待某种事件的发生进程进入等待(阻塞)的情况:请求并等待系统服务,无法马上完成启动某种操作,无法马上完成需要的数据没有到达创 建就 绪运 行等 待进程抢占进程会被抢占的情况高优先级进程就绪进程执行当前时间用完创 建就 绪运 行等 待进程唤醒唤醒进程的情况:被阻塞进程需要的资源可被满足被阻塞进程等待的事件到达进程只能被别
10、的进程或操作系统唤醒创 建就 绪运 行等 待进程结束进程结束的情况:正常退出(自愿的)错误退出(自愿的)致命错误(强制性的)被其他进程所杀(强制性的)创 建就 绪运 行等 待退 出创 建就 绪退 出运 行等 待sleep()系统调用对应的进程状态变化创 建就 绪退 出运 行等 待进程切换k: sleep()main程序 1程序 2操作系统I/O设备add_timer()sleepmaink+1:保存现场schedule()定时时间到中断schedule()恢复现场保存现场地址空间.进程n进程2进程1系统应用软件操作系统.进程和线程进程进程的概念进程控制块进程状态三状态进程模型挂起进程模型为什么
11、引入线程线程的概念用户线程内核线程线程创 建就 绪运 行等 待退 出进入就绪列队被调度时间片完事件发生结束等待事件三状态进程模型进程在整个生命周期分为三种基本状态创 建就 绪退 出运 行等 待运行状态(Running)进程正在处理机上运行进程获得了除处理机之外的所需资源,得到处理机即可运行进程正在等待某一事件的出现而暂停运行一个进程正在被创建,还没被转到就绪状态之前的状态一个进程正在从系统中消失时的状态,这是因为进程结束或由于其他原因所导致就绪状态(Ready)等待状态(又称阻塞状态Blocked )创建状态(New)结束状态(Exit)启 动三状态进程模型创 建就 绪运 行等 待退 出进入就
12、绪列队被调度时间片完事件发生结束等待事件启 动三状态进程模型NULL创建一个新进程被产生出来执行一个程序创 建就 绪运 行等 待退 出进入就绪列队被调度时间片完事件发生结束等待事件启 动三状态进程模型创建就绪当进程被创建完成并初始化后,一切就绪准备运行时,变为就绪状态创 建就 绪运 行等 待退 出进入就绪列队被调度时间片完事件发生结束等待事件启 动三状态进程模型就绪运行处于就绪状态的进程被进程调度程序选中后,就分配到处理机上来运行创 建就 绪运 行等 待退 出进入就绪列队被调度时间片完事件发生结束等待事件启 动三状态进程模型运行结束当进程表示它已经完成或者因出错,当前运行进程会由操作系统作结束
13、处理创 建就 绪运 行等 待退 出进入就绪列队被调度时间片完事件发生结束等待事件启 动三状态进程模型运行就绪处于运行状态的进程在其运行过程中,由于分配给它的处理机时间片用完而让出处理机创 建就 绪运 行等 待退 出进入就绪列队被调度时间片完事件发生结束等待事件启 动三状态进程模型运行等待当进程请求某资源且必须等待时创 建就 绪运 行等 待退 出进入就绪列队被调度时间片完事件发生结束等待事件启 动三状态进程模型等待就绪当进程要等待某事件到来时,它从阻塞状态变到就绪状态创 建就 绪运 行等 待退 出进入就绪列队被调度时间片完事件发生结束等待事件启 动进程和线程进程进程的概念进程控制块进程状态三状态
14、进程模型挂起进程模型为什么引入线程线程的概念用户线程内核线程线程处在挂起状态的进程映像在磁盘上, 目的是减少进程占用内存进程挂起创 建就 绪运 行等 待退 出就绪挂起等待挂起挂起接收事件发生接收激活挂起事件发生激活挂起等待事件时间片完调度结束挂起状态等待挂起状态(Blocked-suspend)进程在外存并等待某事件的出现创 建就 绪运 行等 待退 出就绪挂起等待挂起挂起接收事件发生接收激活挂起事件发生激活挂起等待事件时间片完调度结束挂起状态等待挂起状态(Blocked-suspend)就绪挂起状态(Ready-suspend)进程在外存,但只要进入内存,即可运行创 建就 绪运 行等 待退 出
15、就绪挂起等待挂起挂起接收事件发生接收激活挂起事件发生激活挂起等待事件时间片完调度结束与挂起相关的状态转换创 建就 绪运 行等 待退 出就绪挂起等待挂起挂起接收事件发生接收激活挂起事件发生激活挂起等待事件时间片完调度结束挂起(Suspend):把一个进程从内存转到外存没有进程处于就绪状态或就绪进程要求更多内存资源与挂起相关的状态转换创 建就 绪运 行等 待退 出就绪挂起等待挂起挂起接收事件发生接收激活挂起事件发生激活挂起等待事件时间片完调度结束挂起(Suspend):把一个进程从内存转到外存等待到等待挂起当有高优先级等待(系统认为会很快就绪的)进程和低优先级就绪进程与挂起相关的状态转换创 建就
16、绪运 行等 待退 出就绪挂起等待挂起挂起接收事件发生接收激活挂起事件发生激活挂起等待事件时间片完调度结束挂起(Suspend):把一个进程从内存转到外存等待到等待挂起就绪到就绪挂起挂起(Suspend):把一个进程从内存转到外存等待到等待挂起就绪到就绪挂起对抢先式分时系统,当有高优先级等待挂起进程因事件出现而进入就绪挂起运行到就绪挂起与挂起相关的状态转换创 建就 绪运 行等 待退 出就绪挂起等待挂起挂起接收事件发生接收激活挂起事件发生激活挂起等待事件时间片完调度结束与挂起相关的状态转换创 建就 绪运 行等 待退 出就绪挂起等待挂起挂起接收事件发生接收激活挂起事件发生激活挂起等待事件时间片完调度
17、结束在外存时的状态转换在外存时的状态转换当有等待挂起进程因相关事件出现等待挂起到就绪挂起与挂起相关的状态转换创 建就 绪运 行等 待退 出就绪挂起等待挂起挂起接收事件发生接收激活挂起事件发生激活挂起等待事件时间片完调度结束与挂起相关的状态转换创 建就 绪运 行等 待退 出就绪挂起等待挂起挂起接收事件发生接收激活挂起事件发生激活挂起等待事件时间片完调度结束激活(Activate):把一个进程从外存转到内存与挂起相关的状态转换没有就绪进程或挂起就绪进程优先级高于就绪进程创 建就 绪运 行等 待退 出就绪挂起等待挂起挂起接收事件发生接收激活挂起事件发生激活挂起等待事件时间片完调度结束激活(Activ
18、ate):把一个进程从外存转到内存就绪挂起到就绪与挂起相关的状态转换激活(Activate):把一个进程从外存转到内存就绪挂起到就绪当一个进程释放足够内存,并有高优先级等待挂起进程等待挂起到等待创 建就 绪运 行等 待退 出就绪挂起等待挂起挂起接收事件发生接收激活挂起事件发生激活挂起等待事件时间片完调度结束状态队列由操作系统来维护一组队列,表示系统中所有进程的当前状态不同队列表示不同状态 就绪队列、各种等待队列根据进程状态不同,进程PCB加入相应队列 进程状态变化时,它所在的PCB会从一个队列 换到另一个进程状态的队列表现接收进程处理机就绪队列1就绪队列2就绪队列n终止进程超时事件1发生事件2
19、发生事件m发生等待事件1等待事件2等待事件m等待队列1等待队列2等待队列m进程和线程进程进程的概念进程控制块进程状态三状态进程模型挂起进程模型为什么引入线程线程的概念用户线程内核线程线程为什么引入线程【案例】编写一个MP3播放软件。核心功能模块有三个:(3)把解压缩后的音频数据播放出来(2)对数据进行解压缩(1)从MP3音频文件当中读取数据单进程的实现方法 main( ) while(TRUE) Read( ); Decompress( ); Play( ); Read( ) Decompress( ) Play( ) 1. 播放出来的声音能 否连贯2. 各个函数之间不是并发执行,影响资源的使
20、用效率问题:I/OCPU多进程的实现方法 存在的问题:1. 进程之间如何通信,共享数据?程序1main( ) while(TRUE) Read( ); Read( ) 程序2main( ) while(TRUE) Decompress( ); Decompress( ) 程序3main( ) while(TRUE) Play( ); Play( ) 2. 系统开销较大:创建进程、进程结束、进程切换多线程的解决思路 这种实体就是线程(Thread)在进程内部增加一类实体,满足以下特性:(2)实体之间共享相同的地址空间(1)实体之间可以并发执行线程的概念线程是进程的一部分,描述指令流执行状态。它是进程中的指令执行流的最小单元,是CPU调度的基本单位。进程地址空间代码初始化数据堆代码共
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025国家民委直属事业单位招聘48人考前自测高频考点模拟试题及答案详解(新)
- 2025江苏苏州工业园区天域幼儿园教学辅助人员招聘1人模拟试卷及答案详解(必刷)
- 2025赤峰市中心医院招聘8控制数人员模拟试卷及1套参考答案详解
- 2025年杭州市上城区小营街道办事处编外招聘1人模拟试卷附答案详解(考试直接用)
- 2025年儿童传统康复试题及答案
- 书院活动策划方案
- 谈纪律和稳定演讲稿
- 2025年陕西大秦电能集团有限公司检修分公司招聘(1人)模拟试卷带答案详解
- 教师总结发言稿
- 土地估价实务题库及答案
- 2025届广东六校联盟高三下学期联考物理试题含解析
- DL∕T 860.4-2018 电力自动化通信网络和系统 第4部分:系统和项目管理
- DL-T5745-2021电力建设工程工程量清单计价规范
- MOOC 英文学术写作实战-北京大学 中国大学慕课答案
- 电气系统故障诊断
- 《呼吸与健康生活》作业课件
- 悬挑工字钢验收表
- 宝马5系GT说明书
- 追究刑事责任的控告书范例(标准版)
- 讲义配电房可视化管理标准课件
- 高中音乐(必修)《音乐鉴赏》 (人音版)《家国情怀的民族乐派》格林卡与穆索尔斯基《荒山之夜》
评论
0/150
提交评论