第三章 用户接口与作业管理
用户如何把自己的请求告诉计算机
计算机接到用户请求后如何处理,如何为用户服务 3.1 概述
3.1.1 程序的启动和结束
例子:
程序的执行(启动和结束)
硬件知识:
程序开始执行的两个前提条件
程序已装入内存
程序计数器PC:该程序在内存的入口地址
五种启动程序执行的方式 第一种方式:命令方式
命令提示符下打入程序名和参数,回车 c>,$,%
命令解释程序(命令解释器,作业管理程序,作业控制程序,SHELL) command.com (根目录下)
SHELL (BSH,CSH,KSH…)
在Windows中,命令方式是以窗口菜单显示和鼠标操作来体现的。
第二种方式:批处理方式
.BAT 文件
例子:启动中文环境需要多条命令:
装入字库 启动主程序
装入汉字输入法
AUTOEXEC.BAT
将若干条命令放在一个文件中,在提示符后打入该文件的名字,由计算机自动连续执行该文件的这组命令。
第三种方式: EXEC方式
在一个程序中运行另一个程序, 再返回原来的程序。
第四种方式:
由硬件装入程序和启动程序执行
早期计算机:用户把装有可执行目标程序的纸带(或卡片)安装到纸带(或卡片)输入机上;按机器面板上的一个特定按钮(“装入程序并启动执行”);硬件将纸带上的内容顺序读入内存,直至纸带上的一个特殊的程序结束标记为止;然后硬件开始从内存零地址处执行程序。
第五种方式:自启程序
• 自己装入自己,并启动自己开始执行的程序 • 自启程序由两部分组成 • 引导程序和程序主体
引导程序
在外设设备的起始位臵上顺序存放,开机时由硬件自动装入并启动,或ROM中放一个引导程序,则不必装入而可以直按启动。即开机时硬件自动从ROM中该引导程序的起始地址开始执行它。
由引导程序装入启动程序主体
程序的结束
– 正常结束:程序按自身的逻辑有效地完成预定功能后结束。
– 异常结束:发生了某些错误而导致程序在没有完成预定功能时提前结束
正常结束的结束处理工作
– 返回父程序并返回结果信息
– 释放所用资源(空间、 设备、 记录使用、情况、记帐等)
非正常结束的结束处理工作
– 应包括正常结束时所做的处理工作 – 找出错误原因并报告给用户
3.1.2 用户与操作系统的接口
1. 程序级接口:
用户在程序中通过一系列的系统调用向操作系统提出服务请求。 2. 作业级接口:
操作系统为用户对作业运行全过程的控制提供的功能。
(1) 联机接口(交互式):
由一组命令向操作系统提出请求。用户在终端上输入命令,系统立即解释并执行该命令,完成用户的要求,然后返回终端或控制台;用户可输入下一条命令,如此反复直到作业完成。 (2) 脱机接口:
在批处理系统中,用户通过作业控制语言(JCL)向系统提出对作业控制要求。OS向用户提供一组作业控制语言,用户用这种语言书写作业说明书,然后将程序、数据和作业说明书一齐交给系统操作员。脱机用户不
能直接干预系统。
脱机用户接口与批处理接口是相同含义,它一次性提供一批作业,其间用户不必干预,机器按作业说明书处理。
3.1.3 作业的基本概念 1.作业:
用户在一次计算过程中,或者一次事务处理过程中,要求计算机系统所做工作的总称。
作业:程序,数据,作业说明书 2. 作业步:
一般情况下,一个作业可划分成若干个部分,每个部分称为一个作业步。在作业运行期间,各作业步之间存在着相互联系,往往上一个作业步的结果作为下一个作业步的输入。 3. 作业流:
一次有一批作业进入系统,并在操作系统控制下,一个接一个地进行处理。 3.1.4 作业管理的任务 1.作业进入 2.作业调度 3.作业控制 4.作业退出
3.2 批处理系统的作业管理 (常用SPOOLing技术)
说明:
系统把作业处理的全过程划分为相对的部分,一部分为输入流,一部分为处理流,一部分为输出流。
作业输入:
作业从输入介质上进入系统,并加以组织, 在磁盘上形成一个后备作业的过程 作业处理:
A 作业调度:挑选一部分作业投入运 行
B 作业控制:完成具体进程的执行,解释执行作业说明书,结果送输出井 作业输出:
将输出井上的运行结果送外设(输出设备) 3.2.1 作业进入
作业从输入设备进入系统,并加以组织,形成一个后备作业的过程。
1.作业的组成:
作业=程序+数据+作业说明书 作业说明书:
一个于程序的文件,刻画了用户对作业的基本描述,以及用户对作业处理的控制要求,它是用作业控制语言书写的。
4.作业控制块(Job Control Block-JCB):
作业存在的唯一标志,是系统为管理作业所设臵的一个数据结构,存放了管理和控制作业所必需的信息。
• 作业说明书内容有两部分:作业情况的描述,如用户名,作业名,用户帐号,使用语言,作业步骤,控制方式,优先级,专用文件,时间,有关注释等等。
• 另一部分是作业需要的资源,如参数设臵,系统配臵,空间需求,输入输出设备要求,数量,估计运行时间等。
JCB主要内容:
作业的描述信息:
如作业名,用户名,用户帐号,调度信息(作业优先级别),资源需求,作业进入系统时间,作业估计运行时间,作业开始处理时间,作业完成时间,作业状态等。 作业的存储信息:输入井地址,输出井地址 作业说明书信息 5. 预输入过程 第一步:
作业说明书经外部设备进入内存,操作系统对它进行分
析,从其中抽取有关内容,填写后备作业JCB,然后把作业说明书以文件的形式存入输入井,并将文件名填入JCB。
第二步:
把作业体(程序和数据)调入输入井,填写JCB有关内容。
第三步:把JCB存入输入井,插入到后备作业队列。 (以上三个步骤由预输入进程完成。) 6. 预输入进程:
预输入进程完成作业的输入、组织和建立工作。是系统进程,一经创建就等待输入设备上的信号,由系统操作员发信号,唤醒该进程投入运行。
预输入进程是一个系统进程,其工作方式为等待人工启动。
3.2.2 作业调度 1.作业调度:
根据一定的原则,从输入井的后备作业队列中选择适当的作业,为它分配内存等资源,并将其调入内存投入运行。
又称高级调度,远程调度 2. 调度原则:
公平,合理,使用户满意
提高系统资源利用率,如提高系统吞吐量 3.作业调度算法
(1)先来先服务(FCFS):
按照作业进入系统的先后次序进行调度,先进入系统者先调度。
优点:实现简单,公平
缺点:没考虑资源利用率和作业的特殊性 (2)短作业优先(SJF):
选择运行时间最短的作业投入运行。
优点:易于实现,强调了资源的充分利用,保证了系统
的最大吞吐量(单位时间里处理作业的个数)。 缺点:不公平,会造成长作业长期等待。
结论:
假设系统中所有作业同时到达,可以证明采用SJF能得到最短的作业平均周转时间。
(4) 基于优先数的作业调度算法: 选择优先级高的作业投入运行 (5) 资源搭配算法
(均衡型作业调度算法)
把作业分类,作业调度从不同类型作业中去调度作业 根据作业对资源要求分类: I/O 型 CPU 型 均衡型
4. 性能衡量指标
(1)作业平均周转时间T
(Ti为每个作业的周转时间;tc作业完成时刻;ts作业进入系统时刻)
(2)平均带权周转时间W
(Ti为每个作业的周转时间;tr为作业实际运行时间)
T是衡量不同调度算法对同一个作业流的性能
W是同一调度算法对不同作业流的性能衡量
例:
两道环境下,四个作业,它们进入系统的时间如下: 系统采用短作业优先作业调度算法,作业被调度运行后不再退出,但当一新作业投入运行后,可按照作业运行时间长短调整作业执行的次序,请给出上述四个作业的执行时间序列,及计算出平均周转时间及带权平均周转时间。
5.作业调度进程:
• 按一定的作业调度算法从后备作业队列中取一个JCB,对该JCB进行修改,形成一个运行JCB,然后为该作业分配资源。并将该作业的运行JCB交给作业控制进程。
(是一个系统进程,和预输入进程构成了生产者——消费者关系)
5.2.3 作业控制(负责控制作业运行)
• 作业控制进程:主要负责控制作业的运行,具体解释执行作业说明书的每一个作业步,并创建子进程来完成相应步骤
(是一个系统进程,和作业调度进程构成生产者——消费者关系) 5.2.4 作业退出
• 把输出结果送到输出设备上(启动缓输出进程完成)。 • 回收各种资源。
缓输出进程(脱机): 从输出井上将结果输出。
是一个系统进程。创建后等待被唤醒,一旦作业完成,则唤醒该进程。
3.2.5 作业状态及转换
作业状态;进入状态;后备状态;运行状态;退出状态。
3.2.6 SPOOLing 系统工作原理
(Simultaneously Peripheral Operation On Line ) 系统把作业处理全过程分为相对的部分,一部分为输入,由预输入进程完成;另一部分为输出,由缓输出进程完成;另一部分由作业调度和作业控制来完成,处理部分若从输入部分输入的话,改为从输入井输入数据;如果向外设输出,改为向输出井某一部分去输出。
3.3 交互式系统的作业管理
3.3.1 概述
命令接口的基本任务
1.解释操作系统命令语言中的命令,将命令传送到系统以便执行
2.接受系统来的信息,以响应语言的形式提呈给用户
联机用户与交互式命令接口
使用者用输入装臵,以各种操作方法何计算机发出命令,请求各种操作。系统收到命令请求之后,将控制转向解释命令系统,对该命令进行解释执行,完成指定功能。然后,系统等待新的命令输入。
交互式命令的接口通常要复杂,含功能结构,可能问题的处理办法,如各种约定,前端处理,求助功能,命令日志,命令注解,宏命令及命令组等。
交互式控制灵活方便,可以随时进行各种处理,排除问题,方便调试,但系统利用率差。
联机命令接口:
一组联机命令,终端处理程序,命令解释程序
3.3.2 命令接口的操作方式与结构
直接命令处理
• 直接命令用命令处理程序来实现。
• 对命令进行判别、分类、翻译、解释、并按照命令参数的要求与功能,调用系统过程去实现。 不同的实现方式:
• 作为操作系统的一个组成部分。
• 作为操作系统的一个一个程序模块。
• 作为操作系统下的一个可臵换的一个普通程序。
终端命令处理
在多用户环境下的终端型处理界面,可采用间接性终端处理程序结构。用户不直接面对主机系统,而是通过某种输入输出设备与主机进行通信。用户通过键盘,鼠标等装臵,通过视频终端把信息输入系统,在终端屏幕上输出文本和图像。这里处理话动中,除了命令处理程序外,系统还要有一个终端处理程序对终端进行控制和管理。
终端处理程序:
接收用户从终端上打入的字符 字符缓冲,暂存所接收的字符 回送显示 屏幕编辑 特殊字符处理
直接影响命令接口的问题
(1)回送():用户输入一个字符时,要回送到终端上。某种情况下又不需回送。在远程情形下,回送由终端处理程序处理,不用远程通信。
(2)缓冲():有时输入字符先于程序处理,可以用缓存暂存等方法。
(3)字符转换():如大小写,不同编码方式的转换。 (4)行缓冲() (5)中止字符() (6)命令预告() 3.3.3 命令语言
目的:规定由操作系统执行的一系列操作。
命令结构:
(命令前缀)命令名(命令参数)(命令选项)
• 命令前缀:命令的特殊性
• 命令参数:命令在执行前所需的资源、文件和数据。
• 命令选择:指明命令的目标、路径、方向、范围等。
典型命令实例: (1)UNIX系统: who ls -l
(2)DOS系统 dir c:\\
(3)VAX/VMS run mypro
3.3.4 命令的种类与功能 基本命令
• 最不可少的命令
• 显示文件目录、路径和内容 • 复制、更名或删除
• 建立、编辑程序、文本和数据 • 不同的语言编译和连接程序 • 显示系统或用户环境的信息
批处理命令
针对脱机用户操作和大量顺序操作功能而设计。
批处理命令可以是专门的命令,也可是系统的基本命令;还有有关的语法结构,循环、分支、转移、判别等,枸成一套特殊的命令语言。
宏命令
一类组合命令,某些方面类似于批处理命令,但有严格格式。宏命令其中可包含若干命令,类似于宏语句。 MACRO mycmd [命令集…] MACRO END
命令的附加功能
命令的附加功能用以扩大命令的功能性、选择性、适应性。包括: (1)参数与变量 位臵变量
关键字变量
(2)命令通配符 (3)重定向
(4)管道与过滤器 3.3.5 命令文件
许多命令接口允许用户提前写出命令并存入文件,且称为命令文件。
命令文件提供了一种把一系列命令组装成文件的方法,然后用文件名作为命令名执行另外一系列命令。
• 好的高效命令可以在如下特点:
• 如同标准命令一样接受参数和变量,并可如宏变量一样在文本中进行替换。
• 允许在命令文件中以嵌套形式调用其它命令文件。 • 允许参数来自终端战命令文件本身。
• 允许命令执行显示到终端、存入文件或送入打印机。 • 允许命令加入注释。
• 出错时允许用户干预,并在适当位臵恢复命令文件的执行。
命令文件可把输入传给程序。
命令文件可有循环、分支、转移等程序语言的特征。 3.3.6 命令设计
• 命令设计是操作系统各模块设计中重要的,也是困难的一环。
• 命令解释和处理程序也是操作系统中重要的程序模块。
3.3.7 实现 1.用户进程
对终端进行控制,即登录管理。
OS提供监控程序(monitor),不断检查系统终端,一旦发现某个终端打开,在终端上显示必要信息,要求用户注册(给出用户名、口令),看其是否合法,合法则为终端生成用户进程,然后,用户进程作业不断接收命令为用户服务。 2.用户管理
为每个用户建立一个帐号,并记录这个用户的主要信息,如用户名,口令,这些信息存放在系统文件内。当用户登录时,系统将用户打入信息与该文件进行比较,若匹则为合法用户,并为其创建用户进程,其标志:提示符。
3.子进程: (UNIX)中用FORK系统调用创建一个子进程 4.后台命令 5.保护机制 3.4 系统调用
系统调用与命令
使用方式不同,形式相同。
系统调用是嵌入到程序中使用,命令是交互式使用。