




已阅读5页,还剩38页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2020 4 15 OpratinSystem 1 操作系统 二 袁俊 进程管理 2020 4 15 OpratinSystem 2 第一节多道程序设计 一 程序的顺序执行计算机计算处理要按一定的顺序执行 其顺序由编程确定 通常可归结无三个大的步骤 如图所示 对一个程序段中的多条语句 也存在顺序执行的问题 如对于下述三条语句的程序段 S1 a x yS2 b a 5S3 c b 1其中S2必须在a赋值后才能执行 同样 S3也必须在b赋值后才能执行 程序顺序执行的特征 顺序性封闭性可再现性 2020 4 15 OpratinSystem 3 第一节多道程序设计 续一 二 程序的并发执行 上图中程序的输入 处理 打印输出程序间存在着Ii Ci Pi关系 对一个作业的输入 计算和打印三个操作必须顺序执行 但作业间不存在Pi Ii 1的关系 因而对一批程序进行处理时可以使它们迸发执行 该例存在前趋关系 Ii Ci Ii Ii 1 Ci Pi Ci Ci 1 Pi Pi 1 2020 4 15 OpratinSystem 4 第一节多道程序设计 续二 而Ii 1和Ci及Pi 1是重叠的即它们可以迸发执行 对于具有下述四条语句的程序段 S1 a x 2S2 b y 4S3 c a bS4 d c d可画出如右的前趋图 从该图可以看出S1和S2可以迸发执行 S3必须在a和b赋值后才能运行 S4必须在S3后运行 程序迸发执行的特征间断性 由于共享资源和相互协作而产生的制约 并发执行的程序总是断续执行的 2020 4 15 OpratinSystem 5 第一节多道程序设计 失去封闭性并发执行的程序共享各种资源 这些资源的状态被多个程序改变 程序间必然相互影响 不可再现性失去封闭性 程序的执行的结果必然与执行速度有关 即 尽管初始条件和执行环境相同 但可能得到不同的运行结果 因而失去可再现性 三 Bernstein条件为了保证程序执行的可再现性 必须对并发的程序加以某些限制措施 符号定义 R pi a1 a2 a3 am 表示程序Pi在执行期间所需引用的所有变量的集合 称为 读集 W pi b1 b2 b3 bn 是程序执行期间事业要改变的变量的集合 称为 写集 2020 4 15 OpratinSystem 6 第一节多道程序设计 若有两条语句ci a b和wi c 1 则它们的读集和写集分别为 2020 4 15 OpratinSystem 7 第二节进程概念 进程的描述为使程序在多道程序环境下能迸发执行 并能对迸发执行的程序加以控制和描述 传统的 程序 概念已不能揭示这一运行机制的本质 因而引入 进程 概念 一 进程的定义定义 进程是可迸发执行的程序在一个数据集合上的一次运行过程 是系统进行资源分配和调度的独立单位 二 进程的特征 动态性 从诞生到死亡 有其生命周期 其间有运行 阻塞 撤消状态的变化 迸发性 多个进程实体同住内存 在同一时间区间内并行运行 独立性 进程是分配资源的基本单位 是系统中能独立运行的基本单位异步性 由于进程间的相互制约 其执行过程是间断的 即按各自独立的 不可预知的速度推进结构性 进程由PCB 程序段 数据段构成 2020 4 15 OpratinSystem 8 第二节进程概念 三 进程与程序的区别和联系进程与程序说明如下 1 进程是程序的一次运行活动 是动的概念 程序是指令的有序集合 是静的概念 2 一个进程可执行一个或几个程序 如一个进程进行C源程序编译 它要执行前处理 词法和语法分析 代码生成和和优化等几个程序 反之 一个程序也可被几个进程同时执行 3 程序可作为一种软件资源长期保存 而进程是动态的启动和终止的 4 进程需要一种机制 CPU 来执行 进程可被调度和分配资源 能独立运行 并与其它进程并发执行 而程序仅仅是语句的有序集合 2020 4 15 OpratinSystem 9 第三节进程的状态极其转换 一 进程的基本状态进程的三种基本状态就绪态 Ready 执行态阻塞态 进程调度 退出 二 新状态和终止状态不少操作系统在基本状态的基础上又增添了两种基本状态 新 New 状态 一个进程刚刚建立尚未进入就绪队列的状态 终止 Terminated 一个进程已经 正常 非正常 结束 os已经将其从就绪队列中移出 2020 4 15 OpratinSystem 10 第三节进程的状态极其转换 但尚未将它撤消时的状态 三 进程状态的转换进程在运行期间不断从一个状态转换到另一个状态 除了新状态和终止状态只能有一次外 可以多次处于其它状态 进程状态转换的原因 新 就绪状态就绪 执行状态执行 阻塞状态执行 就绪状态执行 终止状态阻塞 就绪状态 2020 4 15 OpratinSystem 11 第三节进程的状态极其转换 进程的挂起状态挂起状态的引入终端用户的需要用户在自已的程序运行期间 发现可疑问题时 希望自已进程静止下来 即若进程处于执行态则暂停执行 若进程处于就绪状态则暂不接受调度 以便研究执行情况修改程序 我们把这种静止状态称为挂起状态 父进程的需要父进程需要考察和修改子进程 或需要协调各子进程时 要挂起自已的子进程 操作系统的需要对换的需要负荷调节的需要 2020 4 15 OpratinSystem 12 第三节进程的状态极其转换 进程状态的转换引入挂起状态后 增加了从挂起 也称静止 到非挂起状态转换 或者相反 可有以下几种情况 活动就绪 静止就绪活动阻塞 静止阻塞静止就绪 活动就绪静止阻塞 活动阻塞 活动就绪 静止就绪 执行 活动阻塞 静止阻塞 事件出现 具有挂起状态的进程状态图 退出 挂起 等待事件 挂起 激活 事件出现 创建 提交 2020 4 15 OpratinSystem 13 第三节进程的状态极其转换 进程的结构 PCB1 数据部分 进程的物理结构 2020 4 15 OpratinSystem 14 第三节进程的状态极其转换 四 进程控制块 PCB 进程控制块是进程实体的一部分 是操作系统最重要的数据结构 PCB中记录了OS所需的用于描述进程情况和控制进程所需的全部信息 进程控制块的作用是进程存在的唯一标识 是OS控制和管理迸发进程运行的依据 是调度进程分配CPU的依据 进程控制块中的信息进程标识信息内部标识在所有的操作系统中 都为每一个进程赋予一个惟一的数字标识符 它通常是一个进程的序号 设置内部标识符主要是为了方便系统使用 外部标识它由创建者提供 通常是由字母 数字组成 往往是由用户 进程 在访问该进程时使用 为了描述进程的家族关系 还应设置父进程标识及子进程标识 此外 还可设置用户标识 以指示拥有该进程的用户 处理机状态信息通用寄存器信息指令计数器程序状态字用户栈指针 两个进程共有代码结构 2020 4 15 OpratinSystem 15 第三节进程的状态极其转换 处理机状态信息处理机状态信息主要是由处理机的各种寄存器中的内容组成的 通用寄存器 又称为用户可视寄存器 它们是用户程序可以访问的 用于暂存信息 在大多数处理机中 有8 32个通用寄存器 在RISC结构的计算机中可超过100个 指令计数器 其中存放了要访问的下一条指令的地址 程序状态字PSW 其中含有状态信息 如条件码 执行方式 中断屏蔽标志等 用户栈指针 指每个用户进程都有一个或若干个与之相关的系统栈 用于存放过程和系统调用参数及调用地址 栈指针指向该栈的栈顶 2020 4 15 OpratinSystem 16 第三节进程的状态极其转换 进程调度信息进程状态指明进程的当前状态 作为进程调度和对换时的依据 进程优先级进程优先级 用于描述进程使用处理机的优先级别的一个整数 优先级高的进程应优先获得处理机 事件进程调度所需的其它信息 它们与所采用的进程调度算法有关 比如 进程已等待CPU的时间总和 进程已执行的时间总和等 其它调度信息 2020 4 15 OpratinSystem 17 进程控制信息程序和数据地址 程序和数据的地址 是指进程的程序和数据所在的内存或外存地 首 址 以便再调度到该进程执行时 能从PCB中找到其程序和数据 进程同步和通信机制 指实现进程同步和进程通信时必需的机制 如消息队列指针 信号量等 它们可能全部或部分地放在PCB中 资源清单 指实现进程同步和进程通信时必需的机制 如消息队列指针 信号量等 它们可能全部或部分地放在PCB中 链接指针 它给出了本进程 PCB 所在队列中的下一个进程的PCB的首地址 2020 4 15 OpratinSystem 18 第三节进程的状态极其转换 执行指针 就绪队列指针 阻塞队列指针 空闲队列指针 PCB链接方式示意图 PCB的组织方式链接方式 2020 4 15 OpratinSystem 19 第三节进程的状态极其转换 按索引方式组织PCB示意图 执行指针 就绪队列指针 阻塞队列指针 就绪索引表 阻塞索引表 PCB的组织方式索引方式 2020 4 15 OpratinSystem 20 第四节Unix的进程 Unix的操作系统进程与用户进程驻留在内存不同的区域 进程在执行操作系统程序和用户程序时使用的内存管理寄存器组不同 使用的某些寄存器 例如栈指针 也不同 Unix中有一个特殊进程 即系统调度进程 它的编号为0 所以称为0 进程 该进程只在核心态运行 它是Unix唯一只在核心态运行的进程 一 Unix进程的存储器图像进程图象包括多个方面 但关键部分是存储器图象 它由PCB 进程执行的程序 数据 进程运行时使用的工作区四部分组成 Unix进程的PCB包括两部分常驻内存的数据结构proc 称 基本控制块 另一部分是进程不在处理机上运行时不访问的数据结构user 它是基本控制块的扩充部分 2020 4 15 OpratinSystem 21 Proc结构的组成 Structproc charp stat 进程charp flag charp pri 进程优先级charp sig 进程接收的中断信号ushortp uid 实际用户标识数 ushortp suid 有效用户标识 charp time 进程驻留时间charp cpu 进程使用CPU的量charp nice 计算优先级用的偏移值charp pgrp 该进程所在进程组的首进程标识数charp pid 进程标识数 charp ppid 父进程标识数 charp sddr 相应user结构的起始页面号 charp size charp wchan int p textp proc NPROC 2020 4 15 OpratinSystem 22 下图是UNIX进程映像的基本结构 其中 共享正文段 数据段和用户栈段位于用户态地址空间 其它部分位于核心态地址空间 P textpP addr x daddrx caddr 共享正文段 常驻内存部分 非常驻内存部分 用户地址空间 proc text 早期的UNIX将进程的PCB以映像的基本结构 其中 共享正文段 数据段和用户栈段位于用户态地址空间 其它部分位于核心态地址空间 2020 4 15 OpratinSystem 23 第五节进程控制 为防止操作系统及其关键数据 如PCB 遭受破坏 将CPU的执行状态分为系统态和用户态 OS内核运行在系统态 而进程控制是由操作系统内核实现的 所以进程控制工作在系统态 一 操作系统内核现代OS是层次结构的 与硬件相关的模块如 中断处理 设备驱动程序 以及运行频率高的模块如时钟管理 进程调度 等都安排在靠近硬件的软件层次中 并使其长驻内存 以提高OS的运行效率 并对它们实施保护 通常把这一程序层称为内核 内核是计算机硬件的第一层扩充软件 内核有两大功能 支撑功能最基本的支撑是 中断处理时钟管理原语操作 资源管理功能如进程管理 存储管理和设备管理 2020 4 15 OpratinSystem 24 第五节进程控制 内核是有利用原语实现的原语 由机器指令组成在运行时不可分割 不可中断的程序 二 进程的创建引起进程创建的事件 分四类用户登录 分时系统中 用户登录 系统为合法用户建立一进程 并将进程插入就绪队列 作业调度 提供服务 运行中的用户程序提出某请求 系统将创建一进程提供用户需求的服务 如打印 将创建打印进程为用户服务 应用请求 以上是由系统内核为用户创建新进程 而现在是由用户为自已创建新进程以便实现并发操作 2020 4 15 OpratinSystem 25 进程图 ProcessGraph 2020 4 15 OpratinSystem 26 OS发现要求创建进程的事件调用创建进程原语 按如下步骤创建进程 申请空白PCB为新进程分配资源 内存 目录 文件 堆栈 外部设备 包括从父进程可继承的资源初始化进程控制块 初始化进程描述信息 进程名 用户标识 进程组 进程父子关系 初始化CPU状态信息初始化进程控制信息 优先级等信息 新进程置入就绪队列 2020 4 15 OpratinSystem 27 第五节进程控制 三 进程的终止1 引起进程终止的事件正常结束在任何计算机系统中 都应有一个用于表示进程已经运行完成的指示 例如 在批处理系统中 通常在程序的最后安排一条Holt指令或终止的系统调用 当程序运行到Holt指令时 将产生一个中断 去通知OS本进程已经完成 在分时系统中 用户可利用Logsoff去表示进程运行完毕 此时同样可产生一个中断 去通知OS进程已运行完毕 异常结束越界错误 这是指程序所访问的存储区 已越出该进程的区域 保护错 进程试图去访问一个不允许访问的资源或文件 或者以不适当的方式进行访问 例如 进程试图去写一个只读文件 特权指令错 用户进程试图去执行一条只允许OS执行的指令 2020 4 15 OpratinSystem 28 第五节进程控制 非法指令错 程序试图去执行一条不存在的指令 出现该错误的原因 可能是程序错误地转移到数据区 把数据当成了指令 运行超时等待超时算术运算错I O故障外界干预外界干预并非指在本进程运行中出现了异常事件 而是指进程应外界的请求而终止运行 这些干预有 操作员或操作系统干预 由于某种原因 例如 发生了死锁 由操作员或操作系统终止该进程 父进程请求 由于父进程具有终止自己的任何子孙进程的权利 因而当父进程提出请求时 系统将终止该进程 父进程终止 当父进程终止时 OS也将他的所有子孙进程终止 2020 4 15 OpratinSystem 29 第五节进程控制 2 进程终止过程在PCB集合中检索出该进程的PCB 若进程在执行 中止执行 设置调度标志为TRUE 用于指示该进程被终止后应重新进行调度 终止该进程子孙进程若该进程还有子孙进程 还应将其所有子孙进程予以终止 以防他们成为不可控的进程 回收其资源将被终止进程所拥有的全部资源 或者归还给其父进程 或者归还给系统 将被终止进程的PCB从所在队列移出 将被终止进程 它的PCB 从所在队列 或链表 中移出 等待其他程序来搜集信息 2020 4 15 OpratinSystem 30 第五节进程控制 四 进程的阻塞和唤醒1 引起阻塞和唤醒的事件请求系统服务正在执行的进程请求OS服务 但OS由于某原因不能立即响应 该进程只能转无阻塞状态 启动某操作进程启动某设备后 该设备执行 但进程必须等待该设备完成任务后才能继续工作 则完成前被阻塞 新数据未到对相互合作的进程若一个进程在得到另一进程发来的数据前 不能向前推进 只有被阻塞 无新工作可作系统往往设置一些特殊当它们的功能完成后 便把自己阻塞起来等待新任务到来 如 系统中的发送进程 当发送完数据后 只有等待新任务到来 若无发送请求 则将自己阻塞 2020 4 15 OpratinSystem 31 第五节进程控制 2 进程阻塞过程进程调用block原语将自己阻塞 进程阻塞是一种自身的主动行动 进入block过程后 先停止进程执行 将PCB中的运行态设置为阻塞态 将PCB插入阻塞队列 若系统设置了多个阻塞队列 则将该PCB置如有相同事件的阻塞队列 转进程调度程序 将CPU分配给就绪队列中一新的进程 3 进程唤醒过程被阻塞进程期待事件发生后 则有关进程调用唤醒原语wakeup将等待该事件的进程唤醒 唤醒原语执行过程是 将被阻塞进程PCB从等待该事件的阻塞队列中移出 将PCB中的阻塞态改为就绪态 将该进程PCB插入就绪队列注意 block原语和wakeup原语是一对作用相反的原语 在某些进程中使用了阻塞原语则在与之合作的进程中必然调用唤醒原语来唤醒阻塞进程 2020 4 15 OpratinSystem 32 第五节进程控制 四 进程的挂起和激活1 进程的挂起过程用户进程或父进程请求将自己或子孙挂起时 系统利用挂起原语suspend将指定进程或处于阻塞状态的进程挂起 挂起原语的执行过程 检查被挂起进程的状态 若处于活动就绪状态 则将其改为静止就绪状态 若处于活动阻塞状态 则将其改为静止阻塞状态 为了方便用户或父进程考察该进程的运行情况 把该进程的PCB复制到某指定内存区 若挂起的是正在执行的进程 则转调度程序重新调度 2020 4 15 OpratinSystem 33 第五节进程控制 2 进程的激活过程发生激活事件时 则产生激活某进程的要求 若进程驻留在外存上而内存有足够的空间 则可将外存上处于静止就绪状态的进程换入内存 系统调用激活原语active将指定进程激活 激活原语将进程从外存上调入内存 检查进程的现行状态 若是静止就绪 则将其改为活动就绪 若是静止阻塞 则将其改为活动阻塞 2020 4 15 OpratinSystem 34 第六节线程 20世纪80年代提出线程概念 是为了提高系统的迸发能力 从而提高系统的吞吐率 现代OS都引入了线程 甚至数据库管理系统 程序设计语言也引入了线程概念 一 线程的引入传统OS为了实现进程的迸发 必须 创建新进程并为其分配资源 撤消进程并回收其资源 为了保证诸进程通过竞争资源从而迸发执行 必须控制进程的状态切换 而应该尽可能减少切换所消耗CPU的时间 以及资源 由于进程是资源的拥有者 在创建 撤消和状态转换时 将付出较大的时间 空间开销 因此 系统中不可设置过多的进程进程切换频率不可太高但 这一限制导致系统的迸发程度降低 与OS的设计原则不符 2020 4 15 OpratinSystem 35 第六节线程 为了克服这一限制 引入线程概念 二 线程及其应该具备的性质线程是进程内一个相对独立的 可调度的执行单元 线程应具有如下性质 线程是进程内相对独立的可执行单元 线程是OS的基本调度单元 创建进程时 至少需要同时为其创建一个初始线程线程可以创建其
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 火灾应急预案系统(3篇)
- 行政管理者的决策能力试题及答案
- 建筑工艺与施工安全关系试题及答案
- 不锈钢制造装备项目规划设计方案(参考)
- 2025年产业扶贫项目实施过程中社会稳定风险预警与控制报告
- 构建体系中级经济师的试题及答案
- 电气火灾事故应急预案(3篇)
- 建筑工程技术交流与沟通能力试题及答案
- 2025年物联网设备安全漏洞分析与防护策略深度研究报告
- 热媒火灾应急预案(3篇)
- 《寄冰》-完整版课件
- 内科学-骨髓增生异常综合征(MDS)
- 办公室事故防范(典型案例分析)
- 工期定额-民用建筑
- 地球的不同圈层英文版
- 八年级下册英语七选五专项讲练一
- 两班倒排班表excel模板
- ISO31000风险管理标准中文版
- 《S7-1200-PLC-编程及应用技术》试题试卷及答案2套
- 电土施表4-18混凝土结构工程养护记录.docx
- 医疗质量与安全管理委员会组成与职责
评论
0/150
提交评论