计算机操作系统-第3章进程和处理机管理课件

上传人:我*** 文档编号:144110602 上传时间:2020-09-06 格式:PPT 页数:83 大小:533.50KB
返回 下载 相关 举报
计算机操作系统-第3章进程和处理机管理课件_第1页
第1页 / 共83页
计算机操作系统-第3章进程和处理机管理课件_第2页
第2页 / 共83页
计算机操作系统-第3章进程和处理机管理课件_第3页
第3页 / 共83页
计算机操作系统-第3章进程和处理机管理课件_第4页
第4页 / 共83页
计算机操作系统-第3章进程和处理机管理课件_第5页
第5页 / 共83页
点击查看更多>>
资源描述

《计算机操作系统-第3章进程和处理机管理课件》由会员分享,可在线阅读,更多相关《计算机操作系统-第3章进程和处理机管理课件(83页珍藏版)》请在金锄头文库上搜索。

1、清华大学出版社,计算机操作系统,刘 腾 红 主编,Computer Operating System,第3章 进程和处理机管理,要求学生掌握程序的顺序执行和并发执 行;进程的定义、特点及状态变迁;进 程的管理;线程的概念、类别;进程间 的同步与互斥;进程通信;死锁产生的 原因与解除方法;处理机、进程和作业 的调度方法;最后还要了解Windows XP 的进程和线程管理。,第3章 进程和处理机管理,3.1 进程的基本概念 3.2 进程管理 3.3 线程的概念 3.4 进程间的同步与互斥 3.5进程通信 3.6死锁 3.7处理机调度 3.8Windows XP的进程和线程管理,3.1.1 程序顺序

2、执行 1. 程序顺序执行,3.1 进程的基本概念,图3-1 程序的顺序执行,2. 程序顺序执行的特点 (1)顺序性 (2)封闭性 (3)可再现性,3.1.2 程序并发执行 1.程序的并发执行 如图3-2,I3、C2、P1 是并发执行的,则使用 下面的语句描述: cobegin I3; C2; P1; coend;,3.1 进程的基本概念,2. 程序并发执行的特点 (1)失去了程序的封闭性 程序之间的相互制约关系(间接关系和直接 关系)导致程序“执行-暂停-执行”,即 程序的执行具有间断性。 (2) 通信性:如图3-3 (3) 独立性,3.1 进程的基本概念,3.1.3 进程描述 1. 进程定义

3、 最能反映进程实质的定义有: 1)进程是程序的一次执行活动; 2)进程是可以和别的计算并发执行的计 算; 3)进程是一个程序在对应数据结构上的 进行的操作;,3.1 进程的基本概念,4)所谓进程,就是一个程序在给定活动 空间和初始环境下,在一个处理机上的执 行过程; 5)进程是程序在一个数据集合上运行的 过程,它是系统进程资源分配和调度的一 个独立单位。 国内的定义:进程,是一个具有一定独 立功能的程序,是关于某个数据集合的一 次运行活动。,3.1 进程的基本概念,1. 进程定义 进程和程序的联系和区别: 1)程序是指令的有序集合,其本身没有 任何运行的含义,它是一个静态的概念。 进程是程序在

4、处理机上的一次执行过程, 它是一个动态的概念。 2)进程具有并行特征,能与其它进程并 行地活动;,3.1 进程的基本概念,2. 进程类型 (1)系统进程和用户进程,两者的区别: 1)系统进程被分配一个初始的资源集合,其可以独占或按最高优先权限优先使用这些资源。但用户进程必须通过系统服务请求来申请资源,并竞争资源 2)用户进程不能直接完成I/O操作,而系统进程可以做显示的、直接的I/O操作 3)系统进程在管态下运行,而用户进程在目态下运行 (2)计算进程和I/O进程,3.1 进程的基本概念,3. 进程的特征和利弊 特征: 1)动态性 2)并发性 3)独立性 4)异步性/间断性 5)结构特征 每个

5、进程都有进程控制块PCB:其包含描 述进程和控制信息 引入进程增加开销:空间开销和时间开销,3.1 进程的基本概念,4. 进程的状态与变迁 进程的三种基本状态及其状态变迁如图3-4 在不同的系统中,进程可以设置更多的状态,3.1 进程的基本概念,5. 进程描述进程控 制块PCB 1)PCB的作用:标识进 程存在的唯一实体 2)进程控制块的内容 进程控制块PCB常用的信 息如表3-1。 3)PCB的组织方式 a)链接方式如图3-5 b)索引方式如图3-6,3.1 进程的基本概念,表3-1 PCB信息,表3-1 PCB信息,3.1 进程的基本概念,表3-1 PCB信息,图3-5 按链接方式组织PC

6、B,3.1 进程的基本概念,索 引 表,图3-6 按索引方式组织PCB,3.2.1 进程创建原语 进程创建原语的主要功能是为被创建进 程建立一个PCB 创建进程原语的操作过程是:首先从空 闲PCB队列中申请一个可用的PCB,申请到 后为该PCB分配一个内部标识符;然后填入 创建者提供的参数和直接从父进程继承的 参数;把新进程设为就绪状态,并插入到 就绪队列和进程家族;最后,返回为新进 程的内部标识PID(进程存在的唯一标识),3.2 进程管理,3.2.1 进程创建原语 创建原语描述如下:,3.2 进程管理,算法:create 输入:新进程的符号名,优先级,开始执行地址 输出:新创建进程的内部标

7、识符PID 在总链队列上查找有无同名的进程; if (有同名进程) return (错误码) /*带错误码返回*/ 在空闲PCB队列申请一个空闲的PCB结构; if (无空PCB结构) return (错误码); /*带错误码返回*/ 用参数填充PCB内容; 置进程为就绪状态; 将新进程的PCB插入到就绪队列; 将新进程的PCB插入到总链队列中; 设置进程的家族关系; return (新进程PID); /* create(name, priority, start-addr) */,3.2.2 进程撤消原语 撤消原语Kill操作如下:,3.2 进程管理,void kill 输入:进程标识符PI

8、D 输出:无 由参数PID查找到当前进程的PCB; 释放本进程所占用的资源给父进程; 将该进程从总链队列中摘除; 释放此PCB结构; 释放所占用的资源; 转进程调度程序; /* kill */,3.2.3 进程等待原语 等待原语操作过程如下:,3.2 进程管理,void susp(chan) 输入:chan /*等待的事件(等待原因)*/ 保护现行进程CPU现场到PCB结构中; 置该进程为“等待/阻塞”态; 将该进程PCB插入到等chan的等待队列; 转进程调度; /* susp(chan) */,3.2.4 进程唤醒原语 唤醒原语操作过程如下:,3.2 进程管理,void wakeup(ch

9、an) 输入:chan /*等待的事件(等待原因)*/ 输出:无 保护现行运行进程的CPU现场到它的PCB结构中; 置该进程为就绪状态; 将该进程插入就绪队列; 找到该阻塞原因的队列指针; for(该队列上的每一个等待进程) 将进程移出此等待队列; 置进程状态为“就绪”并将进程放入就绪队列; 转进程调度; /* wakeup(chan) */,3.2.5 其他原语 1.进程延迟原语和延迟唤醒原语 延迟原语的功能是:将需要延迟的进程 PCB结构加入到延迟队列,当延迟时间到来 时,由延迟唤醒进程(系统进程)把它唤醒 2.进程挂起原语和进程激活原语 进程的挂起状态是一种静止状态,它分为 挂起就绪和挂

10、起等待。,3.2 进程管理,3.3.1 线程的概念 线程是比进程更小的活动单位,它是进程 的一个执行路径。 线程可以这样描述: 1)线程是进程中的一条执行路径 2)它有自己的私用堆栈和处理机执行环 境(尤其是处理器寄存器) 3)它与父进程共享分配给父进程的主存 4)它是由单个进程所创建的众多线程中 的一个线程,3.3 线程的概念,3.3.2 线程与进程的比较 1.调度:把线程作为调度和分派的基本单位,而把进程作为资源拥有的基本单位 2.并发性:不仅进程之间可以并发执行,而且在一个进程中的多个线程之间也可并发执行 3.拥有资源:进程是拥有资源的一个独立单位,线程不拥有系统资源,但可访问隶属于进程

11、的全部资源。 4.系统开销:由于在创建或撤消进程时,系统都要为之分配或回收资源,导致系统的开销将显著地大于在创建或撤销线程时的开销。,3.3 线程的概念,3.3.3 线程的分类 1. 线程的两种类型 1)内核支持线程Kernel-Supported Threads 2)用户级线程User-Level Threads 2.两种线程的分析,3.3 线程的概念,3.4.1 进程间的制约关系 1.资源共享 互斥共享和同时访问 2.进程合作 进程相互合作和通信,共同完成一个任务 3.4.2 进程互斥 1. 互斥的概念 互斥共享的资源:物理设备和软件资源 相关概念:临界区和临界资源,3.4 进程间的同步与

12、互斥,3.4.2 进程互斥 2. 锁及其操作 置锁信号为1称为上锁原语(lock),置锁信 号为0称为开锁原语(unlock),代码如下所示,3.4 进程间的同步与互斥,上锁原语,开锁原语,void lock(锁变量w) test: if(w为1) goto test /*测试锁位的值*/ else w=1; /*上锁*/ /* lock(w) */,void unlock(锁变量w) w=0; /* 开锁 */ /* unlock(w) */,3.4.2 进程互斥 2. 锁及其操作 goto语句使进程一直占用处理机来循环测试锁 状态,故将上锁原语和开锁原语改进如下,3.4 进程间的同步与互斥

13、,改进后的上锁原语,改进后的开锁原语,void lock(锁变量) while(w=1) 保护现行进程CPU现场; 现行进程入w的等待队列; 置进程为“等待”状态; 转进程调度; w=1; /* 上锁 */ /* lock(w) */,void lock(锁变量) while(w=1) 保护现行进程CPU现场; 现行进程入w的等待队列; 置进程为“等待”状态; 转进程调度; w=1; /* 上锁 */ /* lock(w) */,3.4.2 进程互斥 3. 使用锁实现进程互斥 如图3-7,说明了两个进程使用同一临界资 源时的操作。两者都必须先执行上锁原语,3.4 进程间的同步与互斥,图3-7

14、进程使用临界资源时的操作,与图3-7相应的进程互斥代码如下:,3.4 进程间的同步与互斥,main() int w=0;/系统初启时置锁状态 cobegin ppa();/进程A ppb();/进程B coend ppa()/进程A ; lock(w); 进程A的临界区CSa; unlock(w); ; ppb()/进程B ; lock(w); 进程B的临界区CSb; unlock(w); ; ,3.4.3 信号灯和P、V操作 1. 信号灯的概念 1965年荷兰Dijkstra提出的进程同步工具 信号灯表示:二元组(s,q) 其中:s具有非负初值的整型变量,代表资 源实体或并发进程的状态;q是

15、一个初始状 态为空的等待队列,3.4 进程间的同步与互斥,3.4.3 信号灯和P、V操作 2. P、V操作原语 系统一般提供P、V操作原语来修改信号灯的值 如果信号灯用s表示,则P操作记为P(s),V 操作记为V(s) 1) P操作:对信号灯进行减1操作,再根据信 号灯的值对调用P操作的进程进行相应处理 2) V操作:对信号灯进行加1操作,3.4 进程间的同步与互斥,3.4.3 信号灯和P、V操作,3.4 进程间的同步与互斥,void p(变量s) /变量s为信号灯 s-; if(s0) /进程进入相应的等待队列 保留调用进程CPU现场; 将该进程进入s的等待队列; 置“等待”状态; 转进程调

16、度; /* p(s) */,1)P操作过程,void v(变量s) /变量s为信号灯 s+; if(s=0) 移出s等待队列首元素; 将该进程入就绪队列; 置“就绪”状态; /* v(s) */,2)V操作过程,3.4.3 信号灯和P、V操作 3. 使用P、V操作实现进程互斥 举例1:说明两个进程使用信号灯实现进 程互斥 设系统中同类的互斥资源只有1个,则: 1)信号灯的初值为1,表示资源可用, 2)信号灯的值小于等于0,表示资源已 经被进程占用,则另一进程只能等待。 相关代码见下页图表,3.4 进程间的同步与互斥,3.4 进程间的同步与互斥,main() int mutex=1;/互斥信号灯 cobegin pa();/进程A pb();/

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号