第七章 作业管理与 OS接口第七章 作业管理与 OS接口
7.1 概 述
7.2 批处理 OS的作业管理
7.3 命令接口
7.4 系统调用
7.5 UNIX系统调用第七章 作业管理与 OS接口
7,1 概 述程序的启动程序开始执行时必须满足两个前提条件:
程序已装入内存
程序计数器 PC中已置入该程序在内存的入口地址五种启动程序执行的方式
第一种方式:命令方式
第二种方式:批处理方式
第三种方式,EXEC方式
第四种方式:由硬件装入程序和启动程序执行
第五种方式:自启程序开机 命令提示符出现 打入命令打回车程序首指令执行程序尾指令执行下一个命令提示符出现
(在前一个命令提示符的下一行首)
第一种方式:命令方式第二种方式:批处理方式
.BAT 文件例子:启动中文环境需要多条命令:
装入字库启动主程序装入汉字输入法
AUTOEXEC.BAT
以命令方式启动执行批文件操作系统调入批文件,读进其中第一条命令装入并启动该命令要执行的程序该程序执行完毕回到操作系统,
操作系统从该批文件中读下一条命令批方式下的装入启动过程第三种方式,EXEC方式
在一个程序中运行另一个程序
返回原来的程序
“父”程序执行 exec调用操作系统实现 exec的装入(建立进程)、
启动(或转调度子程序或返回)
“子”程序执行回到操作系统,进行子程序结果处理工作,并将结果信息返回“父”程序
“父”程序继续执行
E
X
E
C
方式的过程执行完毕第四种方式,由硬件装入程序和启动程序执行第五种方式,自启程序
自己装入自己,并启动自己开始执行的程序
自启程序由两部分组成
引导程序和程序主体用户程序存放在外存上,其自含的引导程序顺序放在存储介质的开始位置将该存储介质放到相应的联机输入装置上以某种硬操作方法通知计算机需执行自启程序硬件将上述引导程序读入内存并将控制权传给它引导程序将用户主体程序读入内存并将控制权传给它自启程序装入与启动的过程引导程序程序的结束
正常结束:程序按自身的逻辑有效地完成预定功能后结束
( a)返回父程序并回送结果信息。
( b)释放所用资源(空间、设备),记录使用情况,记帐等
异常结束:发生了某些错误而导致程序在没有完成预定功能时提前结束基本概念
程序接口 ( program interface) 指由用户程序和操作系统之间的接口 。 用户程序可通过该接口取得操作系统的服务 。 该接口主要由一组系统调用组成 。
命令接口 ( command interface) 用户与操作系统之间的接口,用户通过该接口直接或间接控制作业的运行,包括直接键入或作业说明书中,发出的一组命令 。 也就是用户接口,又可分成联机用户接口与脱机用户接口两种 。
作业级接口 (命令接口)
操作系统为用户对作业运行全过程控制提供的功能。
(1) 联机接口(交互式)(操作命令)
(2) 脱机接口(作业控制语言)
程序级接口系统为用户在程序一级提供有关服务而设置用户与操作系统的接口由一组系统调用命令组成
负责管理和控制运行的程序
并在这些程序与系统控制的资源和提供的服务间实现交互作用
用汇编语言:在程序中直接用系统调用命令
用高级语言:可在编程时使用过程调用语句程序级接口用户接口与 OS间的关系图第七章 作业管理与 OS接口
7,2 批处理 OS的作业管理
1,作业的基本概念
作业用户在一次计算过程中,或者一次事务处理过程中,要求计算机系统所做工作的总称
作业步一个作业可划分成若干部分,称为一个作业步
典型的作业控制过程:
,编译,,,连接装配,,,运行,
7,2 批处理 OS的作业管理
2,典型的作业步编译 连接装配 运行目标程序段目标程序源程序 输入数据子程序库函数动态库函数计算结果编辑(输入,修改)源程序 编译连接运行成功编辑(输入,修改)另一源程序是否典型的作业步一个作业另一个作业
3,批处理作业控制语言
用户用于描述批处理作业处理过程控制意图的一种特殊程序
书写作业说明书的语言称为作业控制语言( JCL)
作业控制语言的类别包括:
I/O命令、编译命令、操作命令以及条件命令等
4,作业说明书表达用户对作业的控制意图内容:
作业的基本描述
作业控制描述
资源要求描述
5,作业控制块
作业控制块( JCB,Job Control Block)是批处理作业存在的标志其中保存有统对于作业进行管理所需要的全部信息,它们被保存于磁盘区域中。
当作业开始由输入设备向磁盘的输入井传输时,系统输入程序为其建立一个作业控制块,进行初始化,
初始化的大部分信息取自作业说明书
需要访问作业控制块的程序:系统输入程序;作业调度程序;作业控制程序;系统输出程序等
作业控制块的撤消:作业完成后,其作业控制块由系统输出程序撤消,作业控制块被撤消后其作业也不复存在作业控制块的内容作业标知用户名称用户帐号调度信息资源需求作业状态作业类别输入井地址输出井地址进入系统时间开始处理时间作业完成时间作业退出时间资源使用情况
6,作业表(作业队列)
每个作业有个作业控制块
所有作业 JCB构成一个作业表
作业表存放在外存固定区域中,长度是固定
限制了系统所能同时容纳的作业数量系统输入程序、作业调度程序、系统输出程序都需要访问作业表因而存在互斥问题
7,批处理作业的状态及转换一个作业从进入系统到运行结束经历四个不同的状态:
,进入,
,后备,
,运行,
,完成,
作业和进程的状态转换图数据进入状态 退出状态后备状态 运行状态作业控制进程

输入设备数据源程序输出设备作业说明书输入井运行等待就绪输出井输入程序输出程序作业调度进程调度
1) 作业的建立
一个作业建立过程的两个子过程:
作业的输入
JCB的建立
作业控制块 JCB和作业:一一对应关系
2) 作业的输入 方式
联机输入方式
脱机输入方式
直接耦合方式
SPOOLing系统
( 1)联机输入方式
用户和系统通过交互会话来输入作业
外围设备直接和主机连接
( 2)脱机输入方式为了解决单台设备联机输入时的
CPU浪费问题
3) 直接耦合系统把主机和外围低档机通过一个公用的大容量外存直接耦合起来
8.SPOOLING系统示意图
JCB的建立
在系统把作业信息输入到输入井之后,
根据作业说明书和有关作业信息在外存的位置等建立作业控制表 JCB
JCB包含对作业进行管理所必须的信息
只有在获得 JCB表项和足够输入井空间后作业才可能创建成功
9,批处理作业的调度主要功能:
审查系统能否满足用户作业的资源要求
按照一定的算法从输入井中的后备作业中选取作业调度的关键在选择恰当的算法作业调度程序作业调度程序的主要功能是审查系统能否满足用户作业的资源要求以及按照一定的算法选取作业 。
10,调度算法评价目标:
单位时间内运行尽可能多的作业
使处理机尽可能保持,忙碌,
使各种 I/O设备得以充分利用
对所有的作业都是公平合理的
调度算法应与系统设计目标保持一致
注意系统资源均衡使用
保证提交的作业在截止时间内完成
设法缩短作业平均周转时间设计调度算法时应考虑的因素:
作业平均周转时间平均带权周转时间调度算法性能的衡量
11.常见的批处理作业调度算法
( 1)先来先服务算法
( FCFS,First Come First Serve)
( 2)最短作业优先算法
( SJF,Shortest Job First)
( 3)最高响应比优先算法
( HRN,Highest Response Ratio Next)
响应比 R = 作业周转时间 / 作业处理时间
=(作业处理时间 + 作业等待时间) / 作业处理时间
= 1 +(作业等待时间 / 作业处理时间)
( 4)基于优先数调度算法
( HPF,Highest Priority First)
( 5)均衡调度算法 (分类排队算法 )
作业调度算法应用例子 1
假设在单道批处理环境下有四个作业,已知它们进入系统的时间、估计运行时间,应用先来先服务、最短作业优先和最高响应比优先作业调度算法,分别计算出作业的平均周转时间和带权的平均周转时间。
先来先服务调度算法计算结果作业 进入时间 估计运行时间
(分钟)
开始时间 结束时间 周转时间
(分钟)
带权周转时间
JO B1 8,00 120 8,00 10,00 120 1
JO B2 8,50 50 10,00 10,50 120 2.4
JO B3 9,00 10 10,50 11,00 120 12
JO B4 9,50 20 11,00 11,20 90 4.5
作业平均周转时间 T = 1 12,5
作业带权平均周转时间 W = 4,97 5
450 19.9
最短作业优先作业算法计算结果作业 进入时间 估计运行时间
(分钟)
开始时间 结束时间 周转时间
(分钟)
带权周转时间
JO B1 8,00 120 8,00 10,00 120 1
JO B2 8,50 50 10,30 11,20 150 3
JO B3 9,00 10 10,00 10,10 70 7
JO B4 9,50 20 10,10 10,30 40 2
作业平均周转时间 T = 9 5
作业带权平均周转时间 W = 3,25
380 13
最高响应比优先作业算法计算结果作业 进入时间 估计运行时间
(分钟)
开始时间 结束时间 周转时间
(分钟)
带权周转时间
JO B1 8,00 120 8,00 10,00 120 1
JO B2 8,50 30 10,10 11,00 70 1.4
JO B3 9,00 10 10,00 10,10 70 7
JO B4 9,50 20 11,00 11,20 90 4.5
作业平均周转时间 T = 87.5
作业带权平均周转时间 W = 4,0 7 5
350 16.3
在两道环境下有四个作业,已知它们进入系统的时间、估计运行时间,
系统采用短作业优先作业调度算法,
作业被调度运行后不再退出,当一新作业投入运行后,可按照作业运行时间长短调整作业执行的次序。请给出这四个作业的执行时间序列,并计算出平均周转时间及带权平均周转时间作业调度算法应用例子 2
两道批处理系统中最短作业优先作业算法计算结果作业 进入时间 估计运行时间
(分钟)
开始时间 结束时间 周转时间
(分钟)
带权周转时间
JO B1 10,00 30 10,00 11,05 65 4.167
JO B2 10,05 20 10,05 10,25 20 1
JO B3 10,10 5 10,25 10,30 20 4
JO B4 10,20 10 10,30 10,40 20 2
作业平均周转时间 T = 31,2 5
作业带权平均周转时间 W = 2,7 9
125 1 1,16 7
四个作业的执行时间序列为:
JOB1,10,00—10,05,10,40—11,05
JOB2,10,05—10,25
JOB3,10,25—10,30
JOB4,10,30—10,40
两道批处理系统中最短作业优先作业算法计算结果(续 1)
10,00,JOB1进入,只有一作业,JOB1被调入执行
10,05,JOB2到达,最多允许两作业同时进入所以 JOB2也被调入
内存中有两作业,哪一个执行?题目规定当一新作业运行后,可按作业运行时间长短调整执行次序
即基于优先数可抢占式调度策略优先数是根据作业估计运行时间大小来决定的由于 JOB2运行时间( 20分)比 JOB1少
(到 10,05,JOB1还需 25分钟)
所以 JOB2运行,而 JOB1等待两道批处理系统中最短作业优先作业算法分析过程
10,10,JOB3到达输入井,内存已有两作业
JOB3不能马上进入内存;
10,20,JOB4也不能进入内存
10,25,JOB2运行结束,退出,内存中剩下 JOB1
输入井中有两作业 JOB3和 JOB4,如何调度?
作业调度算法:最短作业优先因此 JOB3进入内存比较 JOB1和 JOB3运行时间
JOB3运行时间短,故 JOB3运行同样,JOB3退出后,下一个是 JOB4
JOB4结束后,JOB1才能继续运行两道批处理系统中最短作业优先作业算法分析过程(续 1)
多道程序对平均周转时间的影响作业流在多道环境下运行
平均周转时间、带权平均周转时间比单道环境下都有明显改善
不是任意作业组合都能改善调度性能有时甚至可能变坏批处理作业的控制
当作业为执行态时,作业调度程序为其建立一作业控制进程,由该进程控制作业运行
作业控制进程:主要负责控制作业的运行,具体解释执行作业说明书的每一个作业步,并创建子进程来完成相应步骤
一个作业步的处理:
( 1)建立子进程 ( 2)为其申请资源
( 3)访问该作业的 JCB ( 4)释放占有资源
( 5)撤消子进程等
作业控制程序只有一个,对应每一处于执行状态的作业有一作业控制进程第七章 作业管理与 OS接口
7,3 命令接口命令接口
命令接口在操作系统与计算机用户之间提供易于理解的双向通信机制
基本任务:解释命令,传送命令以便执行接受系统信息,提交给用户
交互式命令的接口复杂:含功能结构,可能问题的处理,如各种约定、前端处理、
命令日志、命令注解、宏命令及命令组等
交互式控制灵活方便,可以随时进行各种处理,排除问题,方便调试;系统利用率低
命令接口类型,作业控制语言,键盘操作命令
接口包括:一组联机命令,终端处理程序,
命令解释程序终端处理程序
交互式命令接口用户同操作系统的通信是通过一个输入 /输出装置来实现的
I/O装置一般是显示终端通过键盘或鼠标输入,系统输入呈现在显示屏幕上,一次显示若干正文行,某些系统中,提供图形显示功能
不管哪种 I/O方式,这个终端装置是由一个终端处理程序来管理和控制的。
终端处理程序提供的输入输出方式对整个用户命令接口有重大影响,也确定了用户与其应用程序之间的通信方式
终端处理程序必须作为用户接口的一个组成部分来考虑,即,直接影响命令接口的一些问题须由终端处理程序解决直接影响命令接口的一些问题
( a)回送显示( Echoing)
( b)提前打入( Type ahead)
( c)字符变换
( d)行缓冲
( e)中断字符( Break Characters)
命令解释程序命令解释程序有两种处理方法:
( a)由终端命令解释程序直接处理在没有创建子进程功能的系统中,终端命令通常由对应的命令解释程序处理 (一个进程对应一个终端用户 )
( b)由子进程代为处理
在具有创建子进程功能的系统中,对于较为单纯的命令,由命令解释程序直接处理
对较复杂命令,如对于 PASCAL源程序进行编译,
命令解释程序本身不能处理,此时创建一个子进程,并由该子进程运行 PASCAL编译程序命令接口的结构
( a)作为 OS的一个部分如,OS/MVT或 VAX/VMS
( b)作为 OS的一个独特模块,能方便地修改或替换如,RT-11或 CP/M
( c)作为一易于被替换的普通程序如,UNIX操作系统
(d) 在某些系统中,可能用专门设计的命令接口替代标准的命令接口如,多用户 UNIX,用户可有不同命令接口命令接口结构命令语言命令语言规定由 OS执行的一系列操作
在一般的命令语言中,用户通过打入称为命令行的一行指令来规定每一个动作
每一命令行以命令开始,它标识所要执行的操作
大多数命令是用运行一个程序来执行所请求的操作
命令的附加功能(参数与变量,通配符,重定向,管道与过滤器等)
命令结构:
(命令前缀)命令名(命令参数)(命令选项)
( 1)系统访问命令登录命令,如,login等撤离命令,如,logout等
( 2)文件管理命令
( 3)编辑、编译和执行命令
( 4)询问命令
( 5)操作员专用命令命令语言的种类
( 1) UNIX系统:
who
ls -l
( 2) DOS系统
dir c:\
( 3) VAX/VMS
run mypro
典型命令实例命令文件
提前写出命令并存入文件,称之为命令文件
命令文件提供了一种把一系列命令组装成文件的方法,然后用文件名作为命令名执行另外一系列命令。
特点:
( 1)接受参数、变量,宏变量替换
( 2)允许嵌套形式调用其他命令文件
( 3)允许参数来自终端的命令文件本身
( 4)允许执行显示到终端、存入文件或送入打印机
( 5)允许命令加入注释
( 6)出错时允许用户干预
( 7)可把输入传给程序,可有循环、分支、转移等交互式系统的历史与展望
六十年代中期:问答式对话、文本菜单或命令语言,
基于命令行界面的交互式系统
七十、八十年代:图形用户界面时代,形成 WIMP标准,
以窗口( windows)、图标( icon)、菜单( menu)、
指点装置( pointing device)为基础的交互式系统,
实际行动代替复杂语法
多媒体界面是 WIMP另一种风格,是单通道的
未来的交互式系统必将是多通道的通过各种不同的人体通道,如语音、手势、身体语言等交互,大大提高交互的自然性和高效性遵循以人为中心的自然交互特点,实现人与系统的无障碍自然交互交互式系统实例 ——分时系统分时系统中的用户控制作业的执行大致有四个阶段:
终端的连接
用户登录
控制作业执行
用户退出第七章 作业管理与 OS接口
7,4 系统调用系统调用概念系统调用指系统为用户程序调用操作系统所提供的子程序 。 它与一般的函数调用不同,系统调用是通过中断方式转向相应子程序的,
它工作在核心态 ( 即特权方式 ),
而一般函数调用,仍仅在用户态下的地址转移 。
系统调用
系统调用,是用户在程序中调用操作系统所提供的一些子功能
这是特殊的过程调用,由特殊的机器指令实现这个指令还将系统转入管态
系统调用是操作系统提供给编程人员的唯一接口,利用系统调用,动态请求和释放系统资源,
完成与硬件相关的工作以及控制程序的执行等
每个操作系统都提供几百种系统调用
实际上系统调用语句本身是硬件提供的(机器指令),但其所调用的功能是操作系统提供的
每种机器的机器指令集中都有一条系统调用指令(访管指令)
系统调用方式( INT)与程序中一般的调用方式的相同点:
改变指令流程
重复执行和公用
改变指令流程后需要返回原处系统调用与过程调用的 相同点系统调用与一般过程调用的区别运行在不同的系统状态
一般过程调用,其调用程序和被调用程序都运行在相同状态:核心态或用户态
系统调用:调用程序在用户态,被调用程序在系统态状态的转换
一般的过程调用不涉及系统状态的转换,可直接由调用过程转向被调用过程
运行系统调用时,调用和被调用过程在不同系统状态,不允许由调用过程直接转向被调用过程
通过软中断机制先由用户态转换为核心态
在 OS核心分析后,转向相应的系统调用处理子程序
同一程序中不包含被调用代码
系统调用是动态调用,程序中不包含被调用代码,好处:
( 1)用户程序长度缩短
( 2)当 OS升级时,调用方不必改变
系统调用方式的调用地址和返回地址都是不固定的(系统调用指令中不包含调用地址,只包含功能号;系统调用返回指令中不包括返回地址,通过栈保存和弹出返回地址,系统调用返回地址不固定)
系统调用与过程调用的区别 (续)
返回问题
一般过程调用在被调用过程执行完后,回调用过程
抢占式调度的系统中,被调用过程执行完后,系统将对所有要求运行的进程进行优先级分析。如果调用进程仍有最高优先级,则返回到调用进程执行否则,引起重新调度,让优先级最高的进程优先执行。此时,系统把调用进程放入就绪队列嵌套调用
系统调用也允许嵌套调用,即在一被调用过程执行期间,可再利用系统调用命令调用另一系统调用
一般每个系统对嵌套调用的深度有限制系统调用的返回与嵌套调用系统调用的分类将系统的功能分为两部分:
系统自身所需要的
作为服务提供给用户的
OS的系统调用,
进程控制类系统调用
文件操作类系统调用
进程通信类系统调用
设备管理类系统调用
信息维护类系统调用
“广义指令”和“虚处理机”
系统调用命令扩充机器指令,增强系统的功能,
方便用户使用,称为,广义指令,。
,广义指令,和机器指令的不同:
机器指令是由硬件线路直接实现的
,广义指令,由 OS提供的多个子程序,软件实现的
,虚处理机,,从用户角度来看,,广义指令,,扩大了机器指令系统,增强了处理机功能,提供了一台功能更强,使用更方便的处理机,实现了处理机性能上的扩充,为了区别于真实的物理处理机,称它为,虚处理机,。
虚拟机
硬件,CPU,内存,外设
裸机:没有配置任何软件的计算机
虚拟机:在逻辑上添加一层软件来扩充计算机功能,被改造后的计算机,除了基本硬件指令外,又增加了许多新的命令,这些指令和命令的集合称为扩充后的机器指令系统,从而形成了一台比原来机器性能更好,功能更强的计算机,这种经软件改造后的计算机称为虚拟机 。
微机 OS中的系统调用
一般外设的输入,输出的系统调用
磁盘管理及磁盘输入,输出的系统调用
磁盘文件管理的系统调用
其它系统调用系统调用过程
为 执行系统调用命令作准备 。 其主要工作是把用户程序的,现场,保留起来,并把系统调用命令的编号等参数放入约定的存储单元 。
根 据系统调用的编号,访问系统调用入口表,找到相应子程序的入口地址,然后转去执行 。
系 统调用命令执行完后的处理 。 这包括恢复,现场,,并把系统调用的返回参数或参数区首址放入指定的通用寄存器中,以供用户程序使用 。
必须为实现系统调用功能的子程序编造入口地址表
每个入口地址与相应的系统程序名对应
陷入处理程序把陷入指令包含功能号与入口地址表有关项对应,系统调用功能号驱动有关子程序执行
在系统调用处理结束之后,用户程序需利用系统调用返回结果继续执行保护现场:
在进入系统调用处理之前,陷入处理机构还需保存处理机现场
在系统调用处理结束之后,要恢复处理机现场,现场被保护在特定的内存区或寄存器中系统调用过程(续)
系统调用过程(续)
作业的生活历程第七章 作业管理与 OS接口
7,5 UNIX系统调用
UNIX系统调用的类型
进程控制
文件操纵
进程间通信 ( 通信软件包,IPC)
信息维护进程控制
创建进程 ( fork)
终止进程 ( exit)
等待子进程结束 ( wait)
执行一个文件 ( exec)
获得进程 ID
获得用户 ID
进程暂停( pause)
文件操纵
创建文件 ( creat)
打开文件 ( open),把文件属性从盘复制到内存
关闭文件 ( close),切断用户程序与该文件的通路
读和写文件 (read和 write)
连接和去连接 ( link和 anlink)
进程间通信
消息机制,用 msgget建消息队列 → ( 成功 ) 返回 mssgid
共享存贮机制:利用 shmget建立共享存贮区
信号量机制:允许将一组信号量形成一个信号量集信息维护
设置和获得时间
获得进程和子进程时间( times)
设置文件访问和修改时间( utime)
获得当前 UNIX系统的名称( uname)
被中断进程的环境保护
CPU环境保护,应在用户空间提供系统调用所需的参数表,并将该参数表的地址送入 R0寄存器 。
AP和 FP指针,系统调用参数表指针 AP
是用于指示正在执行的系统调用所需参数表的地址,栈帧指针 FP则是用于指示本次系统调用所保存的数据项 。
系统调用陷入后需处理的问题
trap.C程序是一各处理各种陷入情况的 C语言文件,共有 12种陷入的处理要调用 trap.C程序 。
1,确定系统调用号,其调用形式为:
trap(usp,type,code,PC,PSL)
2,参数传送,参数传送是指由 trap.C程序将系统调用参数表中的内容,从用户区传送到 User结构的 U.U-arg[ ]中,供系统调用处理程序使用。
系统调用陷入后需处理的问题 (续)
3,利用系统调用定义表转入相应的处理程序在 UNIX系统中,对于不同 ( 编号 ) 的系统调用,都设置了与之相应的处理子程序 。
4,系统调用返回前的公共处理在 UNIX系统中,进程调度的主要依据,是进程的动态优先级。随着进程执行时间加长,其优先级将逐步降低。 UNIX系统规定,当进程的运行是处于系统态时,即使再有其他进程又发来了信号,也不予理睬;仅当进程已从系统态返回到用户态时,内核才检查该进程是否已收到了由其他进程发来的信号。