第2章-处理机管理_第1页
第2章-处理机管理_第2页
第2章-处理机管理_第3页
第2章-处理机管理_第4页
第2章-处理机管理_第5页
已阅读5页,还剩108页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

操作系统 CDIO之路 2012 软件学院 第2章处理机管理 2 1多道程序设计2 2进程的基本概念2 3进程的状态及转换2 4作业的基本概念2 5进程的描述与上下文2 6进程的控制2 7线程2 8处理机调度的原理2 9调度算法2 10UNIX系统进程的结构2 11UNIX系统进程上下文的保存与切换2 12UNIX系统进程控制2 13UNIX系统进程调度 2 1多道程序设计 2 1 1单道程序的顺序执行2 1 2多道程序的并发执行 2 1 1单道程序的顺序执行 程序的顺序性包含两种情况第一 内部顺序性第二 外部顺序性顺序执行的两个特点 1 封闭性 独占系统全部资源 2 可再现性 初始条件相同 运行结果也一定相同 顺序执行的缺点 资源独占性 不利于提高资源的利用率 2 1 2多道程序的并发执行 在多道程序系统中 程序是并发执行的 但在宏观上是存在同时进行的 但在微观上仍是顺序执行的 多道系统的特点 1 并发性 2 资源共享性 并发执行的影响 1 程序之间相互制约 2 不确定性 2 2进程的基本概念 2 2 1进程的定义2 2 2进程的属性2 2 3进程与程序的关系 2 2 1进程的定义 基本定义 1 进程 程序 数据 执行2 进程实体 程序段 相关的数据段 PCB从操作系统的角度来看 将进程分为系统进程和用户进程 2 2 2进程的属性 1 动态性 进程是程序的动态执行过程 2 并发性 多个进程实体共存 3 独立性 有程序计数器和内部状态 4 异步性 进程各自独立 不可预知 5 交往性 即制约性 2 2 3进程与程序的关系 进程与程序是两个密切相关而又不同的概念 进程动态 程序的执行 有并发特征 资源分配的单位 由程序 数据和PCB组成 生成其他进程 可以包括多个程序 程序静态 代码集合 无并发特征 无法生成新的程序 多次执行可以对应多个进程 在动态性 并发性 资源 结构 生成性 对应关系等方面存在显著区别 2 3进程的状态及转换 2 3 1进程的基本状态及转换2 3 2具有挂起功能的进程状态及转换 2 3 1进程的基本状态及转换 图2 1进程的基本状态转换图 2 3 2具有挂起功能的进程状态及转换 随着系统的运行 更多的进程被不断创建 当系统资源不能满足需求时 系统须把某些进程对换到磁盘中 暂时不让其参与进程调度 以达到平滑系统负荷的目的 这个过程称为 挂起 图2 2具有挂起功能的进程状态转换图 2 4作业的基本概念 2 4 1作业的定义2 4 2作业与进程的关系2 4 3作业的状态及转换 2 4 1作业的定义 作业 指计算机系统所做的工作的总称 作业的概念 从用户的角度 作业就是用户要求计算机完成的一项任务 从计算机系统的角度 作业可以包含多个程序和多份数据 而作业说明书将在系统中生成一个作业控制块JCB JobControlBlock 当有若干个作业被成功创建 进入系统 被依次存放在外存上 形成输入的作业流 当输入作业流在操作系统的控制下 逐个作业进行处理 称为处理作业流 2 4 2作业与进程的关系 作业 一项任务 是任务实体静态 是事先要求由一个以上的进程组成 进程 一次执行过程 动态执行实体由操作系统动态分配一个用户进程只能对应于一个作业 作业与进程之间的区别 2 4 3作业的状态及转换 图2 3作业的状态及转换图 2 5进程的描述与上下文 2 5 1进程控制块PCB2 5 2进程上下文 2 5 1进程控制块PCB PCB提供了进程的描述信息 控制信息和资源信息 还有以下作用 1 标识进程的存亡 2 操作系统是根据PCB来对并发执行的进程进行管理和控制的 PCB应包含以下的信息 1 进程标识符 2 进程的当前状态 3 进程相应的程序和数据地址 4 进程资源清单 5 进程优先级 6 CPU现场保护区 7 进程同步和通信机制 8 进程所在队列的PCB的连接字 9 与进程相关的其他信息 2 6进程的控制 2 6 1进程控制机构2 6 2进程控制原语 2 6 1进程控制机构 进程控制一般由操作系统内核中的相应程序来完成 1 操作系统的内核包括中断处理程序 常用设备的驱动程序 进程调度程序 存储器管理程序以及一些被许多模块所共用的基本操作等 2 内核中与进程控制紧密相关的机构 1 进程管理 2 原语操作 2 6 2进程控制原语 对进程的生命周期进行控制 并实现进程状态转换的原语 1 进程创建原语 图2 5进程家族树 进程创建原语的主要操作步骤 1 向系统申请一个空闲的PCB 2 为新进程分配各种资源 3 初始化新进程PCB的内容 4 将新进程的PCB插入到就绪队列 2 进程撤销原语进程撤销可采用两种撤销策略 只撤销指定进程 撤销指定进程及其子孙进程 第二种策略的主要操作步骤 读进程状态 终止进程 判断是否有子孙进程 递归 并回收资源 释放PCB 进程调度程序 3 进程阻塞原语将调用该原语的进程由执行状态转变为阻塞状态 操作步骤 1 停止调用者进程自身的执行 2 保存调用者进程自身的CPU现场信息 3 设置调用者进程自己的状态为阻塞状态 4 把调用者进程的PCB插入到等待队列中 5 转进程调度程序 选择一个新的进程投入运行 4 进程唤醒原语将一个被唤醒的进程的状态由阻塞状态转变为就绪状态 操作步骤 1 找出被唤醒进程的内部标识 2 把被唤醒进程从阻塞队列中移出 3 重新设置该进程的状态为就绪 4 将该进程插入就绪队列 5 比较优先级 高则转进程调度程序 2 7线程 2 7 1线程的概念2 7 2线程与进程的关系2 7 3线程的实现 2 7 1线程的概念 线程是进程的一部分 是进程中相对独立的一个执行流 或子任务 是系统独立调度的基本单位 线程又叫做轻量级进程 图2 6传统进程模型与多线程环境的进程模型 2 7 2线程与进程的关系 线程 有线程的操作系统 无系统资源线程成为调度的基本单位进程并发执行 线程之间并发执行创建或撤销进程的开销小安全性低 进程 传统操作系统 有自己的资源独立调度的基本单位并发性不好创建或撤销进程的开销大安全性高 2 7 2线程的实现 1 用户级线程2 内核级线程3 组合线程 2 8处理机调度的原理 2 8 1处理机的四级调度2 8 2处理机调度的目标2 8 3处理机调度的方式2 8 4处理机调度的时机 2 8 1处理机的四级调度 图2 7处理机的四级调度 2 8 2处理机调度的目标 1 提高系统资源的利用率2 提高系统的吞吐量 降低平均周转时间3 降低平均响应时间4 提供相对的公平机制5 其他子目标 尽可能达到最优 2 8 3处理机调度的方式 1 非抢先方式指调度程序一旦把处理机分配给某个进程 或线程 之后 直到进程 或线程 完成或发生某事件而阻塞时 才把处理机分配给其他的进程 或线程 2 抢先方式指当一个进程 或线程 正在处理机上执行时 系统可以依据某种原则 剥夺已经分配给它的处理机 将处理机分配给其他进程 或线程 2 8 4处理机调度的时机 常见的调度时机 1 正在执行的进程因提出I O请求而暂停执行 2 正在执行的进程执行完成 3 正在执行的进程由于某种错误而终止运行 4 在进程通信或同步过程中 执行了某种原语操作 5 基于优先级调度 有优先级更高的进程进入就绪队列 2 9调度算法 2 9 1先来先服务2 9 2最短周期优先2 9 3最高优先级优先2 9 4时间片轮转法2 9 5多级反馈队列2 9 6实时调度 2009 4 7 35 4 4进程调度算法 先来先服务 FCFS 最短作业优先 shortestjobfirst 时间片轮转法 Roundrobin 多级反馈轮转法 roundrobinwithmultiplefeedback 优先级法 PriorityScheduling 最高响应比优先 highestresponse rationext 2009 4 7 36 本小节学习目标 理解各调度算法的原理学会分析比较各种算法的优缺点能运用所学知识对实例进行分析是本章的重点和难点 回顾 评价算法的各种指标 周转时间 从作业提交给系统到返回结果所需时间 平均周转时间T平均带权周转时间 带权周转时间W T周转时间 E执行时间 响应时间 用户输入一个请求 如击键 到系统给出首次响应 如屏幕显示 的时间 分时系统截止时间 开始截止时间和完成截止时间 实时系统 与周转时间有些相似 公平性 不因作业或进程本身的特性而使上述指标过分恶化 如长作业等待很长时间 论语季氏 不患寡而患不均 优先级 效率 可以使关键任务达到更好的指标 邓小平 让一部分人先富起来 吞吐率 在给定时间内 一个计算机系统所完成的总工作量 设备利用率 指I O设备的使用情况 实现难度 实现该算法是否容易执行开销比 该算法是否消耗太多系统资源 2009 4 7 38 4 4 1先来先服务 FCFS 按照作业提交或进程变为就绪状态的先后次序 分派CPU 当前进程占用CPU 直到执行完或阻塞 才出让CPU 非抢占方式 在进程唤醒后 如I O完成 并不立即恢复执行 通常等到当前作业或进程出让CPU 好比我们在食堂排队打饭 2009 4 7 39 FCFS调度例子 假设 用户区内存空间只有100KB 内存连续分配且运行中不能移动 调度顺序 8 068 484242 42 9 189 426666 24 9 4210 069696 24 10 0610 189696 12 T 42 60 66 96 96 5 72 min W 1 2 2 75 4 8 5 3 55 内存容量100K 8 489 186060 30 调度顺序 A B D C E FCFS调度例子 返回SJF 2009 4 7 41 4 4 1先来先服务 FCFS 特点 最简单的算法 表面上很公平 比较有利于长作业 而不利于短作业 有利于CPU繁忙的作业 而不利于I O繁忙的作业 影响 可能会降低吞吐率增加平均周转时间 2009 4 7 42 4 4 2最短作业优先 SJF ShortestJobFirst 又称为 短进程优先 SPN ShortestProcessNext 这是对FCFS算法的改进 其目标是提高吞吐率 减少平均周转时间 对预计执行时间短的作业 进程 优先分派处理机 通常后来的短作业不抢先正在执行的作业 非剥夺 短作业优先调度例子 T 42 84 108 36 72 5 68 4 min W 1 2 8 4 5 1 5 6 5 3 16 8 068 484242 42 1 8 489 123636 24 1 5 9 5410 18108108 24 4 5 9 429 547272 12 6 9 129 428484 30 2 8 调度顺序 A D B E C 查看FCFS 非抢占式SJF调度例子ExampleofNon PreemptiveSJF ProcessArrivalTimeUseTimeP10 07P22 04P34 01P45 04SJF non preemptive非抢占 平均周转时间T 7 10 4 11 4 8平均带权周转时间W 1 10 4 4 11 4 4 2 56 P1 P3 P2 7 3 16 0 P4 8 12 抢占式SJF调度例子ExampleofPreemptiveSJF ProcessArrivalTimeUseTimeP10 07P22 04P34 01P45 04SJF preemptive抢占 平均周转时间 16 5 1 6 4 7平均带权周转时间T 16 7 5 4 1 6 4 4 1 51 P1 P3 P2 4 2 11 0 P4 5 7 P2 P1 16 2009 4 7 46 SJF算法的特点 优点 比FCFS改善平均周转时间和平均带权周转时间 缩短作业的等待时间 提高系统的吞吐量 缺点 对长作业非常不利 可能长时间得不到执行 未能依据作业的紧迫程度来划分执行的优先级 难以准确估计作业 进程 的执行时间 从而影响调度性能 2009 4 7 47 4 4 3轮转法 RoundRobin 将系统中所有的就绪进程按照FCFS原则 排成一个队列 每次调度时将CPU分派给队首进程 让其执行一个时间片 时间片的长度从几个ms到几百ms 在一个时间片结束时 发生时钟中断 调度程序据此暂停当前进程的执行 将其送到就绪队列的末尾 并通过上下文切换执行当前的队首进程 进程可以未使用完一个时间片 就出让CPU 如阻塞 2009 4 7 48 4 4 3轮转法 RoundRobin 轮转法调度 完成 如何确定时间片 2009 4 7 49 4 4 3轮转法 RoundRobin 时间片长度的确定 时间片长度变化的影响过长 退化为FCFS算法 进程在一个时间片内都执行完 响应时间长 过短 用户的一次请求需要多个时间片才能处理完 上下文切换次数增加 响应时间长 对响应时间的要求 q 时间片 R 响应时间 Nmax 进程数目 时间片长度的影响因素 就绪进程的数目 数目越多 时间片越小 当响应时间一定时 系统的处理能力 应当使用户输入通常在一个时间片内能处理完 否则使响应时间 平均周转时间和平均带权周转时间延长 时间片轮转法 q 1 26 时间片轮转法 q 4 这个例子的最佳时间片是多少 2009 4 7 52 时间片轮转法 q 3 2009 4 7 53 时间片轮转法 q 5 2009 4 7 54 4 4 4多级反馈轮转法 把就绪队列按照进程到达就绪队列的类型和进程被阻塞时的原因分成不同的就绪队列 每个队列按FCFS方式排列 各队列之间的进程享有不同的优先级 但同一队列内优先级相同 当一个进程在执行完它的时间片后 或从睡眠中被唤醒以及被创建之后 将进入不同的就绪队列 多级反馈队列 2009 4 7 56 多级反馈轮转法的特点 多级反馈轮转法不必事先知道各种进程所需的执行时间 仍能基本满足短进程优先和I O频繁的进程优先的需要 因而是目前公认的较好的一种进程调度算法 在UNIX系统 WindowsNT OS 2中都采用了类似的调度算法 2009 4 7 57 本段小结 先来先服务 FCFS 最短作业优先 shortestjobfirst 时间片轮转法 Roundrobin 多级反馈轮转法 roundrobinwithmultiplefeedback 优先级法 PriorityScheduling 最高响应比优先 highestresponse rationext 2009 4 7 58 4 4 5优先级法 PriorityScheduling 按照进程的优先权大小来调度 使高优先权进程得到优先处理的调度策略称为优先权调度算法 进程的优先权的设置可以是静态的 也可以是动态的 2009 4 7 59 静态优先级 静态优先权在进程创建时确定 且的在整个生命期中保持不变 确定进程优先权的依据有 进程类型 通常系统进程 例如对换进程 的优先权高于一般用户态进程的优先权 进程对资源的需求 如进程执行时间及内存需要省的进程应赋予较高的优先权 根据用户要求 由用户的紧迫程度及用户所付费用的多少来确定进程的优先权 2009 4 7 60 动态优先级 动态优先权是指在创建进程时所赋予的优先权 可以随进程的推进而改变 以便获得更好的调度性能 改变优先权的因数 随系统不同而不同 最常考虑的因素是进程的等待时间 已使用处理机的时间 或者资源使用情况等 思考 等待时间长的进程优先级应该提高还是降低 2009 4 7 61 确定动态优先级的原则 在就绪队列中 等待时间延长则优先级提高 从而使优先级较低的进程在等待足够的时间后 其优先级提高到可被调度执行 进程每执行一个时间片 就降低其优先级 从而一个进程持续执行时 其优先级降低到出让CPU 2009 4 7 62 例 线性优先级调度算法 SRR SelfishRoundRobin 本算法是优先级算法的一个实例 它通过进程优先级的递增来改进长执行时间进程的周转时间特征 就绪进程队列分成两个 新创建进程队列 按FCFS方式排成 进程优先级按速率a增加 享受服务队列 已得到过时间片服务的进程按FCFS方式排成 进程优先级按速率b增加 新创建进程等待时间的确定 当新创建进程优先级与享受服务队列中最后一个进程优先级相同时 转入享受服务队列 2009 4 7 63 线性优先级调度算法 SRR F C B A CPU 完成 享受服务进程队列 新创建进程队列 SRR算法的优先级变化 当b a 0时 享受服务队列中永远只有一个进程 SRR算法退化成FCFS算法 当a b 0时 SRR算法就是时间片轮转算法 优先级法调度示例 例如 假定在单CPU条件下有下列要执行的作业 各作业依次到达 相差一个时间单位 用执行时间图描述非抢占优先级调度算法执行这些作业的情况 算出各作业的周转时间和带权周转时间 用执行时间图描述非抢占优先级调度算法执行这些作业的情况 优先级法调度示例 cont 2009 4 7 67 算出各作业的周转时间和带权周转时间 优先级法调度示例 cont 2009 4 7 68 4 4 6最高响应比优先HighestResponseRatioNext HRRN 法 按照高响应比优先的原则 在每次选择作业投入运行时 先计算此时后备作业队列中每个作业的响应比R然后选择其值最大的作业投入运行 R值定义为 R 已等待时间 要求运行时间 要求运行时间 1 已等待时间 要求运行时间 HRN算法实际上是FCFS算法和SJF算法的折衷 优点 缺点 2009 4 7 69 4 4 6最高响应比优先 HRRN 法 FCFS与SJF是片面的调度算法 FCFS只考虑作业等候时间而忽视了作业的计算时问 SJF只考虑用户估计的作业计算时间而忽视了作业等待时间 HRRF是介乎这两者之间的折衷算法 既考虑作业等待时间 又考虑作业的运行时间 既照顾短作业又不使长作业的等待时间过长 改进了调度性能 2009 4 7 70 4 4 6最高响应比优先 HRRN 法 HRRF算法特点 短作业容易得到较高响应比长作业等待时间足够长后 也将获得足够高的响应比饥饿现象不会发生 2009 4 7 71 三 HRRF 算法举例 1 例如 以下四个作业先后到达系统进入调度 作业名到达时间所需CPU时间作业1020作业2515作业3105作业41510 2009 4 7 72 三 HRRF 算法举例 2 假设实施SJFSJF的作业调度顺序为作业1 3 4 2平均作业周转时间T 20 25 19 35 15 50 5 20 15 20 45 4 25平均带权作业周转时间W 20 20 15 5 25 10 45 15 4 2 25 三 HRRF 算法举例 3 假设实施FCFS 如果对它们施行FCFS调度算法平均作业周转时间T 20 30 30 35 4 28 75平均带权作业周转时间W 20 20 30 15 30 5 35 10 4 3 13 三 HRRF 算法举例 4 对作业流执行HRRF调度算法 开始只有作业1 被选中执行时间20ms 作业1执行完毕 响应比依次为1 15 15 1 10 5 1 5 10 作业3被选中 执行时间5ms 作业3执行完毕 响应比依次为1 20 15 1 10 10 作业2被选中 执行时间15ms 作业2执行完毕 作业4被选中 执行时间10ms 平均作业周转时间T 20 15 35 35 4 26 25平均带权作业周转时间W 20 20 15 5 35 15 35 10 4 2 46 作业1324 2009 4 7 75 4 4进程调度算法 小结 先来先服务 FCFS 最短作业优先 shortestjobfirst 时间片轮转法 Roundrobin 多级反馈轮转法 roundrobinwithmultiplefeedback 优先级法 PriorityScheduling 最高响应比优先 highestresponse rationext 哪种算法最好 2 9 1先来先服务 按照进程申请CPU的次序或者作业到达系统的次序 优先调度先来者优点 公平 无饥饿现象 缺点 使短作业 短进程 的响应时间变长 或者平均周转时间变长 2 9 2最短周期优先 选择运行时间最短的作业 或进程 优点 平均周转时间最短 易实现 缺点 作业 或进程 的执行时间有可能无法预知 无法保证避免饥饿的发生 2 9 3最高优先级优先 给作业或者进程赋予优先级1 作业 优先级最高的一个或一组作业 将它们调入内存 分配相应的资源 创建进程并放入就绪队列2 进程 从就绪队列中选择优先级最高的进程确定优先级的方法 1 静态优先级 优点 比较简单 系统开销小 缺点 不公平 不灵活 2 动态优先级 优点 公平性好 灵活 资源利用率高 防止垄断处理机缺点 动态调整优先级需要花费系统开销 实现复杂 2 9 4时间片轮转法 1 固定时间片轮转分给所有进程的时间片的长度是完全相同的2 可变时间片轮转分给每一个进程的时间片长度可不同 达到更好的调度效果 优点 公平和响应及时缺点 对偏重I O的进程处理不太公平 2 9 5多级反馈队列 图2 8多级反馈队列调度 2 9 6实时调度 EDF算法 全称是最早截止任务优先 earliestdeadlinefirst 算法 也称动态优先级调度算法 对时间要求最紧迫的任务先占用处理机 2 10UNIX系统进程的结构 2 10 1进程控制块PCB2 10 2进程的上下文2 10 3进程的状态及转换 2 10 1进程控制块PCB 包含对应进程的描述信息 控制信息和资源信息等1 proc结构的定义 structproc charp stat 进程的状态 charp flag 进程的标志 charp pri 进程的优先数 charp time 用于调度的内存或交换区驻留时间 charp cpu cpu使用情况 即进程最近一次使用cpu的时间 charp nice 进程优先数的修补ushortp uid 实际用户标识符 ushortp suid 被置的用户标识符 shortppgrp 进程组主进程名 shortp pid 进程标识符 shortp ppid 父进程标识符 shortp addr user结构始址 charp aprval 指向虚拟存储空间管理表格的指针 当本进程为当前进程时 该表格的apr项 p aprval charp exflag 标志进程正在执行exec进行自身覆盖 structmmusegp ubseg 进程user结构虚拟存储段映射记录 shortp size 可交换的进程映象长 clicks shortp swaddr 交换区地址 shortp swsize 已被换出外存的段的数目 shortp tsize 正文段长度 shortp ssize 栈段长度 longp sig 该进程接收到的软中断信号 union caddr tp cad 进程睡眠地址 intp int 进程要求内存增长的click数 p unw structtext p textp 指向正文段指针 structproc p link 可运行或睡眠进程的链指针 intp clktim 发生报警时钟软信号的时间 2 user结构定义 structuser structpcbu pcb 进程调度PCB保护区 structmmuprocu segdata 进程虚拟存储空间地址映射表 uintu shmbmap 标志u segdata中哪一个是共享段 ushortu shmix MMUSEG 在shm shmem 中的索引项 指向shmem结构 Int u ksbase 执行栈用户态与核心态的界限 label tu qsav 进程非正常返回的现场保存区 Charu dmm 标志进程数据段是否被双映象 double mapped Charu segflg I O标志位 Charu error 返回的系统调用错误码 ushortu uid 被设置的用户标识符 ushortu gid 被设置的用户组标识符 ushortu ruid 实际用户标识符 ushortu rgid 实际用户组标识符 structproc u procp 指向proc结构的指针 int u ap 指向系统调用参数的指针 union struct intr vall 系统调用第一返回值 intr va12 系统调用第二返回值 r reg off tr off ulimit系统调用返回值 time tr time times的返回时间 u r caddr tu base 进行I O操作的首地址 unsignedu count I O操作的字节数 off tu offset I O操作在文件中字节偏移量 shortu fmode I O操作的文件读 写 执行等状态 ushortu pbsize I O块中已有的字节数 ushortu pboff I O块的字节偏移量 dev tu pbdev I O操作的实际设备号 daddr tu rablock 提前读块的地址 shortu errcnt 系统调用的出错次数 structinode u cdir 当前目录的i节点指针 structinode u rdir 根目录i节点指针 caddr tu dirp 文件的路径名指针 structdirectu dent 当前目录项 structinode u pdir dirp的父目录指针 structfile u ofile NOFILE 用户打开文件表的指针组 Charu pofile NOFILE 每一个被打开文件的权利项组 intu arg 6 当前系统调用的参量表 unsignedu tsize 正文大小 clicks unsignedu dsize 数据大小 clicks unsignedu ssize 栈大小 clicks intu signal NSIG 软中断处理的入口地址 time tu utime 进程用户态执行时间 time tu stime 进程系统态执行时间 time tu cutime 子进程utime总和 time tu cstime 子进程stime总和 struct short pv base 存储直方图的一维数组首地址 unsignepr size 一维数组大小 unsignedpr off 程序寄存器的位移 unsignedpr scale on off标志 u prof 统计程序计数器pc的直方图 short u ttyp 指向进程组的指针 dev tu ttyd 设备名称 struct longux tsize 正文段长度 longux toffset 正文段字节偏移量 longux dsize 数据段长度 longux doffset 数据段字节偏移量 longux entloc 程序执行的首地址 struct ushortf magic 幻数 ushortf nscns 正文中段的个数 Longf timdat 日期与时间的标签 longf cymptr symtab表指针 longf nsyms symtab中表项的个数 ushortf opthdr a out的大小 ushortf flags 标志位 ux filehdr longux entloc 程序执行的首地址 struct ushortf magic 幻数 ushortf nscns 正文中段的个数 Longf timdat 日期与时间的标签 longf cymptr symtab表指针 longf nsyms symtab中表项的个数 ushortf opthdr a out的大小 ushortf flags 标志位 ux filehdr struct chars name 8 段名 longs paddr 物理地址 longs vaddr 虚拟地址 longs lnnoptr 行号指针 longs size 段长度 longs scnptr 段数据指针 longs relptr 段重新定位信息指针 ushorts nreloc 重新定位信息项的个数 ushorts nlnno 行号信息项个数 longs flags 段标志 ux scnhdr 段头信息 struct shorto magic 幻数 shorto stamp 标签 longo tsize 正文段长度 longo dsize 已初始化的数据段长度 longo bsize 未初始化的数据段长度 longo entloc 文件执行的入口点 longo tstart 正文段的基地址 longo dstart 数据段的基地址 ux aouthdr a out内容 u exdata Charu comm DIRSIZ 进程对应的命令名 time tu start 进程开始运行的时间 time tu ticks 进程运行花费的时钟周期数 Longu mem 进程占用的内存大小 Longu ior 进程读块操作个数 Longu iow 进程写块操作个数 Longu iosw 进程对换操作个数 Longu ioch 进程字符操作个数 Charu acflag 记帐标志 Shortu cmask 创立文件的权限屏蔽码 daddr tu limit 当前进程文件大小的限定值 Shortu lock 进程与正文的锁标志 intu stack 1 系统调用exec使用的栈结构 2 10 2进程的上下文 UNIX的上下文由三个层次的内容构成1 用户级 由正文段 即进程的指令代码 数据段 栈段和共享存储段2 寄存器 由程序计数器PC 状态字寄存器PSW 栈指针和通用寄存器的值构成 3 系统级 由proc结构 user结构 虚拟存储空间管理表格和核心栈构成 2 10 3进程的状态及转换 图2 9UNIX进程的状态转换 2 11UNIX系统进程上下文的保存与切换 2 11 1中断与异常2 11 2系统调用接口2 11 3上下文切换 2 11 1中断与异常 算法2 1inthand 功能 中断处理过程 输入 无 输出 无 图2 10inthand算法流程 2 11 2系统调用接口 算法2 2syscall 功能 系统调用处理输入 系统调用号输出 系统调用结果 图2 11syscall算法流程 2 11 3上下文切换 进程上下文切换的步骤 1 决定是否要进行上下文切换及是否此次允许进行上下文切换 2 保存当前进程的上下文 3 采用一定的调度策略由调度程序选择一个内存就绪进程 4 恢复被选中进程的上下文 保存上下文由save context 完成 保存在进程的user结构的PCB保存区中 函数本身返回1 恢复上下文由resume context 完成 被选中进程user结构的PCB保存区中的上下文恢复 函数返回0 两个函数用汇编语言编写 2 12UNIX系统进程控制 2 12 1进程树2 12 2进程的创建2 12 3执行一个文件2 12 4进程的睡眠与唤醒2 12 5进程的终止2 12 6等待子进程终止 2 12 1进程树 图2 12UNIX进程树 2 12 2进程的创建 指一个进程 称为父进程 调用系统调用fork创建一个与父进程具有基本一致内存映象的新进程 称为子进程 算法2 3fork 功能 创建一个子进程 调用格式 fork 输入 无输出 对父进程为子进程的进

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论