资源预览内容
第1页 / 共85页
第2页 / 共85页
第3页 / 共85页
第4页 / 共85页
第5页 / 共85页
第6页 / 共85页
第7页 / 共85页
第8页 / 共85页
第9页 / 共85页
第10页 / 共85页
亲,该文档总共85页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第三章 进 程 管 理陆松年 snlusjtu.edu.cn1作业管理的功能 n作业调度从预先存放在辅助存储设备中 的一批用户作业中,按照某种方法选取若 干作业,为它们分配必要的资源,决定调 入内存的顺序。n建立相应的用户作业进程和为其服务的 其他系统进程。n然后再把这些进程提交给进程调度程序 处理。n作业管理是宏观的高级管理,进程管理 是微观的低级管理。 2作业的状态变迁 (1)后备状态作业的提交后,操作系统要对作业进行 登记,建立并填写一些与作业有关的表格 。建立一个作业控制块(JCB)。(2)执行状态它分配必要的资源,提交给进程管理模 块(3)完成状态从作业队列中去掉,回收作业所占用的 资源 3作业调度算法 n(1)先来先服务(FCFS) 有利于长作业而不利 于短作业。n(2)短作业优先(SJF) 较短的作业平均等待时 间 ,较大的系统吞吐率。n(3)响应比高优先(HRN) 求等待时间与执行 时间两者时间之比。相对等待时间长优先。n(4)优先级调度 作业的紧急程度、资源要求、 类别等。选择调度算法考虑的因素:最高的吞吐率,最 高的资源利用率,合理的作业调度,使各类用户都 满意。 43.1 进 程 概 述 进程的定义:进程是程序处于一个执行环境中 在一个数据集上的运行过程,它是系统 进行资源分配和调度的一个可并发执行 的独立单位。3.1.1 进程的概念5“进程”与“程序”的关系 n进程是程序的一次动态执行活动,而程 序是进程运行的静态描述文本。n一个进程可以执行一个或多个程序。n同一程序也可被多个进程同时执行。n程序是一种软件资源,它可以长期保存 ,而进程是一次执行过程,它是暂时存在 的,动态地产生和中止的。63.1.2 进程的组成 n进程是在一个上下文的执行环境中执行的,这 个执行环境称为进程的映像,或称图像。n包括处理机中各通用寄存器的值,进程的内存 映像,打开文件的状态和进程占用资源的信息 等。进程映像的关键部分是存储器映像。 n进程存储器映像由以下几部分组成:v进程控制块(PCB)、v进程执行的程序(code)、v进程执行时所用的数据、v进程执行时使用的工作区。 7共享正文段工作区数据区进程控制块进程的基本组成图81. 进程控制块nPCB是系统用于查询和控制进程运行的档案 ,它描述进程的特征,记载进程的历史,决定 进程的命运。 nPCB可分为两部分:一部分是进程基本控制块。基本控制块要常 驻内存。另一部分是进程扩充控制块。当进程不处于 执行状态时,操作系统就不会访问这部分信息 。扩充控制块可以在盘交换区与内存之间换入 换出。92. 共享正文段n共享正文段是可以被多个进程并发地执 行的代码,由不可修改的代码和常数部分 组成,例如:编辑程序vi。n用户用C语言所编的程序,经编译后产生 的代码也是作为共享正文段装入内存的。 3. 数据段进程执行时用到的数据,如C程序中的外部 变量和静态变量。 如进程执行的程序为非共享程序,则也可 构成数据段的一部分。 104. 工作区n核心栈进程在核心态运行时的工 作区。n用户栈进程在用户态下运行时的 工作区。n在调用核心的函数或用户的函数时, 两种栈分别用于传递参数、存放返回地 址、保护现场以及为局部动态变量提供 存储空间。113.1.3 进程的状态及其变化 n进程具有生存期,它有一个创建、活 动及消亡的过程。 n进程在其整个生存期间可处于不同的 状态,有一些不同的特征,其中最基本 的状态有以下三种。 执行(Running)状态就绪(Ready)状态阻塞(Blocked)状态 12进程状态的转换图执行就绪阻塞133.2 进程控制块n进程的标识信 息n进程的特征n现场保护区n资源信息n运行管理信息 n进程的状态n进程的位置和大 小n进程通信信息n进程间联系 在PCB中一般包括以下的信息: 141. proc结构UNIX中常驻内存的PCB部分称为proc结构 。 struct proc charp_stat;/* 进程状态 */charp_flag;/* 进程标志 */charp_pri;/* 进程运行的优先数 */charp_time;/* 进程驻留时间 */charp_cpu;/* 进程使用CPU的量 */charp_nice;/* 进程优先数偏置值 */ushortp_uid;/* 实际用户标识数 */ushortp_suid;/* 有效用户标识数 */short p_pgrp;/* 所在进程组的首进程标识数 */ 15struct proc (续)shortp_pid;/* 进程标识数 */ shortp_ppid;/* 父进程标识数 */ shortp_addr;/* 相应user结构的起始页面号 */ shortp_size;/* 可交换存储映像的大小*/ shortp_swaddr;/* 交换区的磁盘地址 */ shortp_sig;/* 进程收到的软中断信号 */ caddr_t p_wchan;/* 进程睡眠原因 */ struct text*p_textp;/*指向正文段控制结构的指针 */ struct proc*p_link;/* 运行队列进程或各睡眠队列进程的链接指针 */ ; 16text结构系统分配一个控制块text结构,以便于多个进 程共 享一个可执行程序和常数段。 struct text short x_daddr; /* 正文段在盘交换区地址 */short x_size;/* 正文段块数 */struct proc *x_caddr; /* 指向链接的proc结构 */struct inode *x_iptr;/* 指向正文段所在文件的 内存索引节点的指针 */charx_count; /* 共享该正文段的进程数 */charx_ccount;/* 共享该正文段且映像在内存 的进程数 */ charx_flag;/* 标志 */ ;172. user结构 struct user struct pcb u_pcb; /* 进程切换时保存硬件环境区域 */ ushort u_uid;/* 有效用户标识数 */ushort u_gid;/* 有效用户组标识数 */ushort u_ruid;/* 实际用户标识数 */ushort u_rgid;/* 实际用户组标识数 */struct proc *u_procp;/* 指向相应proc结构的指针 */struct file *u_ofileNOFILE;/* 用户户打开文件表 */unsignedu_tsize;/* 代码段长度 */unsignedu_dsize;/* 数据段长度 */unsignedu_ssize;/* 堆栈段长度 */int u_signalNSIG; /*软软中断信号的处处理函数地址表 */time_t u_utime;/* 进程用户态运行时间累计值 */time_t u_stime;/* 进程核心态运行时间累计值 */ ;183. 进程映像的基本结构p_textp p_addrx_daddr x_caddruser核心栈数据段用户栈共享 正文段常驻内存部分 非常驻内存部分 用户地址空间 194. 多队列的PCB组织结构PCB0PCB0PCBPCBPCBPCB 0PCBPCB0PCB执行队列 就绪队列 阻塞队列 散列表 203.3 调度3.3.1 调度概述n 高级调度:又称作业调度,它决定处于输入池 中的哪个后备作业可以调入主系统,成为一个或 一组就绪进程。n 中级调度:又称对换调度,它决定处于交换区 中的就绪进程中哪一个可以调入内存,以便直接 参与对CPU的竞争。在内存资源紧张时,将内存 中处于阻塞状态的进程调至交换区。n 低级调度:又称进程调度或处理机调度,它决 定驻在内存中的哪一个就绪进程可以占用CPU, 使其获得实实在在的执行权力。21三种调度的工作情况图后备 作业 队列高 级 调 度诸 进 程中 级 调 度诸 进 程低 级 调 度占用 CPU 的执行 进程终止 进程输入池 交换区 内存 223.3.2 进程调度策略n进程切换的两种方式:不可剥夺(或不可抢占)方式可剥夺方式n调度策略的权衡因素:考虑不同的的设计目标。 批处理系统,提高运行效率,取得最大的 作业吞吐量和减少作业平均周转时间; 交互式分时系统,能及时响应用户的请求 ; 实时系统,能对紧急事件作出及时处理和 安全可靠。23调度策略的权衡因素(续)n 调度算法应能充分使用系统中各种类 型资源,使多个设备并行地工作。n 既能公平地对待各个进程,使它们能 均衡地使用处理机,也能考虑不同类型 进程具有不同的优先权利。n 合理的系统开销。243.3.3 进程调度算法n先来先服务(FIFO)调度算法n时间片轮转法n优先级调度算法 n多级反馈队列调度算法n实时系统调度策略 251. FIFO调度算法n按照进程达到就绪队列的时间次序分配处理 机,这是一种不可强占式的简单算法。一旦进 程占用了处理机,它可一直运行到结束或因阻 塞而自动放弃处理机。n缺点是当一个大进程运行时会使后到的小进 程等待很长时间,这就增加了进程平均等待时 间。n对于I/O繁忙的进程,每进行一次I/O都要等 待其他进程一个运行周期结束后才能再次获得 处理机,故大大延长了该类作业运行的总时间 ,也不能有效利用各种外部设备资源。 262. 时间片轮转法n 基本思想是按进程到达的时间排在一个 FIFO就绪队列中,每次选择队首的进程占用 处理机并运行一段称为“时间片”的固定时间 间隔。n 在时间片内,如进程运行任务完成或因 I/O等原因进入阻塞状态,该进程就提前退 出就绪队列,调度程序就使就绪队列中的下 一个进程占用处理机,使用一个时间片。n 当一个进程耗费完一个时间片而尚未执行 完毕,调度程序就强迫它放弃处理机,使其 重新排到就绪队列末尾。272. 时间片轮转法(续)n时间片轮转法较适合于交互式分时系统。n系统的效率与时间片大小的设置有关。如时间 片过大,系统与用户间的交互性就差;如时间 片太小,进程间切换过于频繁,系统开销就增 大。 n在系统中可设置时间片大小不同的n个队列。n将运行时间短、交互性强或I/O繁忙的进程安 排在时间片小的队列,这样可以提高系统的响 应速度和减少周转时间。n将需要连续占用处理机的进程安排在时间片长 的队列中,这样可减少进程切换的开销。 根据 运行状况,进程可以从时间片小的队列中转入 时间片较长的队列。283. 优先级调度算法两类优先级调度算法:静态优先级法:在进程创建时就赋予一个优先数,在进程运行期间该优先数保持不变。 动态优先级法:反映进程在运行过程中不同阶段 的优先级变化情况。29(1) 静态优先数的确定n系统进程应当赋予比用户进程高的优先 级。n短作业的进程可以赋予较高的优先级。n I/O繁忙的进程应当优先获得CPU。n根据用户作业的申请,调整进程的优先 级。n静态优先权法较适合于实时系统,其优 先级可根据事件的紧迫程度事先设定。 30(2)动态优先级的考虑 n对于一个总体CPU忙的进程,在其I/O阶段 就应提高其优先级,而在其CPU繁忙阶段,可 以降低该进程的优先级。n对于运行到某一阶段的进程,需要和用户交 互才能正确运行下去,也应当在该阶段提高优 先级,以减少用户等待的时间。n进程占用CPU时间越长,就可降低其优先级 ;反之一个进程在就绪队列中等待的时间越长 ,就可升高其优先级。n也可根据进程在运行阶段占用的系统资源, 如内存、外部设备的数量和变化来改变优先级 。 314. 多级反馈队列调度算法最高优先级队列次高优先级队列最低优先级队列CPU进入系统优先级降低运行完成撤离系统323.4 UNIX系统的进程调度3.4.1 进程的切换调度算法1. UNIX的切换调度策略采用动态优先权算法:在一个适当的时机,选择 一个优先权最高,也即优先数(p_pri)最小的就 绪进
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号