操作系统 第4章 作业管理 (学习笔记)

第4章 作业管理

 

4.1用户界面

用户界面:是操作系统提供给用户使用计算机的手段

对于不同的计算机用户,操作系统要提供不同的交互手段,使用户都能操控计算机来实现自己的目的

 

4.1.1作业控制语言

(1)在早期批处理系统中,为了描述用户提交给计算机的任务,系统提供给用户的是类似于高级语言的作业控制语言

(2)当用户向计算机提出要求时,需要用作业控制语言来编写作业控制程序,内容包括:

每一个运行步骤

要处理的数据

需要运行的程序

输入和输出方式

需要使用的资源等

 

4.1.2作业控制命令

(1)DOS操作系统是一个单用户系统

(2)命令dir:查询当前目录下的子目录

(3)Linux有如下几大类命令:

1)有关进程及进程管理,内容包括进程的创建、等待、唤醒、撤消,进程的监视,运行时间指定,安排前台和后台进程,实现进程的优先级,以及实现批处理环境。

2)有关文件管理,包括文件及目录的各种操作、文件的连接、文件的查找、文件输入/输出等。

3)有关用户和用户管理,包括用户及用户权限的设定、用户信息显示、用户口令维护、用户分组等。

4)有关硬盘管理和文件压缩,包括对指定文件的压缩、文件形式的转换、磁盘空间的管理、环境设置、文件系统的安装与拆卸。

5)有关网络,包括设定系统的主机名、防火墙操作、主机登录与退出、网络地址的查找及路由指定等。

6)其他,如确定程序的执行时间、报告系统名和其他信息、版本信息、用户对话、信息广播、电子邮件等。

 

4.1.3菜单控制

(1)菜单控制: 菜单将操作系统的功能进行分类,然后再进行更小类型的划分,直到落实到每一个具体的功能

(2)优点:菜单列表一目了然,用户只需要在菜单的提示下进行选择来实现相应的功能,程序运行的中间及最终结果都直接显示在指定的输出界面上

 

4.1.4窗口和图标

(1)用窗口来打开一个较大的功能,再用窗口内的图标来代表更为具体的功能

(2)Windows xp中采用的是图标和窗口方式

(3)Linux系统中采用的是命令方式,但Linux并没有回避窗口和图标方式的巨大优势

 

4.1.5系统调用

(1)系统调用:操作系统向编程人员提供了一种能够完成底层操作的接口;是事先编制好的、存在于操作系统中的、能实现那些与机器硬件部分相关的工作的控制程序,是操作系统程序模块的一部分

(2)用户通过操作系统的特殊入口地址来达到调用这些程序的目的

(3)DOS系统只能通过汇编语言其他高级语言来实现系统调用 ,通过中断入口表按照数字所指定的地址来寻找调用地址

(3)Linux的每一个系统调用都有对应的调用名称,只要输入相应的命令参数就能实现系统调用

(4)Windows 提供的系统调用称为应用程序编程接口 (API) ,通过调用内核对象的功能函数来实现的

 

4.2作业

(1)作业:是用户交给计算机的具有独立功能的任务

(2)作业步:用户每输入一条命令或运行一段程序

 

4.2.1作业的状态

 

作业的状态

(1)提交: 通过输入设备向计算机提交作业

1) 处于提交状态的作业存在于输入设备和辅助存储器中,未产生完整的作业描述信息

2)对于整个系统来说,处于提交状态的作业可以有多个

3)对于单个用户来说,一次只能提交一个作业

 

(2)后备: 完成作业的提交,作业已存在于辅助存储器中

1)处于后备状态的作业具有完整的作业描述信息,这些信息包括作业的名称、大小、作业对应的程序等

2)处于后备状态的作业有资格进入主存储器

 

(3)执行:作业被调度进入主存储器,并以进程的形式存在

1)处于执行状态的作业并不意味着一定在CPU上运行,是否运行依赖于进程控制

2)处于执行状态的作业可以有多个,其数量与主存中作业的数量相一致,主存能容纳的作业数量越多,处于执行状态的作业越多

 

(4)停止: 作业已经完成其指定的功能,等待着与之相关的进程、资源,及其他描述信息的撤消

 

4.2.2作业控制块

(1)作业控制块(JCB:JCB用来唯一地标识作业并记录所有与作业相关的信息

(2)相关信息:

作业标识:操作系统用来区分每一个作业。

用户标识:创建作业的用户名称及帐号。

估计运行时间:预计的作业需要占用CPU的时间。

优先数:在作业调度时,能反应该作业被调度的机会。

作业创建时间:作业从提交状态变为后备状态的时间。

作业状态:代表作业在系统中所处的状态。

作业地址:作业在系统中的存放位置。

作业对其他资源的要求:如存储器要求、设备要求、文件及数据的要求等

 

4.2.3作业调度程序

(1)进程调度程序只管理进程从就绪状态变为运行状态,而作业调度程序是对作业的整个过程进行管理

(2)作业状态的变化是不可逆的,这也反映了作业运行的顺序特征

(3)作业调度程序实现作业从执行状态转变为停止状态

(4)当作业调度程序获知某一个作业已经完成其所有的工作,便接过对该作业的控制权,释放该作业所占有的资源,释放该作业所对应的JCB

操作系统 第4章 作业管理 (学习笔记)

4.3作业与资源

(1)资源管理的目的:

1)使资源达到充分利用

2)使每一个用户都能不需等待时间太长就能获得资源

3)使资源的分配尽量合理而不至于产生死锁

(2)资源管理程序具备功能:

1)对资源进行描述

2)对资源进行分配

3)保证资源使用的安全性

(3) 资源分配策略:

排队方法:

1)一般针对独占使用的资源

2)若干作业同时申请对独享资源的使用,作业管理系统往往按照一定的顺序将作业排成队列,然后逐一安排对资源的使用

3)排队方法又可以根据队列顺序的安排原则分为:按先后顺序排队的先来先服务,按优先级顺序排队的优先级方法,按作业长短排队的短作业优先等

虚拟资源法:

1)有些作业在申请资源时,迫切要求资源的分配,于是系统就采取一种特殊的方法,使作业感觉到资源已被分配

2)所分配的资源并不是作业申请的资源本身,而是资源的某种替代物

3)最常见的方法是:用辅助存储器的指定空间来代表资源,作业使用该空间来进行数据的输入/输出或存储,一旦资源空闲,作业管理系统就将指定空间上的数据转移到具体资源上。由于这一切都是操作系统来完成的,用户不知道他在一段时间内并未获得所申请的资源,因此,从一个时间范围上来看,每一个用户都享用了他所申请的资源,这种感觉上的资源就是虚拟资源.

 

4.4进程调度与作业调度

 

4.4.1调度算法设计原则

 

(1)调度算法设计原则:

1)公平:在一般情况下,所有的实体都有公平的被调度机会

2)高资源利用率

3)对资源的均衡使用:保证系统的稳定性

4)吞吐量:吞吐量越高,系统的处理能力越强

5)响应时间:响应时间直接影响用户的满意程度

 

(2)衡量调度算法时采用的时间量 

1)周转时间=完成时刻-提交时刻

2)平均周转时间=周转时间/n 

3)带权周转时间=周转时间/实际运行时间

4)平均带权周转时间=带权周转时间/n

 

4.4.2作业调度算法

(1)作业调度算法: 先来先服务法, 短作业优先法, 最高响应比优先法

(2)先来先服务:根据先后次序执行顺序

优缺点:短作业带权周转时间增多,长作业带权周转时间较小,短作业不公平

(3)短作业优先法: 运行时间的长度中最短的最先执行

优缺点:降低短作业的带权周转时间,提高了长作业的带权周转时间,短作业优先算法可以提高系统的吞吐能力,但短作业过多,长作业则会有过长的等待时间

(4)最高响应比优先: 响应比高的作业优先调度(带权周转时间又称为响应比)

响应比(带权周转时间) = 周转时间∕运行时间

                                    = (运行时间+等待时间)∕运行时间

                                    = 1 + 等待时间∕运行时间

优缺点:每个作业的响应比随时都在发生变化,因此要不断地重新计算

 

4.4.3进程调度算法

(1)进程调度算法: 时间片轮转法,优先级法,多级反馈队列,进程的组织

 

(2)时间片轮转法: 将所有的就绪进程按到达的先后顺序排队,每个进程被逐一地分配一个时间片运行,时间片完毕时运行态进程重新进入就绪队列

1)在一个时间片范围内至少应该能完成一次现场保护和现场恢复、一次中断处理程序或者一条原语的执行

2)确定时间片需考虑因素:

系统设计目标

系统性能

3) CPU时钟频率越快,单位时间内能够执行的指令数越多,其时间片就可以设置得越短。CPU指令周期长,程序的执行速度就慢,时间片就需要较长

 

(3)优先级法:

在时间片轮转的基础上,为进程设置优先级,就绪进程按优先级不同安排调度顺序

1)静态优先级:

在进程被创建时设定的优先级

2)动态优先级

动态优先级在进程的存在过程中不断地发生变化

3)优先级设定原则:

1.运行系统程序的进程优先级较,运行用户程序的进程优先级较低

2.主要使用珍贵资源(如CPU、主存储器等)的进程优先级较低,主要使用输入/输出设备的进程优先级较高

3.对于用户要求紧急的进程给予较高优先级

 

(4) 多级反馈队列:是一个综合的调度算法,它综合考虑了进程到达的先后顺序、进程预期的运行时间、进程使用的资源种类等因素

1)当新的进程要进入就绪队列时,根据进程的表现选择不同优先级的队列进入。判断及插入方法如下:

①如果正在运行的进程时间片用完需要放弃CPU,在该进程运行之前所处队列优先级基础上,下降一个优先级后,进入该优先级所对应的队列尾部。

②如果是因输入/输出中断而进入等待队列的进程,在进程被唤醒时进入该进程中断之前所处的队列尾部。

③如果是新创建的进程,直接进入最高优先级队列的尾部

2)多级反馈队列算法特点:

1.短作业优先

2.输入/输出进程优先

3.运算型进程有较长的时间片

4.采用了动态优先级

操作系统 第4章 作业管理 (学习笔记)

 

(5)进程的组织:就绪进程被组织成N队列,优先级由高向低排列,时间片由短到长排列

 

4.4.4实用系统中的调度算法

Windows XP:

1.Windows XP程序用线程构成进程,因此,时间片最终由线程使用

2.进程中线程数目越多获得时间片的机会越多

3.采用多级反馈队列,每一个优先数都对弈有个就绪队进程列

4.线程对时间片的使用采用同一个优先数的时间片轮转法

 

4.4.4 进程调度与作业调度

1.线程优先数在进程所具有的级别基础上在进行相对调整

操作系统 第4章 作业管理 (学习笔记)

2.可动态调整的线程优先数确定原则为:

1)每个进程创建时有一个基本优先数,取值范围从0到15

2)其包含的线程有一个线程基本优先数,取值范围从-2到2

3)线程的初始优先数为进程基本优先数加上线程基本优先数,但必须在0到15的范围内

4)由于每个进程和线程的重要程度不同,每个进程和线程要赋予一个优先级

 

4.5作业与任务、进程、程序

(1)操作系统的设计者描述系统行为时较多的用:进程、任务、线程;将调度算法划分为对CPU的竞争、对存储器的竞争和对输入/输出设备的竞争

(2)作业概念更多地用于脱机处理系统,进程的概念更多的用于联机处理

(3)Linux系统中处理的对象是进程,而Windows xp中只有任务、进程、线程概念

(4)任务被启动,对应于该任务的进程也就被建立

(5)进程的运行包括两种情况:以纯粹的进程形式存在或者以线程的形式存在。线程是构成进程的可独立运行的单元,当进程由线程构成时,线程成为占有CPU时间片的实体

(6)作业、任务、进程、程序、线程之间都没有唯一的对应关系

(7)程序是进程的基本组成部分,但它又可以对应多个进程,一个进程也可以由多个程序构成

(8)进程是作业的执行状态,一个作业又可以对应多个进程

线程包含在进程之中,一个进程可以由一个或多个线程构成

 

小结:

1.作业管理是操作系统面向用户的一部分。它提供给用户使用计算机的界面,目前最流行方式是用窗口代表任务、用图标代表功能

2.系统中的作业有四种基本状态,由作业调度程序来完成状态的转化。将后备状态的作业变为执行状态需遵循作业调度算法,将就绪态的进程变为运行状态需遵循进程调度算法,而算法的选取离不开公平、资源利用率、响应时间等设计原则

3.实用操作系统正在不断推出新的概念,不管何种新的概念都是为了描述使用资源的实体和对资源的竞争.