文档详情

作业的状态及其转换

宝路
实名认证
店铺
PPT
296.61KB
约26页
文档ID:47881444
作业的状态及其转换_第1页
1/26

本章学习目标返回本章首页1、作业的概念 2、作业调度的概念 3、作业调度的基本算法 4、操作系统为用户提供的几种接口作业管理2.1 作业的概念 使用计算机来计算来运行用户程序有三个步骤: (1)用某种语言(例如FORTRAN语言)编制一个 程 序, 它被称为源程序 (2)将源程序和初始数据记录在某种输入介质上 例如穿成一盘纸带,或在终端设备(包括键盘、显 示器)上直接编辑源程序 (3)按照一定要求来控制计算机工作,并经过加工 最后算出结果返回本章首页(1)编辑(修改):建立新文件或是对原有 文件进行修改 (2)编译:请求系统把修改好的源程序翻译 成浮动目标模块,并将它放在磁盘上,也可以 穿孔输出或二者有之 (3)链接:请求系统把主程序模块和其他所 需要的子程序和例行程序链接装配在一起,成 为一个可执行的完整的内存映像文件下一页返回本节作业,即用户在计算机系统中完成一个任务的过程一个作业由3部分组成,即程序、数据及作业说明书 其中,作业说明书体现了用户对作业的控制意图2.1 作业的概念 2.2 作业调度 2.2.1 作业的状态及其转换一个作业从进入系统到退出系统一般要经过提交、后备、执行、 完成这4个状态。

其状态及转换如图2.1所示提交后备后备运行就绪阻塞完成(1) 提交状态一个作业通过用户由输入设备进入输入系统的过程 ,称作提交状态2) 后备状态作业提交后,由系统为该作业建立作业控制块(JCB ,Job Contrd Block),并把它插入后备作业队列中,等待作业调 度程序的调度3) 执行状态后备状态的作业若被作业调度选中,并且分配了必 要的资源,由作业调度程序建立相应的进程这一状态被称为执行 状态4) 完成状态当作业执行结束后,进入作业完成状态此时,由 作业调度程序对该作业进行善后处理,主要表现为撤消作业的作业 控制块,并回收此作业占用的系统中的资源数最后,将作业的结 果输出到外设之中 2.2.2 作业调度 作业调度就是按一定的算法从后备队列中选择一个作业送 入内存执行,并在作业完成后处理善后工作的过程1) 作业调度程序的功能记录进入系统的各个作业情况,作 业一旦进入系统,系统即为该作业分配作业控制块JCB2)按规定的调度策略从后备作业中挑选一些作业投入运行3) 为选中的作业做执行准备作业从后备状态进入执行状态 ,需要建立相应的进程,分配进程所需的内存资源、外设资源 ,这些都交给调度程序。

4) 善后工作处理当作业因某种原因退出或执行完毕后,作 业调度程序回收作业原先占用的资源,撤消进程及JCB,并输 出结果 (1)先来先服务(FCFS)算法 (2)短作业优先调度算法(SJF) (3)响应比高者优先调度算法下一页2.2.3 常用作业调度算法 作业调度的性能指标作业调度的原则体现在一个指标,即各作业的平均周 转时间上,如设第i个作业的周转时间为Ti=Tci-Tsc;Tci ,Tsc分别为作业的完成时间和作业的提交时间,则平 均周转时间为:T=(∑Ti)/n;对这个公式涉及的n个 作业,相对于长作业,对T值的影响大,而短作业对T 值的影响小为了增加短作业对T值的影响,引入平均 带权周转时间的概念平均带权周转时间定义为:W= (∑Ti/tri)/n;tri作业的运行时间一般认为T、W越小,系统对作业的吞吐量越大,系统的性能越高下一页(1)作业平均周转时间T(Ti为每个作业的周转时间;tc作业完成 时刻;ts作业进入系统时刻)(2)平均带权周转时间W(Ti为每个作业的周转时间;tr为作业实 际运行时间)(1)先来先服务(FCFS)算法 先来先服务作业调度算法是一种较简单的作业调度算法,即每次调度是从后备作业队列 中选择一个最先进入该队列的作业,将它调入 内存,分配资源、创建相应的进程,放入进程 就绪队列准备运行。

FCFS算法利于长作业,不利于短作业下一页2.2.3 常用作业调度算法 (2)短作业优先调度算法(SJF) 短作业优先调度算法是指操作系统在进行作业调度时以作业长短作为优先级进行调度该调度算法可 以照顾到实际上占作业总数绝大部分的短作业,使它 们能比长作业优先调度执行这时后备作业队列按作 业优先级由高到低顺序排列,当作业进入后备队列时 要按该作业优先级放置到后备队列相应的位置实践证明,该调度算法的性能是最好的,单位时间的作业吞吐量也最大,但也存在缺点:对长作业极 为不利下一页(3)最高响应比优先(HRF)响应比= (作业等待时间+作业执行时间)/作业执行时间响应比优先即算出的响应比最高的先执行 例:单道环境下四个作业,它们进入系统的时间如下:(1)给出FCFS , SJF下的作业执行次序(2)给出FCFS , SJF下的作业平均周转时间和带权平均 周转时间FCFS : T= ( 120+120+120+90 ) / 4 =112.5SJF: T=(120+150+70+40)/4=95FCFS: W=(120/120 + 120/50 +120/10 +90/20)/4=4.975SJF: W=(120/120 + 150/50 + 70/10 +40/20) /4=3.252.3 用户与操作系统的接口 2.3 .1 系统调用每个操作系统都提供几百种系统调用,包括:外存文件与目 录的读写,各种I/O设备的使用,在程序中启动另一个程序, 查询和统计系统资源使用情况等等。

1. 系统调用的功能1) 设备管理: 设备的读写和控制 ;Ioctl设备配置 Open 设备打开 Close 设备关闭 Read 读设备 Write 写设备2) 文件管理:文件读写和文件控制; Open 文件打开 Close 文件关闭 Read 读文件 Write 写文件 seek读写指针定位 Creat 文件创建 Stat读文件状态 Mount安装文件系统 chmod修改文件属性3) 进程控制:创建、中止、暂停等控制; Fork创建进程 Exit进程自我终止 Wait阻塞当前进程 Sleep 进程睡眠 Getpid读父进程标识4) 进程通信:消息队列、共享存储区、socket等通信渠道 的建立、使用和删除;5) 存储管理:内存的申请和释放;6) 系统管理:设置和读取时间、读取用户和主机标识等; gtime 读取时间 Stime 设置时间 getuid 读取用户标识通过系统调用接口也可使用系统命令 – C语言里的system()函数可调用shell来完 成命令 – 如 UNIX系统: system(“cp -r doc /tmp“)系统调用的实现过程实际上系统调用语句本身是硬件提供的(机器指令),但其 所调用的功能是操作系统提供的。

每种机器的机器指令集中 都有一条系统调用指令设置系统调用号和参数 –调用号作为指令的一部分(如早期UNIX),或装入到 特定寄存器里(如:DOS int 21h,AH=调用号–参数装入到特定寄存器里,或以寄存器指针指向参数 表(内存区域)执行trap(int)指令:入口的一般性处理,查入口跳转表,跳转到相应功能的过程 –保护CPU现场(将PC与PSW入栈),改变CPU执行状态 (处理机状态字PSW切换,地址空间表切换)–将参数取到核心空间执行操作系统内部代码;执行iret指令:将执行结果装入适当位置(类似于参数带入) ,恢复CPU现场(以栈顶内容置PSW和PC)系统调用举例1. 利用系统调用向打印机输出5个字符方法1:调用DOS功能向打印机输出MOVE A,PARA1MOVE B,PARA2INT 21H方法2:用OUT指令直接打印L1:MOVE A,IIN ADDR1,BOR B,BSJNC L1OUT ADDR2,ARET2.3.2 作业级的用户接口1. 作业控制语言 2. 作业控制命令 3. 用户图形接口 2.4 作 业 控 制 2.4.1 脱机控制方式 2.4.2 联机控制方式 。

下载提示
相似文档
正为您匹配相似的精品文档
相关文档