版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第2章 进程管理,本章要点 基础:进程描述及控制 实现:互斥与同步 解决:几个经典问题 关于:进程通信 引申:进程与线程,生产者消费者问题 读者写者问题 哲学家进餐问题,2.1 进程概念,程序的顺序执行及其特征 程序的并发执行及其特征 进程的定义,程序的顺序执行,程序:源代码程序、目标程序和可执行程序 程序执行:编辑、编译、链接、执行 程序的结构:顺序结构、分支结构和循环结构,程序的顺序执行,程序顺序执行的特征: 顺序性、封闭性、可再现性 程序顺序执行流程图,数据输入,进行计算,输出结果,程序的顺序执行,顺序执行例1 输入I,计算C,打印P,程序并发执行,多道程序设计技术:多个程序并发执行 程
2、序并发执行时的特征:间断性、非封闭性、不可再现性,程序并发执行引发的问题,协调各程序的执行顺序 多个执行程序共享系统资源,程序之间可能会相互影响,甚至影响输出结果 选择哪些、多少个程序进入内存执行? 内存中的执行程序谁先执行? 内存如何有效分配?,2.1.2 进程的定义,定义: 可并发执行的程序,在一个数据集合上的运行过程 申请/拥有资源 程序:静态概念,是指令和数据的集合,可长期存储 进程与程序的对应关系: 一个程序可以对应一个进程或多个进程 一个进程可以对应一个程序,或者一段程序,进程的特征,动态性 并发性 独立性 异步性,引入进程带来的问题,增加了空间开销:为进程建立数据结构 额外的时间
3、开销:管理和协调、跟踪、填写和更新有关数据结构、切换进程、保护现场 更难控制: 协调多个进程竞争和共享资源如何预防 解决多个进程因为竞争资源而出现故障 处理机的竞争尤为突出,2.1.3 PCB,进程标识信息:进程的内部和外部标识符 处理机状态信息:通用寄存器值、指令计数器值、程序状态字PSW值、用户栈指针值 进程调度信息:进程状态、进程优先权、进程调度的其他信息 其它信息:程序及数据地址、进程同步和通讯机制、资源清单、链接指针,2.1.4 进程状态及其转换,为了刻画整个进程,可将一个进程的生命周期划分为一组状态: 1、进程的5种状态(三种基本状态) new新建/创建(初始态):进程正在创建中的
4、状态 ready就绪: 进程已获得了除处理机以外的所有资源,等待分配处理机执行的等待状态。 running运行/执行: 当一个进程获得必要的资源并正在处理机上执行的状态。 waiting等待/阻塞: 正在执行的进程由于发生某事件而暂时无法执行下去,此时进程所处的状态。 terminated终止/撤消/退出:进程执行完毕,释放所占资源的状态。,就绪状态: 该进程运行所需的一切条件都得到满足,但因处理机资源个数少于进程个数,所以该进程不能运行,而必须等待分配处理机资源,一旦获得处理机就立即投入运行。,执行状态: 进程正在处理机上运行的状态,该进程已获得必要的资源,也获得了处理机,用户程序正在处理机
5、上运行。,阻塞状态; 进程等待某种事件完成(例如,等待输入/输出操作的完成)而暂时不能运行的状态,处于该状态的进程不能参加竞争处理机,此时,即使分配给它处理机,它也不能运行。,状态变化: 就绪状态 执行状态 执行状态 就绪状态 执行状态 阻塞状态 阻塞状态 就绪状态,系统为进程进行的操作,创建进程、撤销进程、进程切换 进程作为资源的拥有者和系统的调度对象,需要花费系统较大的额外开销。故,系统中同时存在的进程数目不宜过高,而这也就限制了并发度的进一步提高。,2.2 线程,引入线程的目的,这是为了减少程序并发执行时系统所付出的额外开销,使操作系统具有更好的并发性。,由进程到线程,目标:既能提高进程
6、并发度,又能降低系统的额外开销。 实现:将进程的资源申请和调度属性分开。即进程作为资源的申请和拥有者,但不作为调度的基本单位。这样,就产生了线程的概念。 线程是进程中的一个实体,是独立调度和分派的基本单位。 线程自身基本上不拥有系统资源,只拥有少许运行中必不可少的私有资源。线程可与同属一个进程的其它线程共享进程的全部资源。,线程与进程的区别,资源占有:进程是资源管理(资源分配)的基本单位,拥有自己的地址空间和各种资源(如内存空间、外设等)。 线程只是处理机的基本调度(执行)单位,只和其他线程一起共享进程资源,自己只有一点必不可少的资源(堆栈、寄存器等)。 系统开销:进程创建、撤消、切换都要对资
7、源分配、回收、转移等导致处理机切换时间变长,系统效率降低。 以线程为单位的处理机调度,由于不发生资源变化,处理机切换时间短,系统效率高。,线程与进程的区别,用户等待时间:多线程可以减少用户的等待时间,提高系统的响应速度。 线程状态:进程有自己的程序、数据,有内外空间交换,所以有挂起状态。 线程没有自己单独的程序、数据空间,没有内外空间交换,所以没有挂起状态(即线程是一个只与内存和寄存器有关的概念,不会因交换而进入外存)。,线程与进程的区别,调度:进程调度、同步等控制大多由OS内核完成。 线程调度、同步等控制可由OS内核完成,也可以由用户控制进行。 关系:一个进程有若干个线程(至少一个)。,进程
8、与线程 调度,传统操作系统中,进程既是拥有资源的基本单位,又是独立调度的基本单位 引入线程的操作系统中,线程是独立调度的基本单位,进程是资源拥有的基本单位,从而可以显著地提高系统的并发程度。 同一进程中的线程切换不会引起进程切换,但当一个进程中的线程切换到另一进程中的线程时,将会引起进程切换。,进程与线程 并发,进程之间可以并发执行 同属于一个进程的多个线程之间,也可并发执行 因而使操作系统具有更好的并发行,从而能更有效的使用系统资源和提高系统吞吐量。,进程与线程 并发,例如 在一个未引入线程的单处理机操作系统中,若仅设置一个文件服务进程,当它由于某种原因而被阻塞时,便没有其它的文件服务进程来
9、提供服务。 引入线程以后,可以在一个文件服务进程中设置多个服务进程,当第一个线程阻塞时,文件服务进程中的第二个线程可以继续运行;当第二个线程阻塞时,第三个线程可以继续执行,从而显著地提高了文件服务的质量和系统吞吐量。,进程与线程 拥有资源,进程是拥有资源的独立单位,它有权申请系统的各类资源。 线程除了拥有很少的私有资源以外,不能申请系统资源,可以共享其所属进程的资源。即,进程的代码段、数据段以及系统资源,如已打开的文件、I/O设备等,都可被其内的所有线程共享。,进程与线程 系统开销,操作系统管理进程的开销显著地大于管理线程所需的开销。 进程切换的开销也远大于线程切换的开销。 由于同一进程中的多
10、个线程具有相同的地址空间,使它们之间的同步和通信也比较容易。 有些类型的线程切换、同步和通信都无需操作系统内核的干预。,进程与线程,传统操作系统中,一个进程可以创建一个线程,如MS DOS就是单用户、单进程、单线程的操作系统,UNIX是一个多用户、多进程、单线程的操作系统 现代操作系统和软件设计大多支持多线程运行。例如,Java虚拟机是一个单进程、多线程的运行环境,Windows系列操作系统和Linux操作系统都采用了多进程、多线程技术。,线程的类型,用户级线程和内核级线程 用户级线程不依赖于内核 内核级依赖内核,其创建、撤销和切换都由内核实现,在内核中为其保留一张线程控制块。,线程的状态,进
11、程中的所有线程共享该进程的状态 线程具有三个基本状态:就绪、执行和阻塞 一般不具有挂起状态,因为线程共享进程的资源,包括存储空间,如果挂起一个进程,其所属的全部进程必将被挂起。而单独挂起挂起某进程中的一个线程,必然会影响同一进程中的其它线程的执行,这是没有任何意义的。,对线程的操作,一个进程可以创建和撤销一个或多个线程,同一进程中的多个线程可以并发执行。 对线程的操作包括: 1、派生(Spawn),当系统创建一个进程时,同时也该进程派生一个线程,同一进程中的线程可以再派生其它线程。 2、阻塞(Block),当线程需要等待某事件时,它将被阻塞,释放处理机执行其它线程。,对线程的操作,3、解除阻塞
12、(Unblock),当线程的阻塞事件发生,其状态转换为就绪,并插入到就绪队列,等待调度执行。 4、结束(Finish),当线程执行完毕,释放其私有资源。 注意,线程阻塞不一定会引起整个进程的阻塞,否则,引入线程带来的并发性就不会提高。,线程的适用范围,1.多任务需要的多处理机系统:减少处理机切换时间,线程的创建和撤消比进程的创建和撤消开销要小。 2.单处理机系统:将用户程序按功能分小,也可以使用线程简化程序结构和提高执行效率。,2.3 进程管理,进程控制原语: 1.创建与撤销 2.阻塞与唤醒,进程创建:原因,提交新的批处理作业 交互式用户注册 操作系统提供服务 父进程创建子进程,进程创建:步骤
13、,1.为进程分配一个唯一标识号ID:主进程表中增加一个新的表项 2.为进程分配空间:用户地址空间、用户栈空间、PCB空间。若共享已有空间,则应建立相应的链接 3.初始化PCB:进程标识、处理机状态信息、进程状态 3.建立链接:若调度队列是链表,则将新进程插入到就绪或就绪/挂起链表 5.建立或扩展其他数据结构,进程终止:原因,批处理作业执行到“结束”语句 交互式用户“注销” 停止进程(应用程序)的执行 遇到错误或故障,进程终止:具体原因,正常结束 超时终止,执行时间超过预计时间 内存不足,无法为进程分配所需的内存空间 越界访问 企图使用未允许用的数据,或操作方式错 计算错,如除零,或企图存储硬件允许的最大数 超时等待某事件发生,进程终止:具体原因,I/O失败,如找不到文件或多次重试仍无法读写文件,或无效操作 无效指令,企图执行不存在的指令 特权指令,企图执行特权指令 数据类型不符,或未初始化 操作员或OS干预,如发生死锁的时候 父进程终止 父进程请求,进程终止:步骤,1.根据被终止进程的标识符ID,找到其PCB,读出该进程的状态 2.若该进程未执行状态,则终止其执行,调度新进程执行 3.若该进程有子孙进程,则立即终止其所有子孙进程 3.将该进程的全部资源,或归还给其父进程,或归还给系统 5.将被终止进程(的PCB)从所在队列中衣橱,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年上半年齐齐哈尔医学院及直属单位公开招聘编制内工作人员136人备考题库及答案详解(有一套)
- 2026重庆嘉陵人力资源开发服务有限公司招聘2人备考题库含答案详解(综合卷)
- 2026湖北武汉市属国有企业高级管理人员招聘备考题库含答案详解(巩固)
- 2026辽宁锦州市义县招聘特岗教师30人备考题库及答案详解1套
- 2026河南理工大学附属医院医疗集团招聘134人备考题库及答案详解一套
- 2026湖南怀化市溆浦县卫健局招聘乡镇卫生院临聘专技人员27人备考题库附答案详解(突破训练)
- 2026黑龙江哈尔滨启航劳务派遣有限公司派遣到哈尔滨工业大学国际合作部(港澳台办公室)招聘备考题库附答案详解(完整版)
- 2026福建事业单位统考福州市招聘725人备考题库(含答案详解)
- 2026山东济宁市东方圣地人力资源开发有限公司招聘劳务派遣制护理员3人备考题库及完整答案详解一套
- 2026江西省信用融资担保集团股份有限公司社会招聘1人备考题库附答案详解(轻巧夺冠)
- 2026年广东电网春季校园招聘考试参考题库及答案解析
- 2026河南郑州体育产业集团有限公司招聘42人考试备考试题及答案解析
- 语文园地二 课件 2025-2026学年统编版语文三年级下册
- 2026年宁夏职业技术学院单招职业技能测试题库带答案详解(巩固)
- 2025年初级电焊工理论考试题及及答案
- 2026广东广州花都城投住宅建设有限公司第二次招聘项目用工人员4人笔试模拟试题及答案解析
- 象形字和形声字课件
- 水利工程管理单位定岗标准(试点)
- 企业安全生产标准化-目录
- 第二章旅行社产品设计与开发
- 高鸿业《西方经济学(微观部分)》(第6版)课后习题答案详解(完整版)
评论
0/150
提交评论