00_OS_Class_3_第1页
00_OS_Class_3_第2页
00_OS_Class_3_第3页
00_OS_Class_3_第4页
00_OS_Class_3_第5页
已阅读5页,还剩129页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第三章 用户接口与作业管理,用户如何把自己的请求告诉计算机 计算机接到用户请求后如何处理,如何为用户服务,3.1 概述,3.1.1 程序的启动和结束,例子: 程序的执行(启动和结束),硬件知识: 程序开始执行的两个前提条件 程序已装入内存 程序计数器PC:该程序在内存的入口地址,五种启动程序执行的方式,第一种方式:命令方式 命令提示符下打入程序名和参数,回车 c,$,% 命令解释程序(命令解释器,作业管理程序,作业控制程序,SHELL) (根目录下) SHELL (BSH,CSH,KSH) 在Windows中,命令方式是以窗口菜单显示和鼠标操作来体现的,开机,命令提示符出现,打入命令,打回车,程序首指令执行,程序尾指令执行,下一个命令提示符出现 (在前一个命令提示符的下一行首),命令方式的程序启动,第二种方式:批处理方式,.BAT 文件 例子:启动中文环境需要多条命令: 装入字库 启动主程序 装入汉字输入法 AUTOEXEC.BAT 将若干条命令放在一个文件中,在提示符后打入该文件的名字,由计算机自动连续执行该文件的一组命令,以命令方式启动执行批文件,操作系统调入批文件,读进其中第一条命令,装入并启动该命令要执行的程序,该程序执行完毕,回到操作系统, 操作系统从该批文件中读下一条命令,批方式下的装入启动过程,编辑(输入,修改)源程序,编译,连接,运行,成功,编辑(输入,修改)另一源程序,是,否,典型的作业步,一个作业,另一个作业,第三种方式: EXEC方式,在一个程序中运行另一个程序 返回原来的程序,“父”程序执行exec调用,操作系统实现exec的装入(建立进程)、 启动(或转调度子程序或返回),“子”程序执行,回到操作系统,进行子程序结果处理工作,并将结果信息返回“父”程序,“父”程序继续执行,EXEC方式的过程,执行完毕,第四种方式: 由硬件装入程序和启动程序执行,早期计算机:用户把装有可执行目标程序的纸带(或卡片)安装到纸带(或卡片)输入机上;按机器面板上的一个特定按钮(“装入程序并启动执行”);硬件将纸带上的内容顺序读入内存,直至纸带上的一个特殊的程序结束标记为止;然后硬件开始从内存零地址处执行程序,第五种方式:自启程序,自己装入自己,并启动自己开始执行的程序 自启程序由两部分组成 引导程序和程序主体,引导程序,例如,ROM中放一个简单原始的引导程序,开机时硬件自动从ROM中该引导程序的起始地址开始执行它 由引导程序装入启动程序主体,用户程序存放在外存上,其自含的引导程序顺序放在存储介质的开始位置,将该存储介质放到相应的联机输入装置上,以某种硬操作方法通知计算机需执行自启程序,硬件将上述引导程序读入内存并将控制权传给它,引导程序将用户主体程序读入内存并将控制权传给它,自启程序装入与启动的过程,程序的结束,正常结束:程序按自身的逻辑有效地完成预定功能后结束 异常结束:发生了某些错误而导致程序在没有完成预定功能时提前结束,正常结束的结束处理工作,返回父程序并返回结果信息 释放所用资源(空间、 设备、 记录使用情况、记帐等),非正常结束的结束处理工作,应包括正常结束时所做的处理工作 找出错误原因并报告给用户,3.1.2 用户与操作系统的接口 1. 程序级接口 用户在程序中通过一系列的系统调用向操作系统提出服务请求,2. 作业级接口,操作系统为用户对作业运行全过程的控制提供的功能 (1) 联机接口(交互式) 由一组命令向操作系统提出请求。用户在终端上输入命令,系统立即解释并执行该命令,完成用户的要求,然后返回终端或控制台;用户可输入下一条命令,如此反复直到作业完成,(2) 脱机接口,在批处理系统中,用户通过作业控制语言(JCL)向系统提出对作业控制要求 OS向用户提供一组作业控制语言,用户用这种语言书写作业说明书,然后将程序、数据和作业说明书一齐交给系统操作员 脱机用户不能直接干预系统,3.1.3 作业的基本概念,1.作业 用户在一次计算过程中,或者一次事务处理过程中,要求计算机系统所做工作的总称 作业:程序,数据,作业说明书,2. 作业步,一般情况下,一个作业可划分成若干个部分,每个部分称为一个作业步。在作业运行期间,各作业步之间存在着相互联系,往往上一个作业步的结果作为下一个作业步的输入,3. 作业流,一次有一批作业进入系统,并在操作系统控制下,一个接一个地进行处理,3.1.4 作业管理的任务,作业进入 作业调度 作业控制 作业退出,3.2 批处理系统的作业管理 (常用SPOOLing技术),基本原理: 系统把作业处理的全过程划分为相对独立的部分,一部分为输入流,一部分为处理流,一部分为输出流,3.2 批处理系统的作业管理,作业输入:,作业从输入介质上进入系统,并加以组织, 在磁盘上形成一个后备作业的过程,作业输出:,将输出井上的运行结果送外设(输出设备),作业处理:,作业调度 挑选一部分作业投入运行 作业控制 完成具体进程的执行,解释执行作业说明书,结果送输出井,3.2.1 作业进入,作业从输入设备进入系统,并加以组织,形成一个后备作业的过程,1.作业的组成 作业=程序+数据+作业说明书 作业说明书: 一个独立于程序的文件,刻画了用户对作业的基本描述,以及用户对作业处理的控制要求 是用作业控制语言书写的,2. 作业控制语言 是一种高级语言 3. 输入井 在磁盘上开辟的一块空间,用于存放后备作业,包括程序,数据,作业说明书,作业控制块,4.作业控制块(Job Control Block-JCB) 作业存在的唯一标志 是系统为管理作业所设置的一个数据结构 存放了管理和控制作业所必需的信息,JCB主要内容:,作业的描述信息: 如作业名,用户名,用户帐号,调度信息(作业优先级别),资源需求,作业进入系统时间,作业估计运行时间,作业开始处理时间,作业完成时间,作业状态等。 作业的存储信息: 输入井地址,输出井地址 作业说明书信息:,5. 预输入过程,第一步: 作业说明书经外部设备进入内存,操作系统对它进行分析,从其中抽取有关内容,填写后备作业JCB,然后把作业说明书以文件的形式存入输入井,并将文件名填入JCB,第二步: 把作业体(程序和数据)调入输入井,填写JCB有关内容 第三步:把JCB存入输入井,插入到后备作业队列 (以上三个步骤由预输入进程完成),6. 预输入进程,预输入进程完成作业的输入、组织和建立工作 是一个系统进程,一经创建就等待输入设备上的信号,由系统操作员发信号,唤醒该进程投入运行 其工作方式为等待人工启动,3.2.2 作业调度,1.作业调度 根据一定的原则,从输入井的后备作业队列中选择适当的作业,为它分配内存等资源,并将其调入内存投入运行。 又称高级调度,远程调度,2. 调度原则,公平,合理,使用户满意 提高系统资源利用率,如提高系统吞吐量,3.作业调度算法,(1)先来先服务(FCFS) 按照作业进入系统的先后次序进行调度,先进入系统者先调度 优点:实现简单,公平 缺点:没考虑资源利用率和作业的特殊性,(2)短作业优先(SJF),选择运行时间最短的作业投入运行 优点: 易于实现,强调了资源的充分利用,保证了系统的最大吞吐量(单位时间里处理作业的个数) 缺点: 不公平,会造成长作业长期等待,结论: 假设系统中所有作业同时到达,可以证明采用SJF能得到最短的作业平均周转时间 思考:证明以上结论,优先选择响应比最高的作业投入运行 响应比:作业周转时间/作业估计运行时间 作业周转时间=作业进入系统等待时间+作业估计运行时间,(3)最高响应比优先(HRF),该算法是FCFS和SJF的结合,克服了两种算法的缺点 优点: 公平,吞吐率大 缺点: 增加了计算,增加了开销,(4) 基于优先数的作业调度算法,选择优先级高的作业投入运行,(5) 资源搭配算法 (均衡型作业调度算法),把作业分类,作业调度从不同类型作业中去调度作业 根据作业对资源要求分类: I/O 型 CPU 型 均衡型,4. 性能衡量指标,(1)作业平均周转时间T (Ti为每个作业的周转时间;tc作业完成时刻;ts作业进入系统时刻),(2)平均带权周转时间W,(Ti为每个作业的周转时间;tr为作业实际运行时间),T是衡量不同调度算法对同一个作业流的性能 W是同一调度算法对不同作业流的性能衡量,例:单道环境下四个作业,它们进入系统的时间如下: (1)给出FCFS , SJF下的作业执行次序 (2)给出FCFS , SJF下的作业平均周转时间和带权平均周转时间,例:,FCFS : T= ( 120+120+120+90 ) / 4 =112.5 SJF: T=(120+150+70+40)/4=95 FCFS: W=(120/120 + 120/50 +120/10 +90/20)/4=4.975 SJF: W=(120/120 + 150/50 + 70/10 +40/20) /4=3.25,作业:,两道环境下,四个作业,它们进入系统的时间如下: 系统采用短作业优先作业调度算法,作业被调度运行后不再退出,但当一新作业投入运行后,可按照作业运行时间长短调整作业执行的次序,请给出上述四个作业的执行时间序列,及计算出平均周转时间及带权平均周转时间,作业:两道环境下四个作业,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 系统调用,系统调用与命令 使用方式不同,形式相同 系统调用是嵌入到程序中使用,命令是交互式使用,汇编程序例子:打印5个字符 方法1:调用DOS功能 MOVE A,PARA1 MOVE B,PARA2 INT 21H,方法2:用OUT语句直接打印 L1:MOVE A,I IN ADDR1,B OR B,BS JNC L1 OUT ADDR2,A RET,I/O设备的硬件接口,一般由四种寄存器(地址,数据,状态,控制)或其子集组成,任一程序中若要使用I/O设备来输出数据或接受输入,必须通过对这四种寄存器读写的I/O机器指令进行,而使用INT的程序段则简单许多。程序员不再需要与接口寄存器打交道,只需一个简单的调用即可,汇编程序例子2:读写硬盘文件内容 MOVE DX,OFFSETBUFF MOVE CX,BYTE MOVE BX,HANDLE MOVE AH,3FH INT 21H,磁盘读写的例子:更复杂,原因: A、磁盘的控制和状态接口寄存器比打印机的复杂的多,而且还有地址接口寄存器 B、通常一个外存存储介质上可以存放多个文件,随着文件的建立、删除和拷贝在不停地变化,每个文件的长度随着其内容的变化而不停地变化,高级语言例子:打印5个字符 char buff4=“abcde”; for(i=4;i=0;i-) print(buffi);,高级语言例子: 读硬盘文件f1的第10到20个字节 seek(fd,10,0); read(fd,buff,11);,(1)源程序段,(3)程序段编译产生的 可执行代码,(4)操作系统 可内部代码,嵌入后,该系统调用的操作系统内部实现代码,凡是与硬件相关、与应用无关的工作,都通过操作系统程序来完成,每个操作系统都提供几百种系统调用,包括:外存文件与目录的读写,各种I/O设备的使用,在程序中启动另一个程序,查询和统计系统资源使用情况等等,用户程序中对操作系统的调用称为系统调用(system call),实际上系统调用语句本身是硬件提供的(机器指令),但其所调用的功能是操作系统提供的。每种机器的机器指令集中都有一条系统调用指令(又称访管指令),INT指令的执行过程: 将PC与PSW入栈根据该指令的参数将内存中断向量表的相应位置的内容读入执行操作系统内部代码,IRET指令的执行过程: 以栈顶内容置PSW和PC,系统调用方式(INT)与程序中一般的调用方式的相同点和不同点:,改变指令流程 重复执行和公用 改变指令流程后需要返回原处,同一程序中不包含被调用代码 转向的地址是活的:地址不写在程序中,不同的调用地址不同 返回地址是活的:不同的调用返回的地址不同 是安全接口:可随意进入被调用方,系统调用是动态调用,程序中不包含被调用代码,好处: (1)用户程序长度缩短 (2)当OS升级时,调用方不必改变,系统调用方式的调用地址和返回地址都是不固定的,系统调用指令中不包含调用地址,只包含功能号,是按功能号(在可执行目标程序中)调用的。在操作系统内部,由系统调用处理程序通过系统调用分支表(OS的一个数据结构)将功能号转换为相应的指令地址,系统调用返回指令中不包括返回地址,通过栈保存和弹出返回地址 系统调用返回地址不固定,因为用户程序在不同的地方调用OS,安全接口: INT指令和IRET指令的执行过程中,要处理程序状态字PSW,INT指令中要保存用户程序的老PSW,并根据中断向量表设置新PSW;IRET指令中要在返回用户程序前恢复用户程序的老PSW,其目的:目态、管态的管理 系统态与用户态的转换,是由系统在INT指令与IRET指令内部自动完成的,而没有用一条单独的专门指令。这样可以有效地防止在系统态下执行用户程序,有两种可能性: 被调用代码是专门为该软件编制,即基于模块划分或仅限于本软件范围内的公用或重复使用(没有问题) 被调用代码来自公用软件(函数库),CALL调用方式是静态调用,被调用代码与调用代码在同一程序之内,CALL调用方式,其调用地址是固定的,包含在调用语句中;返回地址是不固定的,在程序执行过程中通过栈的实现来保存和弹出返回地址,CALL指令的内部实现过程: 返回地址压栈(即该CALL指令所在的地址)将该CALL指令中所含的地址(即被调用代码所在地址)送入PC,RET指令的内部实现过程: 从栈顶弹出返回地址送入程序计数器PC 其它如jump,jnc,LOOP指令也如此,3.5 操作系统的安装与启动 操作系统怎样开始运行 怎样形成一种系统操作环境 怎样从程序的顺序执行转换到支持程序的并发执行,3.5.1 操作系统的引导和装入 两种方式: 独立引导(bootup) 辅助下装(download),独立引导方式:大多数系统采用,操作系统的核心文件存储在系统本身的存储设备中,由系统自己将操作系统核心程序读入内存并运行,最后建立一个操作环境,步骤: (1)系统加电,执行系统初启程序 (2)执行初启程序,对系统硬件和配置进行自检,保证系统没有硬件错误 (3)从硬盘中读入操作系统初启文件,并将控制权交给该程序模块,(4)执行操作系统初启程序,完成系统环境配置和操作系统初始化工作 (5)继续读入其余的操作系统文件,逐个执行相应的系统程序,完成操作系统各种功能模块的装入,完善操作系统的操作环境,做好程序并发执行的准备 (6)等待用户请求和用户作业的输入,经过操作系统调度后并发执行,辅助下装方式:操作系统的主要文件并不放在系统本身的存储设备中,而是在系统启动后,执行下装操作,从另外的计算机系统或者主机系统中将操作系统常驻部分传送到该计算机中,使它形成一个操作环境,优点:可以节省较大的存储空间,下装的操作系统也并非是全部程序代码,只是常驻部分或者专用部分,当这部分操作系统出现问题和故障时,可以再请求下装,3.5.2 系统配置与初始化 操作系统的引导是一个从程序的顺序执行到并发执行的过程,只有在操作系统初始化完成后,才能建立这样一个环境,步骤: (1)关掉系统中断,以保证系统的顺利引导 (2)对当前的系统运行环境进行检查,对系统的配置进行认定,并保存检测的结果,作为系统的初始配置条件 (3)进

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论