收藏 分享(赏)

第4章+作业管理.ppt

上传人:hwpkd79526 文档编号:5549780 上传时间:2019-03-07 格式:PPT 页数:43 大小:342.50KB
下载 相关 举报
第4章+作业管理.ppt_第1页
第1页 / 共43页
第4章+作业管理.ppt_第2页
第2页 / 共43页
第4章+作业管理.ppt_第3页
第3页 / 共43页
第4章+作业管理.ppt_第4页
第4页 / 共43页
第4章+作业管理.ppt_第5页
第5页 / 共43页
点击查看更多>>
资源描述

1、第四章 作业管理,第四章 作业管理,用户界面 作业 作业与资源 进程调度与作业调度 作业与任务、进程、程序,4.1 用户界面,用户可分为: 使用应用程序的一般用户 编写应用程序的程序爱好者 设计语言支持程序的资深软件工程师 操作系统设计者 操作系统要为不同的用户提供不同的交互手段用户界面: 作业控制语言 作业控制命令 菜单控制 窗口和图标 系统调用,4.1.1 作业控制语言,作业的脱机控制时期,即早期批处理系统中,当用户向计算机提出要求时,需要用作业控制语言来编写作业控制程序,内容包括每一个运行步骤、要处理的数据、需要运行的程序、输入和输出方式、需要使用的资源等等。 作业联机控制时期,对作业控

2、制语言的改进是:直接使用高级语言对作业进行说明。Basic语言是一个很典型的代表,用户可以输入单条Basic语言命令来代表一个作业步,上一个步骤执行完毕以后再用新的命令来开始下一个步骤。,4.1.2 作业控制命令,作业控制命令是一种联机作业控制方式,它用命令的形式来对作业的行为进行描述。,图4.1 DOS界面,图4.2 Linux界面,4.1.2 作业控制命令,Linux有如下几大类命令: (1)有关进程及进程管理的命令。 (2)有关文件管理的命令。 (3)有关用户和用户管理的命令。 (4)有关硬盘管理和文件压缩的命令。 (5)有关网络的命令。 (6)其他相关的命令。,4.1.3 菜单控制,菜

3、单将操作系统的功能进行分类,然后再进行更小类型的划分,直到落实到每一个具体的功能。 菜单控制的好处是:由于菜单列表一目了然,用户不再需要熟记任何命令或者语言,只需要在菜单的提示下进行选择来实现相应的功能。,4.1.4 窗口和图标,采用窗口来打开一个功能系列,再用窗口内的图标来代表更为具体的功能,这就是现在我们使用计算机的方式图形界面。,用户要实现的任务用窗口来表示, 用户要实现的子功能用图标来表示, 点击图标又能激活所对应的子功能窗口,子窗口中又有新的子功能。 窗口和图标又能够分离,也可以重新组合。 这样使得功能安排的灵活性达到了最大,用户的地位得到了充分的尊重,但同时用户也被层层叠叠的图标和

4、窗口搞得眼花缭乱。,4.1.5 系统调用,操作系统还向编程人员提供了一种能够完成底层操作的接口,这就是系统调用。 系统调用其实是事先编制好的、存在于操作系统中的、能实现那些与机器硬件部分相关的工作的控制程序。 一个用户的进程既可以执行用户程序,也可以执行系统调用程序。,4.1.5 系统调用,DOS系统往往只能通过汇编语言及其他高级语言来实现系统调用。 Linux的系统调用的形式与其他应用程序和函数没有区别,但系统调用处于Linux内核。其实,Linux中的许多系统调用命令可以在Shell下直接运行,这就是我们在前面提到过的Linux命令界面。 Windows 提供的系统调用称为应用程序编程接口

5、 (API),它是应用程序用来请求和完成计算机操作系统执行的低级服务的一组内核对象,是通过调用内核对象的功能函数来实现的。,4.2 作业,作业是用户交给计算机的具有独立功能的任务。 在联机系统中,从用户登录系统到用户退出系统的整个过程,可以多次形成作业,用户每输入一条命令或运行一段程序都代表着一个作业步。 作业在系统中也是动态的,从作业产生到作业消失的整个过程中,作业的状态跟随系统的运作而发生变化。,4.2.1 作业的状态,根据所处的不同位置,作业被分为四种状态 (1)提交状态 (2)后备状态 (3)执行状态 (4)停止状态,当用户正在通过输入设备向计算机提交作业时,作业处于提交状态。 处于提

6、交状态的作业可以有多个。而对于单个用户来说,一次只能提交一个作业。,当用户完成作业的提交,作业已存在于辅助存储器中,这时的作业处于后备状态。 处于后备状态的作业具有完整的作业描述信息。 处于后备状态的作业有资格进入主存储器,但何时进入主存储器,还需要看有否这样的时机。,作业被调度进入主存储器,并以进程的形式存在,其状态就是执行状态。 处于执行状态的作业并不意味着一定在CPU上运行,是否运行依赖于进程控制。 处于执行状态的作业可以有多个。,当作业已经完成其指定的功能,等待着与之相关的进程、资源,及其他描述信息的撤消,作业便进入停止状态。,4.2.2 作业控制块,用来对作业进行描述的数据结构称为作

7、业控制块(JCB)。作业控制块用来唯一地标识作业并记录所有与作业相关的信息。 作业标识 用户标识 估计运行时间 优先数 作业创建时间 作业状态 作业地址 作业对其他资源的要求,4.2.3 作业调度程序,实现作业的建立,也就是作业从提交状态到后备状态的转换。 先为作业分配空的JCB,再在辅助存储器空间上获得作业的存放空间,然后将作业的有关信息填入到JCB中。,实现作业从后备状态转换到执行状态。 按照一定的算法从后备作业中选出一个作业,将该作业的内容调入内存,实现作业资源的分配,调用进程创建原语为该作业建立进程,然后放弃对该作业的控制权。,实现作业从执行状态转变为停止状态。接过对该作业的控制权,释

8、放该作业所占有的资源,释放该作业所对应的JCB。,进程调度程序只管理进程从就绪状态作业调度程序是对作业的整个过程进行管理的。 进程状态变化可逆,作业状态的变化是不可逆的。,4.3 作业与资源,多道程序系统中,系统资源的有限性决定了作业在申请资源时会有冲突和抢占现象发生。 需要良好的资源管理程序进行合理管理。,4.3.1 资源管理的目的,资源管理要达到如下目标: (1)使资源达到充分利用。 (2)使每一个用户都能不需等待时间太长就能获得资源。 (3)使资源的分配尽量合理而不至于产生死锁。 资源管理程序应该具有下述功能: (1)对资源进行描述:适当的数据结构。 (2)对资源进行分配:针对性的分配原

9、则,资源的逻辑名与资源的物理地址的连接。 (3)保证资源使用的安全性:共享资源:作业相互之间没有不良影响或者越权操作。独享资源:实现临界资源的手段。,4.3.2 资源分配策略,1. 排队方法:按照一定的顺序将作业排成队列,然后逐一安排对资源的使用。 按先后顺序排队的先来先服务 按优先级顺序排队的优先级方法 按作业长短排队的短作业优先,2. 虚拟资源方法:用辅助存储器的指定空间来代表资源,作业使用该空间来进行数据的输入/输出或存储,一旦资源空闲,作业管理系统就将指定空间上的数据转移到具体资源上。,4.4 进程调度与作业调度,当CPU资源的竞争实体是处于就绪状态的进程时,进程调度程序选取一个处于就

10、绪状态的进程变为运行状态。 当内存资源的竞争实体是处于后备状态的作业时,作业调度程序选取一个处于后备状态的作业进入执行状态。 选取的规则是由调度算法来决定的。,调度算法设计原则 作业调度算法 进程调度算法 实用系统中的调度算法,4.4.1 调度算法设计原则,调度算法设计原则: 公平 高资源利用率 对资源的均衡使用 吞吐量 响应时间 相互冲突?在多条因素之间进行折中。,4.4.1 调度算法设计原则,在衡量调度算法的参数: 周转时间:作业从提交开始到进入停止状态的时间。 平均周转时间:系统中所有作业周转时间的平均值。,4.4.1 调度算法设计原则,在衡量调度算法的参数: 带权周转时间:周转时间与实

11、际运行时间的比为带权周转时间。 平均带权周转时间:系统中所有作业的带权周转时间的平均值。,4.4.1 调度算法设计原则,调度算法的选择和竞争资源的实体概念紧密相关。 作业是批处理时期的概念,一个作业一旦占有CPU会一直运行,直到该作业因为等待某种条件(如等待传输完成)而放弃CPU,因此作业调度顺序是串行和不可抢占的。 进程是分时系统中的概念,进程调度意味着进程对CPU时间片的抢占,进程序列是并行的。,4.4.2 作业调度算法,1. 先来先服务根据作业到达的先后次序安排作业的执行顺序,最先到达的作业最先执行。,4.4.2 作业调度算法,2. 短作业优先根据作业提出的运行时间的长度来安排调度顺序,

12、最短的作业最先被调度进入执行状态。,先来先服务与短作业优先周转时间比较,4.4.2 作业调度算法,3. 最高响应比优先按作业的响应比来安排调度顺序,响应比高的作业优先调度。,响应比 = 周转时间运行时间= (运行时间等待时间)运行时间= 1 + 等待时间运行时间,4.4.3 进程调度算法,1. 时间片轮转法 将所有的就绪进程按到达的先后顺序排队,每个进程被逐一地分配一个时间片运行,时间片完毕时运行态进程重新进入就绪队列保证所有进程都有公平的响应时间。 时间片的确定:一个时间片范围内至少能完成一次现场保护和现场恢复、一次中断处理程序或者一条原语的执行。时间片最长不得超过系统响应时间,(用户响应时

13、间与系统可容纳的用户数目的比值)。,4.4.3 进程调度算法,1. 时间片轮转法 确定时间片其具体值时还需要考虑如下因素: 系统的设计目标 用于工程运算 用于输入/输出工作 用于普通多用户联机 系统性能 如果系统存在多种设计目标,单纯的时间片轮转法有其局限性很多实用系统采用多值时间片。,4.4.3 进程调度算法,2. 优先级法 考虑到系统资源的利用率以及不同用户进程的差别,可以在时间片轮转的基础上,为进程设置优先级,就绪进程按优先级不同安排调度顺序。 优先级:(1)静态优先级。 (2)动态优先级。,4.4.3 进程调度算法,(1)静态优先级:静态优先级是在进程被创建时设定的优先级。确定原则:

14、运行系统程序的进程优先级较高,运行用户程序的进程优先级较低。 主要使用珍贵资源(如CPU、主存储器等)的进程优先级较低,主要使用输入/输出设备的进程优先级较高。 对于用户要求紧急的进程给予较高优先级。,4.4.3 进程调度算法,(2)动态优先级:动态优先级在进程的存在过程中不断地发生变化。动态优先级的变化取决于: 进程的等待时间 进程的运行时间 进程使用资源的类型等最高响应比优先算法采用动态优先级。,4.4.3 进程调度算法,3. 多级反馈队列,进程返回要进入就绪队列,判断及插入方法如下: 如果正在运行的进程时间片用完需要放弃CPU,下降一个优先级,进入该优先级所对应的队列尾部。 如果是因输入

15、/输出中断而进入等待队列的进程,在进程被唤醒时进入该进程中断之前所处的队列尾部。 如果是新创建的进程,直接进入最高优先级队列的尾部。,4.4.3 进程调度算法,多级反馈队列算法有如下特点:,短作业优先。输入/输出进程优先。运算型进程有较长的时间片。采用了动态优先级。采用了可变时间片。,4.4.4 实用系统中的调度算法,Windows方案 Windows 采用多级反馈队列,每一个优先数都对应于一个就绪进程队列。线程对时间片的使用采用的是同一个优先数的时间片轮转法。 进程优先数分为两大类: 用于通信任务和实时任务的固定优先数(优先数为31-16) 用于用户提交的交互式任务的可动态调整优先数(优先数

16、为15-0) 可动态调整的线程优先数确定原则为: 每个进程创建时有一个基本优先数,取值范围从0到15; 其包含的线程有一个线程基本优先数,取值范围从-2到2,线程的初始优先数为进程基本优先数加上线程基本优先数,但必须在0到15的范围内。,4.4.4 实用系统中的调度算法,Windows方案进程优先级,4.4.4 实用系统中的调度算法,Windows方案线程优先级,4.4.4 实用系统中的调度算法,Linux提供了三种调度算法:用于实时进程的先进先出算法(FIFO,First In First Out) 用于实时进程的轮转算法(RR,Round Robin) 用于普通进程的可抢占式动态优先级算法

17、(Preemptive Scheduling),4.4.4 实用系统中的调度算法,用于实时进程的先进先出算法(FIFO,First In First Out) 按照实时进程进入可运行队列的先后顺序,依次把每一个进程投入执行,只有前面的进程执行完成或者自动放弃CPU(比如进入等待状态),下一个进程才可以执行。 同时也考虑了进程的优先级,具有相同优先级的进程采用FIFO算法,如果有更高的优先级出现,调度函数就要选择具有高优先级的进程使用处理机。,4.4.4 实用系统中的调度算法,用于实时进程的轮转算法(RR,Round Robin) 按照进程在队列中的顺序依次分配时间片,如果用完之后还没有完成要求

18、的任务,运行态进程使用完时间片后进入就绪态重新排到可运行队列的尾部,等待下一次调度。 也考虑了进程的优先级,具有相同优先级的进程采用RR算法,而具有更高优先级的实时进程拥有首先使用CPU的权利。,4.4.4 实用系统中的调度算法,用于普通进程的可抢占式动态优先级算法(Preemptive Scheduling)每个进程拥有不变的静态优先级和可变的动态优先级。每一个进程都分配一定的时间片,时间片使用完之后,系统转入调度函数,等所有非实时进程的时间片都使用完之后,再按照各自的优先级给每个进程重新分配时间片。Linux 时间片默认值为200ms,用户可以针对不同的进程设置时间片的值。,4.4.4 实

19、用系统中的调度算法,用于普通进程的可抢占式动态优先级算法(Preemptive Scheduling) 在Linux系统中,决定进程权值的相关参数有四个,它们都记录在进程控制块中: (1) policy,进程被指定的调度算法。 (2) priority,进程静态优先级。 (3) counter,进程的动态优先级。 (4) rt-priority,实时优先级。,进程的调度策略是从父进程那里继承来的,但是也可以通过特定系统调用来改变。,记载了进程最多可以拥有的时间片,从父进程那里继承过来,只能由用户通过系统调用来修改。,它表示进程在当前时间片中剩余的时间量。它的初值等于静态优先级,在进程执行期间,

20、随时间不断减少,当它小于或等于0时,表明进程的时间片用完,重新设置为0,并引起调度。,实时进程的优先级,取值范围为099,取0时表示不是实时进程。,4.4.4 实用系统中的调度算法,Linux方案: 系统在进行调度时,依据policy的值确定该进程的调度策略,选用与策略对应的算法计算进程权值。实时进程权值计算公式为:goodness=1000+rt-priority普通进程创建之初,动态优先级和静态优先级具有相同的值,随着进程的执行,动态优先级慢慢减小。进程权值的计算公式都是:goodness=counter+priority 如果进入调度后,当前进程的权值计算公式是:goodness=counter+priority+1新的普通进程进入可运行队列后,新进程的权值很大,这样可以保证新进程的响应时间。,4.5 本章小结,作业管理是操作系统面向用户的一部分。它提供给用户使用计算机的界面。系统中的作业有四种基本状态,由作业调度程序来完成状态的转化。将后备状态的作业变为执行状态需遵循作业调度算法,将就绪态的进程变为运行状态需遵循进程调度算法,而算法的选取离不开公平、资源利用率、响应时间等设计原则。实用操作系统正在不断推出新的概念,不管何种新的概念都是为了描述使用资源的实体和对资源的竞争。,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 中等教育 > 职业教育

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报