已阅读5页,还剩37页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
操作系统 Operating Systems WINDOWSWINDOWS UNIXUNIX LINUXLINUX OS2OS2 VxWorksVxWorks Mac OSMac OS 第二章 进程管理 第二章进程管理 2.1 进程的基本概念 2.2 进程控制 2.3 进程同步 2.4 经典进程的同步问题 2.5 进程通信 2.6 线程 2.1 进程的基本概念 2.1.1 程序的顺序执行及其特征 S1: a:=x+y; S2: b:=a-5; S3: c:=b+1; 1. 顺序性-顺序执行; 2. 封闭性-程序运行时独占全机资源,不受外界影响; 3. 可再现性-程序重复执行时将得到相同结果; S1S2S3 ab 2.1.3 程序的并发执行及其特征 对对于具有下述四条语语句的程序段: S1: a:=x+2 S2: b:=y+4 S3: c:=a+b S4: d:=c+b S1 S3S4 a c S2 b d 程序的并发执行时的特征 间断性-并发执行导致间断性; 失去封闭性-多个程序共享资源,受外界影响; 不可再现性-程序重复执行时可能到不同结果; 缓存区缓存区BUFBUFP1P2 案例 例如:某交通路口设置了一个自动计数系统,该系统由观 察者和报告者共同组成。 观察者 报告者 交通路口自动计数系统 观察到一辆卡车 将计数值N累加1 将计数值N清0 输出计数值N 7 7 Procedure 观察者 begin 观察到一辆卡车; N=N+1; end Procedure 报告者 begin print N; N=0; end 假设某时刻N的值为m,可能出现下面情况 : print的N值 N的最终取值 (1)m+1 0 (2)m 1 (3)m 0 观察者 ;报告者 报告者; 观察者 报告者Print N; 观察者N=N+1;报告者N=0 操作系统为什么要引入进程概念? 刻画系统的动态性,发挥系统的并发性,提高资源利用率。 程序是并发执行的,即不是连续而是走走停停的。 程序的并发执行引起资源共享和竞争问题,执行的程序不 再处在封闭环境中。 “程序”自身只是计算任务的指令和数据的描述,是静态概念 无法刻画程序的并发特性, 系统需要寻找一个能描述程序动态执行过程的概念 进程的特征 结构特征 动态性 并发性 独立性 异步性 进程的特征 结构特征 为使程序(含数据)能独立运行,应为之配置一进程控制 块(PCB,Process Control Block); 由程序段、相关的数据段和PCB三部分便构成了进程 实体。 PCB常驻内存 程序段 数据段 PCB 动态特征的集中反映 描述要完成的功能 操作对象及工作区 进程的特征 动态性 进程的最基本的特征。 程序只是一组有序指令的集合,并存放于某种介质上, 其本身并不具有运动的含义,因而是静态的。 进程实体有一定的生命期: “它由创建而产生,由调度而执行,由撤消而消亡” 作业调度与进程调度 进程的特征 并发性 并发性是进程的重要特征,也成为OS的重要特征。 引入进程的目的:正是为了使其进程实体能和其它进程 实体并发执行; 独立性 在传统的OS中,独立性是指进程实体是一个能独立运行 、独立分配资源和独立接受调度的基本单位。 异步性 进程按各自独立的、 不可预知的速度向前推进,或说进 程实体按异步方式运行。 进程的定义 较典型的进程定义有: (1)进程是程序的一次执行。 (2)进程是一个程序及其数据在处理机上顺序执行时所发 生的活动。 (3)进程是程序在一个数据集合上运行的过程,它是系统 进行资源分配和调度的一个独立单位。 我们可以把传统OS中的进程定义为: “进程是进程实体的运行过程,是系统进行资源分配和 调度的一个独立单位” 进程的三种基本状态 就绪(Ready)状态 进程已分配到除CPU以外的所有必要资源。 就绪队列 执行状态 进程已获得CPU,其程序正在执行。 在单处理机系统中,只有一个进程处于执行状态; 在多处理机系统中,则有多个进程处于执行状态。 阻塞状态 正在执行的进程由于发生某事件而暂时无法继续执行时, 便放弃处理机而处于暂停状态。 引起阻塞的事件 进程三个基本状态及其转换 执行 就绪 阻塞 进 程 调 度 时 间 片 完 I/O请求 I/O完成 挂起状态 引入挂起状态的原因 (1)终端用户的请求。 (2) 父进程请求。 (3) 负荷调节的需要。 为了让某些进程暂时不参与进程调度,对换到外存中,对换到外存中, 释放它占有的资源 (4) 操作系统的需要。 挂起状态(静止状态)非挂起状态(活动状态) 具有挂起状态的进程状态图 释放 激 活 挂 起 调 度 时 间 片 完 I/O 请求 执行 活动 就绪 释放 静止 就绪 激 活 挂 起 静止 阻塞 活动 阻塞 挂 起 创建状态和终止状态 创建状态 为一个新进程创建PCB,并填写必要的管理信息; 该进程所必需的资源或其它信息尚未分配 终止状态 当一个进程到达了自然结束点,或是出现了无法克服的 错误,或是被操作系统所终结,或是被其他有终止权的 进程所终结,它将进入终止状态。 终止态的进程不能再执行。 一旦其它进程完成了对终止状态进程的信息提取之后, 操作系统将删除该进程。 进程的五种基本状态及转换 执行 就绪阻塞 进 程 调 度 时 间 片 完 I/O请求 I/O完成 创建 终止 许 可 结束 具有创建、终止和挂起状态的进程状态图 释放 激 活 挂 起调 度 时 间 片 完 I/O 请求 执行 活动 就绪 释放 静止 就绪 激 活 挂 起 静止 阻塞 活动 阻塞 挂 起 创建 许 可 许 可 终止 结束 2.1.5 进程控制块 进程控制块PCB(Process Control Block) 系统为每个进程定义的一个数据结构 PCB中记录了操作系统所需的、用于描述进程的当前 情况以及控制进程运行的全部信息。 PCB是进程存在的惟一标志。 最重要的记录型数据结构。 PCB应常驻内存 专门开辟的PCB区内 进程控制块中的信息 1. 进程标识符 2. 处理机状态 3. 进程调度信息 4. 进程控制信息 1 进程控制块进程标识符 内部标识符 一个惟一的数字标识符,它通常是一个进程的序号。 外部标识符 它由创建者提供,通常是由字母、数字组成,往往是 由用户(进程)在访问该进程时使用。 为了描述进程的家族关系,还应设置父进程标识及子 进程标识。 设置用户标识,以指示拥有该进程的用户。 2 进程控制块处理机状态 处理机状态信息主要是由处理机的各种寄存器中的内容组成的 这些寄存器包括: 通用寄存器,它们是用户程序可以访问的,用于暂存信息; 指令计数器,其中存放了要访问的下一条指令的地址 程序状态字PSW,含有状态信息,如条件码、执行方式、中 断屏蔽标志等; 用户栈指针,指每个用户进程都有一个或若干个与之相关的系 统栈,用于存放过程和系统调用参数及调用地址,栈指针指向 该栈的栈顶。 3 进程控制块进程调度信息 在PCB中还存放一些与进程调度和进程对换有关的信息, 包括: 进程状态; 进程优先级,优先级高的进程应优先获得处理机; 进程调度所需的其它信息,它们与所采用的进程调度算法 有关,比如,进程已等待CPU的时间总和、进程已执行的 时间总和等; 事件,指进程由执行状态转变为阻塞状态所等待发生的事 件,即阻塞原因。 4 进程控制信息 程序和数据的地址,指进程的程序和数据所在的内存或外 存地(首)址 进程同步和通信机制,指实现进程同步和进程通信时必需 的机制; 资源清单,即一张列出了除CPU以外的、进程所需的全部 资源及已经分配到该进程的资源的清单; 链接指针,它给出了本进程(PCB)所在队列中的下一个进 程的PCB的首地址。 进程控制块的组织方式 链接方式 索引方式 链接方式 PCB表 执行指针 就绪队列指针 阻塞队列1指针 阻塞队列2指针 空闲队列指针 链接方式 索引方式 执行指针 就绪表指针 阻塞表1指针 PCB表 PCB1 PCB2 PCB3 PCB4 PCB5 PCB6 PCBn 阻塞索引表1 阻塞表2指针 2.2 进程控制 进程控制是进程管理中最基本的功能。 进程控制任务: 进程创建、终止、进程状态的转变 进程控制一般是由OS的内核中的原语来实现的。 原语是由若干条指令组成的,用于完成一定功能的一个 过程。 它与一般过程的区别在于:它们是“原子操作”。因此, 在执行过程中不允许被中断。 原子操作在管态下执行,常驻内存。 2.2.1 进程的创建进程树 引起创建进程的事件 用户登录。 作业调度。 提供服务。 应用请求。 进程的创建 调用进程创建原语Create( )按下述步骤创建一个新进程: 1. 申请空白PCB。 2. 为新进程分配资源。 3. 初始化进程控制块:初始化标识信息、初始化处理机状态 信息、初始化处理机控制信息。 4. 将新进程插入就绪队列,如果进程就绪队列能够接纳新进 程, 便将新进程插入就绪队列。 2.2.2 进程的终止 引起进程终止的事件 正常结束 异常结束 越界错误。 保护错。 非法指令。 特权指令错。 运行超时。 等待超时。 算术运算错。 I/O故障。 外界干预 操作员或操作系统干预。 父进程请求。 父进程终止。 进程的终止过程 1. 从PCB集合中检索出该进程的PCB,读出该进程的状态。 2. 若正处于执行状态,应立即终止该进程的执行,并置调度标 志为真,重新调度。 3. 若还有子孙进程,还应将其所有子孙进程予以终止。 4. 将被终止进程所拥有的全部资源,或者归还给其父进程, 或 者归还给系统。 将被终止进程(它的PCB)从所在队列(或链表)中移出, 等待 其他程序来搜集信息。 2.2.3 进程的阻塞与唤醒 引起进程阻塞和唤醒的事件 1) 请求系统服务 2) 启动某种操作 3) 新数据尚未到达 4) 无新工作可做 进程阻塞过程 进程通过调用阻塞原语block把自己阻塞: 1. 该进程还处于执行状态,应先立即停止执行, 2. 把进程控制块中的现行状态由“执行”改为阻塞,并将 PCB插入阻塞队列。 应将本进程插入到具有相同事件的阻塞(等待)队列。 3. 重新调度,并进行切换。 保留被阻塞进程的处理机状态(在PCB中) 再按新进程的PCB中的处理机状态设置CPU的环境 进程唤醒过程 有关进程调用唤醒原语wakeup( ),将等待该事件的进程 唤醒: 1. 把被阻塞的进程从等待该事件的阻塞队列中移出 2. 将其PCB中的现行状态由阻塞改为就绪 3. 将该PCB插入到就绪队列中。 进程的唤醒 block原语和wakeup原语是一对作用刚好相反的原语。 如果在某进程中调用了阻塞原语,则必须在与之相合作的 另一进程中或其他相关的进程中安排唤醒原语. 进程A进程B 等待事件1 调用阻塞原语 阻塞自己 事件1发生 调用唤醒原语唤 醒被阻塞进程 2.2.4 进程的挂起与激活 挂起原语suspend( ) 将指定进程或处于阻塞状态的进程挂起。 挂起原语的执行过程是: 1. 检查被挂起进程的状态 若处于活动就绪状态,便将其改为静止就绪; 对于活动阻塞状态的进程,则将之改为静止阻塞。 2. 把该进程的PCB复制到某指定的内存区域。 3. 若被挂起的进程正在执行,则转向
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 农产品采购合同的法律条款
- 物流服务外包精准协议
- 2025建筑工程公司临时用工合同
- 企业内训材料编写与更新标准流程
- 企业内训课程设计与执行方案
- 采购申请审批流程标准化模板采购效率提升
- 2025版终止商业租赁合同
- 聚丙烯饰品盒行业深度研究报告
- 2025有限期借款合同样本
- 中国资料综合柜项目投资可行性研究报告
- 隧道工程施工质量常见问题及解决方案
- 2025-2026学年苏教版三年级科学上册期中达标测试卷(三)含答案与解析
- 2025年党校条例试题及答案详解
- 2025年国家能源集团企业文化考试题库及答案
- 看一次禁毒电影活动方案
- 2025年学法普法考试答案(全套)
- 2025太原迎泽区社区劳动保障协理员和城镇最低生活保障协理员招聘考试模拟试题及答案解析
- 消防公司企业简介
- 代购汽车买卖合同范本
- 茅台酒品饮讲解
- T∕CBMF 89-2020 T∕CCPA 16-2020 预拌混凝土智能工厂评价要求
评论
0/150
提交评论