版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、操作系统教程第3章用户接口与作业管理2022/7/26操作系统教程第3章用户接口与作业管理1. 作业级接口 操作系统为用户对作业运行全过程控制提供的功能(1) 联机接口(交互式)(2) 脱机接口一、用户与操作系统的接口作业级接口程序级接口操作系统教程第3章用户接口与作业管理系统为用户在程序一级提供有关服务而设置由一组系统调用命令组成负责管理和控制运行的程序并在这些程序与系统控制的资源和提供的服务间实现交互作用用汇编语言:在程序中直接用系统调用命令用高级语言:可在编程时使用过程调用语句2. 程序级接口操作系统教程第3章用户接口与作业管理二、批处理系统作业处理1.作业的基本概念(1)作业 用户在一
2、次计算过程中,或者一次事务处理过程中,要求计算机系统所做工作的总称(2)作业步 一个作业可划分成若干部分,称为一个作业步 典型的作业控制过程: “编译”、“连接装配”、“运行”(3)作业流操作系统教程第3章用户接口与作业管理(4)典型的作业步编译连接装配运行目标程序段目标程序源程序输入数据子程序库函数动态库函数计算结果1. 作业的基本概念(续1)操作系统教程第3章用户接口与作业管理2. 批处理作业控制语言与作业说明书(1)作业控制语言用户用于描述批处理作业处理过程控制意图的一种特殊程序书写作业说明书的语言称为作业控制语言(JCL)(2)作业控制语言的类别 包括:I/O命令、编译命令、操作命令以
3、及条件命令等操作系统教程第3章用户接口与作业管理(3)作业说明书表达用户对作业的控制意图内容:作业的基本描述作业控制描述资源要求描述2. 批处理作业控制语言与作业说明书(续)操作系统教程第3章用户接口与作业管理3. 作业控制块与作业表(1)作业控制块(JCB:Job Control Block)作业控制块是批处理作业存在的标志保存有系统对于作业进行管理所需要的全部信息位于磁盘区域中操作系统教程第3章用户接口与作业管理(2)作业控制块的内容 作业控制块中所包含的信息数量及内容因系统而异较简单的系统较复杂的系统 3. 作业控制块与作业表(续1)操作系统教程第3章用户接口与作业管理作业标知用户名称用
4、户帐号调度信息资源需求作业状态作业类别输入井地址输出井地址进入系统时间开始处理时间作业完成时间作业退出时间资源使用情况 作业控制块JCB3. 作业控制块与作业表(续2)操作系统教程第3章用户接口与作业管理(3)作业控制块的建立 当作业开始由输入设备向磁盘的输入井传输时 系统输入程序为其建立一个作业控制块 进行初始化 初始化的大部分信息取自作业说明书 3. 作业控制块与作业表(续3)操作系统教程第3章用户接口与作业管理(4)作业控制块的使用需要访问作业控制块的程序系统输入程序作业调度程序作业控制程序系统输出程序等3. 作业控制块与作业表(续4)操作系统教程第3章用户接口与作业管理(5)作业控制块
5、的撤消作业完成后,其作业控制块由系统输出程序撤消作业控制块被撤消后其作业也不复存在3. 作业控制块与作业表(续5)操作系统教程第3章用户接口与作业管理(6)作业表每个作业有个作业控制块所有作业JCB构成一个作业表作业表存放在外存固定区域中,长度是固定限制了系统所能同时容纳的作业数量 系统输入程序、作业调度程序、系统输出程序都需要访问作业表 因而存在互斥问题JCB1 JCB2 JCBi JCBn 作业表3. 作业控制块与作业表(续6)操作系统教程第3章用户接口与作业管理4. 批处理作业的状态及转换一个作业从进入系统到运行结束经历四个不同的状态:“进入”“后备”“运行”“完成” 操作系统教程第3章
6、用户接口与作业管理作业和进程的状态转换图数据进入状态退出状态后备状态运行状态作业控制进程 输入设备数据源程序输出设备作业说明书输入井运行等待就绪输出井输入程序输出程序作业调度进程调度4. 批处理作业的状态及转换(续1)操作系统教程第3章用户接口与作业管理(1)运行状态的作业三种状态:就绪状态执行状态阻塞状态4. 批处理作业的状态及转换(续2)操作系统教程第3章用户接口与作业管理5. 作业的建立一个作业建立过程的两个子过程:作业的输入JCB的建立 作业控制块JCB和作业:一一对应关系操作系统教程第3章用户接口与作业管理(1)作业的输入 将作业程序、数据和作业说明书从输入设备(例如键盘)输入到外存
7、,并形成初始信息作业输入方式联机输入方式脱机输入方式SPOOLing系统5. 作业的建立(续1)操作系统教程第3章用户接口与作业管理 联机输入方式用户和系统通过交互会话来输入作业外围设备直接和主机连接 脱机输入方式 为了解决单台设备联机输入时的CPU浪费问题5. 作业的建立(续2)操作系统教程第3章用户接口与作业管理(2)JCB的建立在系统把作业信息输入到输入井之后根据作业说明书和有关作业信息在外存的位置等建立作业控制表JCBJCB包含对作业进行管理所必须的信息JCB表的数量是一个常数外存输入井的大小有限 只有在获得JCB表项和足够输入井空间后作业才可能创建成功5. 作业的建立(续3)操作系统
8、教程第3章用户接口与作业管理6. 批处理作业的调度主要功能:审查系统能否满足用户作业的资源要求 只要通过调用相应的资源管理程序的有关部分 审核其表中是否能满足作业说明书中的要求即可按照一定的算法从输入井中的后备作业中选取作业 调度的关键在选择恰当的算法操作系统教程第3章用户接口与作业管理(1)调度算法评价调度实质上是一个策略问题设定的目标往往是相互冲突的 目标:单位时间内运行尽可能多的作业使处理机尽可能保持“忙碌”使各种I/O设备得以充分利用对所有的作业都是公平合理的6. 批处理作业的调度(续1)操作系统教程第3章用户接口与作业管理要设计一个理想的调度算法是一件十分困难的事在实际系统中,调度算
9、法往往折衷考虑设计调度算法时应考虑的因素:调度算法应与系统设计目标保持一致注意系统资源均衡使用保证提交的作业在截止时间内完成设法缩短作业平均周转时间大多数操作系统都采用比较简单的调度算法6. 批处理作业的调度(续2)操作系统教程第3章用户接口与作业管理作业平均周转时间假定某一作业进入“输入井”的时间为Si(提交时间,到达时间),它被选中执行,得到计算结果的时间为Ei(完成时间)它的周转时间为Ti Ei Si 则作业平均周转时间为: T( ) n为被测定作业流中的作业数(2)调度算法性能的衡量6. 批处理作业的调度(续3)操作系统教程第3章用户接口与作业管理平均带权周转时间 带权周转时间WT/r
10、=周转时间/运行时间 W( ) ri 为某作业i的实际执行时间 T:衡量不同调度算法对同一个作业流的性能 W:同一调度算法对不同作业流的性能衡量 6. 批处理作业的调度(续4)操作系统教程第3章用户接口与作业管理(3)系统进行作业调度的决策因素作业到达时间预先为作业确定的优先级系统可测定的其他因素:作业所需的CPU时间C存储要求M打印输出的行数L其他的资源要求6. 批处理作业的调度(续5)操作系统教程第3章用户接口与作业管理(4)常见的批处理作业调度算法先来先服务算法(FCFS:First Come First Serve)最短作业优先算法(SJF:Shortest Job First)最高响
11、应比优先算法 (HRN:Highest Response Ratio Next) 响应比R = 作业周转时间 / 作业处理时间 =(作业处理时间+作业等待时间)/ 作业处理时间 = 1 +(作业等待时间 / 作业处理时间)6. 批处理作业的调度(续6)操作系统教程第3章用户接口与作业管理基于优先数调度算法 (HPF:Highest Priority First) (a)由用户规定优先数(外部优先数) 用户提交作业时,根据急迫程度规定适当的优先数 作业调度程序根据JCB优先数决定进入内存的次序 (b)由系统计算优先数(内部优先数)例:可按如下公式计算作业的优先数:优先数 = 用户规定优先数 作业
12、处理时间 + 作业等待时间 输出量6. 批处理作业的调度(续7)操作系统教程第3章用户接口与作业管理均衡调度算法(分类排队算法)基本思想:根据系统运行情况和作业属性将作业分类轮流从不同的作业类中挑选作业目标:力求均衡地利用各种系统资源,发挥资源使用效率力求使用户满意6. 批处理作业的调度(续8)操作系统教程第3章用户接口与作业管理例1:将待处理作业分成如下队列: 队列1:计算量大的作业 队列2:I/O量大的作业 队列3:计算量与I/O量均衡的作业调度时,在三个队列中各取一些作业在内存中的作业有的使用处理机有的使用外部设备使得系统的各种资源能得到充分利用6. 批处理作业的调度(续9)操作系统教程
13、第3章用户接口与作业管理例2:将待处理作业分成如下三个队列: 队列1:长作业 队列2:中等长度作业 队列3:短作业调度时取队列1一作业,队列2一作业,队列3一作业长作业用户和短作业用户均比较满意6. 批处理作业的调度(续10)操作系统教程第3章用户接口与作业管理(5)作业调度算法应用例子1假设在单道批处理环境下有四个作业,已知它们进入系统的时间、估计运行时间 应用先来先服务、最短作业优先和最高响应比优先作业调度算法,分别计算出作业的平均周转时间和带权的平均周转时间6. 批处理作业的调度(续11)操作系统教程第3章用户接口与作业管理先来先服务调度算法计算结果6. 批处理作业的调度(续12)操作系
14、统教程第3章用户接口与作业管理最短作业优先作业算法计算结果6. 批处理作业的调度(续13)操作系统教程第3章用户接口与作业管理最高响应比优先作业算法计算结果6. 批处理作业的调度(续14)操作系统教程第3章用户接口与作业管理(7)多道程序对平均周转时间的影响作业流在多道环境下运行平均周转时间、带权平均周转时间 比单道环境下都有明显改善不是任意作业组合都能改善调度性能 有时甚至可能变坏6. 批处理作业的调度(续15)操作系统教程第3章用户接口与作业管理例:四个各需两小时作业同时投入运行,I/O等待时间均占25%,即占CPU时间各为1.5小时根据计算公式,CPU的空转率为0采用简单轮转法调度,每小
15、时各作业分别占用25%的CPU时间,算得该作业组合的平均周转时间约为6小时,而平均带权周转时间约为3但是,若以单道程序方式运行:平均周转时间T=(2+4+6+8)/4=5小时平均带权周转时间W=(1+2+3+4)/4=2.56. 批处理作业的调度(续16)操作系统教程第3章用户接口与作业管理7作业调度与进程调度作业能否占用处理器?什么时间能够占用处理器?由进程调度来决定进程的初始状态为就绪状态进程调度选择当前可占用 CPU处理进程,当它让出处理器时,进程调度就再选另一作业的进程作业调度与进程调度相互配合,实现作业的并行操作系统教程第3章用户接口与作业管理8. 批处理作业的控制当作业为执行态时,
16、作业调度程序为其建立一作业控制进程, 由该进程控制作业运行作业控制进程:主要负责控制作业的运行,具体解释执行作业说明书的每一个作业步,并创建子进程来完成相应步骤一个作业步的处理:(1)建立子进程(2)为其申请资源(3)访问该作业的JCB(4)释放占有资源(5)撤消子进程等作业控制程序只有一个 对应每一处于执行状态的作业有一作业控制进程操作系统教程第3章用户接口与作业管理9. 作业退出把输出结果送到输出设备上(启动缓输出进程完成)回收各种资源操作系统教程第3章用户接口与作业管理10. SPOOLing系统工作原理全称:Simultaneous Peripheral Operations On-L
17、ine含义:同时的外围设备联机操作(假脱机技术)包括:输入程序模块输出程序模块作业调度程序操作系统教程第3章用户接口与作业管理作业和进程的状态转换图数据进入状态退出状态后备状态运行状态作业控制进程 输入设备数据源程序输出设备作业说明书输入井运行等待就绪输出井输入程序输出程序作业调度进程调度10. SPOOLing系统工作原理(续1)操作系统教程第3章用户接口与作业管理10. SPOOLing系统工作原理(续2)作业执行前用慢速设备将作业预先输入到后援存储器(如磁盘、磁鼓,称为输入井)中,称为预输入作业运行后,使用数据时,从输入井中取出作业执行不必直接启动外设输出数据,只需将这些数据写入输出井中
18、作业全部运行完毕,再由外设输出全部数据和信息,称为缓输出实现了对作业输入、组织调度和输出的统一管理使外设在CPU直接控制下,与CPU并行工作(称为假脱机)操作系统教程第3章用户接口与作业管理输入装置输出装置通道通道输出装置输出装置通 道 主机系统输入管 输出管理模块 理模块外 设输入井 输出井 SPOOLing系统10. SPOOLing系统工作原理(续3)操作系统教程第3章用户接口与作业管理三、 交互式系统的作业管理1. 概述(1)命令接口 在操作系统与计算机用户之间提供易于理解的双向通信机制基本任务:解释命令,传送命令以便执行接受系统信息,提交给用户(以响应语言的形式)操作系统教程第3章用
19、户接口与作业管理交互式命令的接口复杂 含功能结构,可能问题的处理,如各种约定、前端处理、命令日志、命令注解、宏命令及命令组等交互式控制灵活方便,可以随时进行各种处理,排除问题,方便调试;系统利用率低接口包括:一组联机命令,终端处理程序,命令解释程序1. 概述(续1)操作系统教程第3章用户接口与作业管理(2)终端处理程序交互式命令接口:用户同操作系统的通信通过一个输入/输出装置来实现I/O装置一般是显示终端 输入通过键盘:在有的系统中,可通过指示装置(例如鼠标)输入 系统输入呈现在显示屏幕上,一次显示若干正文行 某些系统中,提供图形显示功能不管哪种I/O方式,这个终端装置是由一个终端处理程序管理
20、和控制1. 概述(续2)操作系统教程第3章用户接口与作业管理终端处理程序提供的输入输出方式对整个用户命令接口有重大影响也确定了用户与其应用程序之间的通信方式终端处理程序必须作为用户接口的一个组成部分来考虑 即,直接影响命令接口的一些问题须由终端处理程序解决1. 概述(续3)操作系统教程第3章用户接口与作业管理(3)直接影响命令接口的一些问题(a)回送显示(Echoing) 通常,每从键盘打入一个字符,终端处理程序回送响应的字符到显示屏上 有时用户要求其显示一个不同的字符或不显示(例如,用户键入口令时) 对于通过远程通信线路访问的终端,可能需要抑制这种回送 回送显示委托给远程终端来实现1. 概述
21、(续4)操作系统教程第3章用户接口与作业管理(b)提前打入(Type ahead) 假定输入字符在一程序准备处理它们之前打入,则由“提前打入进程”把它们保存在缓冲区中 缓冲区容量是有限,当其存满后,再有输入时,或者漏掉,或者将破坏缓冲区原有的内容(c)字符变换 有些情况下,需要对打入的字符进行代码变换 如,把小写字母转换成大写字母,或者反之(d)行缓冲 打入的字符在送到程序前,由终端接口保存,直到整个命令行打入为止 为用户提供了校验、编辑,甚至取消命令的机会(3)直接影响命令接口的一些问题(续1)1. 概述(续5)操作系统教程第3章用户接口与作业管理(e)中断字符(Break Characte
22、rs) 多数交互式命令接口可以接受一些称为中断字符的特殊字符,并立即采取相应的行动 如,在许多系统中,同时打入CTRLC字符键,立即终止当前程序执行,并使命令处理程序重新初始化(3)直接影响命令接口的一些问题(续2)1. 概述(续6)操作系统教程第3章用户接口与作业管理2. 命令解释程序命令解释程序有两种处理方法:(a)由终端命令解释程序直接处理 在没有创建子进程功能的系统中 终端命令通常由对应的命令解释程序处理 在这样系统中,仅有一个进程对应一个终端用户(b)由子进程代为处理在具有创建子进程功能的系统中,对于较为单纯的命令,如列目录,拷贝文件等,命令解释程序本身便能完成,此时由命令解释程序直
23、接处理对较复杂命令,如对于C源程序进行编译,命令解释程序本身不能处理,此时创建一个子进程,并由该子进程运行C编译程序操作系统教程第3章用户接口与作业管理3. 命令接口的结构命令接口由命令处理器来实现命令处理器的实现方式:(a)作为OS的一个部分 如,OS/MVT或VAX/VMS(b)作为OS的一个独特模块,能方便地修改或替换 如,RT-11或CP/M(c)作为一易于被替换的普通程序 如,UNIX操作系统 (d) 在某些系统中,可能用专门设计的命令接口替代标准的命令接口 如,多用户UNIX,用户可有不同命令接口操作系统教程第3章用户接口与作业管理4命令语言命令语言规定由OS执行的一系列操作在一般
24、的命令语言中,用户通过打入称为命令行的一行指令来规定每一个动作每一命令行以命令开始,它标识所要执行的操作大多数命令是用运行一个程序来执行所请求的操作 多数命令行中要给出一些参数, 每一命令语句实际上是带有参数的一个过程调用操作系统教程第3章用户接口与作业管理一个命令语言通常提供下列几组命令:(1)系统访问命令登录命令,如,login等撤离命令,如,logout等(2)文件管理命令(3)编辑、编译和执行命令(4)询问命令(5)操作员专用命令4. 命令语言(续1)操作系统教程第3章用户接口与作业管理4. 命令语言(续2) 命令行:规定由操作系统执行的一系列操作命令行:一行可有一个或多个命令,每次一
25、行,包含一个或多个命令。shell给出提示符时可输入,以回车键提交。如:“ls -a -l”列出当前目录文件列表;gunzip mp1.tar.gz; tar -xvf mp1.tar; rm -r -f mp1.tar为解压缩后再展开。命令格式:一个命令可有命令参数,格式包括选项/开关 (option/switch)或参数(argument)。如UNIX系统: cp -r doc /tmpargv0, argv1, .(含子目录的文件复制:/tmp为目标地址)操作系统教程第3章用户接口与作业管理4. 命令语言(续3)命令分类:内部命令和外部命令内部命令:直接由shell本身完成,功能简单、使
26、用频繁;如:DOS的copy命令。外部命令:运行相应的可执行文件,在使用时加载。如:DOS的xcopy命令命令简化:利用参数替换可简化命令输入,通配符(?, *)用于匹配一组文件名如:UNIX的cp命令:当前目录上有两个1.tar和2.tar时,cp *.tar /tmp等同于cp 1.tar /tmp; cp 2.tar /tmp操作系统教程第3章用户接口与作业管理命令的附加功能 命令的附加功能用以扩大命令的功能性、选择性、适应性。包括:(1)参数与变量 位置变量 关键字变量(2)命令通配符(3)重定向(4)管道与过滤器4. 命令语言(续4)操作系统教程第3章用户接口与作业管理批处理命令:针
27、对脱机用户操作和大量顺序操作功能而设计 批处理命令可以是专门的命令,也可是系统的基本命令;还有有关的语法结构,循环、分支、转移、判别等,构成一套特殊的命令语言5命令文件操作系统教程第3章用户接口与作业管理5命令文件(续)提前写出命令并存入文件,称之为命令文件命令文件提供了一种把一系列命令组装成文件的方法,然后用文件名作为命令名执行另外一系列命令特点:(1)接受参数、变量,宏变量替换(2)允许嵌套形式调用其他命令文件(3)允许参数来自终端的命令文件本身(4)允许执行显示到终端、存入文件或送入打印机(5)允许命令加入注释(6)出错时允许用户干预(7)可把输入传给程序,可有循环、分支、转移等操作系统
28、教程第3章用户接口与作业管理时间片轮转:在OS控制下,采用“时间片轮转”方法使每个终端作业都能在一个“时间片”内去占用处理器当时间片用完后,让出处理器给另一个终端作业这样,保证从终端用户输入命令到计算机系统给出应答 只是几秒钟的时间,使端用户感到满意6. 交互式系统实例分时系统操作系统教程第3章用户接口与作业管理分时系统中的用户控制作业的执行大致有四个阶段:终端的连接用户登录控制作业执行用户退出6. 交互式系统实例分时系统(续1)操作系统教程第3章用户接口与作业管理(1) 终端的连接必须使终端设备与计算机系统在线路上接通近程终端是直接与计算机系统连接的,当终端设备加电后,终端就与计算机系统在线
29、路上接通了远程终端通过租用专线或交换线接到计算机系统,在终端加电后用户还需通过电话拨号进行呼叫,直到接通当终端与计算机系统在线路上接通后,计算机系统会在终端上显示信息告诉用户6. 交互式系统实例分时系统(续2)操作系统教程第3章用户接口与作业管理(2) 用户登录用户必须向系统登录用户首先输入“登录”命令(LOGON)命令 系统会向询问用户名、作业名、口令和资源需求等 经过识别用户、核对口令,系统在终端上显示“已登录”和进入系统的时间等信息若口令不对或资源暂时不能满足时,则系统在终端上显示“登录不成功”并给出登录失败的原因用户的登录过程可看作是对终端作业的作业调度6. 交互式系统实例分时系统(续
30、3)操作系统教程第3章用户接口与作业管理(3) 控制作业执行登录成功的终端用户可从终端上输入作业的程序和数据使用系统提供的命令语言或会话语句控制作业执行每输入一命令或一会话语句后,由系统解释执行且在终端上显示执行成功或问题由用户决定下一步命令或会话直到作业完成6. 交互式系统实例分时系统(续4)操作系统教程第3章用户接口与作业管理(4) 用户退出用户输入“退出”命令(LOGOFF 命令)请求退出系统系统接收命令后就收回该用户所占的资源让其退出同时在终端上显示“退出时间”或“使用系统时间6. 交互式系统实例分时系统(续5)操作系统教程第3章用户接口与作业管理四. 系统调用1.系统调用简介系统调用
31、,是用户在程序中调用操作系统所提供的一些子功能这是特殊的过程调用,由特殊的机器指令实现这个指令还将系统转入管态系统调用程序是一个低级过程,只能由汇编语言直接访问系统调用是操作系统提供给编程人员的唯一接口利用系统调用,动态请求和释放系统资源完成与硬件相关的工作以及控制程序的执行等操作系统教程第3章用户接口与作业管理 每个操作系统都提供几百种系统调用,包括:外存文件与目录的读写,各种I/O设备的使用,在程序中启动另一个程序,查询和统计系统资源使用情况等等实际上系统调用语句本身是硬件提供的(机器指令),但其所调用的功能是操作系统提供的每种机器的机器指令集中都有一条系统调用指令(访管指令)1.系统调用
32、简介(续1)操作系统教程第3章用户接口与作业管理汇编程序例子:打印5个字符 方法1:调用DOS功能 MOVE A, PARA1 MOVE B, PARA2 INT 21H系统调用的例子-11.系统调用简介(续2)操作系统教程第3章用户接口与作业管理 高级语言例子:打印5个字符 char buff4=“abcde”; for(i=4;i=0;i-) print(buffi);高级语言例子: 读硬盘文件f1的第10到20个字节 seek(fd,10,0); read(fd,buff,11);系统调用的例子-51.系统调用简介(续3)操作系统教程第3章用户接口与作业管理.A= A+1printf(.
33、 . .)B=B+A(1)源程序段1.系统调用简介(续4)操作系统教程第3章用户接口与作业管理(2)printf目标代码(3)程序段编译产生的可执行代码(4)操作系统内部代码INT.INTA=A+1B=B+A.INOUT.嵌入后该系统调用的操作系统内部实现代码1.系统调用简介(续5)操作系统教程第3章用户接口与作业管理用户程序函数操作系统凡是与硬件相关、与应用无关的工作,都通过操作系统程序来完成1.系统调用简介(续6)操作系统教程第3章用户接口与作业管理2. 系统调用的处理过程为了保证OS不被用户程序破坏 不允许用户程序访问OS的系统程序和数据 那么,怎样得到系统服务的呢?需要有一个类似于硬件
34、中断处理的处理机构当用户使用操作系统调用时,产生一条相应的指令处理机在执行到该指令时发生相应的中断,并发出有关的信号给该处理机构该处理机构在收到了处理机发来的信号后,启动相关的处理程序去完成该系统调用所要求的功能操作系统教程第3章用户接口与作业管理2. 系统调用的处理过程(续1)在系统中为控制系统调用服务的机构称为陷入(TRAP)或异常处理机构相对应,把由于系统调用引起处理机中断的指令称为陷入或异常指令(或称访管指令)在操作系统中,每个系统调用都对应一个事先给定的功能号,例如0、1、2、3等在陷入指令中必须包括对应系统调用的功能号而且,在有些陷入指令中,还带有传给陷入处理机构和内部处理程序的有
35、关参数操作系统教程第3章用户接口与作业管理必须为实现系统调用功能的子程序编造入口地址表每个入口地址与相应的系统程序名对应陷入处理程序把陷入指令包含功能号与入口地址表有关项对应, 系统调用功能号驱动有关子程序执行在系统调用处理结束之后,用户程序需利用系统调用返回结果继续执行保护现场:在进入系统调用处理之前,陷入处理机构还需保存处理机现场在系统调用处理结束之后,要恢复处理机现场,现场被保护在特定的内存区或寄存器中2. 系统调用的处理过程(续2)操作系统教程第3章用户接口与作业管理 system call 入口地址表 (1)保护处理现场(2)取系统调用功能号并寻找子程序入口(3)返回A0A1Ai A
36、nA0 A1AiAnSub0Sub1SubiSubn 用户程序 陷入处理机构 系统子程序系统调用的处理过程操作系统教程第3章用户接口与作业管理3. 系统调用的分类将系统的功能分为两部分:系统自身所需要的作为服务提供给用户的OS的系统调用:进程控制类系统调用文件操作类系统调用进程通信类系统调用设备管理类系统调用信息维护类系统调用操作系统教程第3章用户接口与作业管理进程管理操作系统教程第3章用户接口与作业管理文件管理操作系统教程第3章用户接口与作业管理目录管理操作系统教程第3章用户接口与作业管理其他操作系统教程第3章用户接口与作业管理 系统调用方式(INT)与程序中一般的调用方式的相同点:改变指令
37、流程重复执行和公用改变指令流程后需要返回原处4.系统调用与一般过程调用的比较系统调用方式(INT)与程序中一般的调用方式的不同点:操作系统教程第3章用户接口与作业管理运行在不同的系统状态 一般过程调用,其调用程序和被调用程序都运行在相同状态:核心态或用户态系统调用:调用程序在用户态,被调用程序在系统态状态的转换一般的过程调用不涉及系统状态的转换,可直接由调用过程转向被调用过程运行系统调用时,调用和被调用过程在不同系统状态,不允许由调用过程直接转向被调用过程通过软中断机制先由用户态转换为核心态在OS核心分析后,转向相应的系统调用处理子程序4.系统调用与一般过程调用的比较(续1)操作系统教程第3章
38、用户接口与作业管理返回问题一般过程调用在被调用过程执行完后,回调用过程抢占式调度的系统中,被调用过程执行完后,系统将对所有要求运行的进程进行优先级分析。如果调用进程仍有最高优先级,则返回到调用进程执行 否则,引起重新调度,让优先级最高的进程优先执行。此时,系统把调用进程放入就绪队列嵌套或递归调用对系统调用,一般不允许在同一个进程中发生嵌套或递归(不同进程可以重入同一个系统调用)4.系统调用与一般过程调用的比较(续3)操作系统教程第3章用户接口与作业管理 进入方式不同CALL指令的内部实现过程返回地址压栈(即该CALL指令所在的地址)将该CALL指令中所含的地址(即被调用代码所在地址)送入PCR
39、ET指令的内部实现过程从栈顶弹出返回地址送入程序计数器PC利用int或trap指令进行系统调用;利用call 或 jmp 指令进入普通的过程调用4.系统调用与一般过程调用的比较(续4)操作系统教程第3章用户接口与作业管理系统调用是动态调用,而CALL调用方式是静态调用a. 同一程序中不包含被调用代码 系统调用是动态调用,程序中不包含被调用代码,好处:(1)用户程序长度缩短(2)当OS升级时,调用方不必改变4.系统调用与一般过程调用的比较(续5)操作系统教程第3章用户接口与作业管理 b. 系统调用方式的调用地址和返回地址都是不固定的 系统调用指令中不包含调用地址, 只包含功能号 是按功能号(在可
40、执行目标程序中)调用的在操作系统内部 由系统调用处理程序通过系统调用分支表 (OS的一个数据结构) 将功能号转换为相应的指令地址4.系统调用与一般过程调用的比较(续6)操作系统教程第3章用户接口与作业管理.功能号 地址显 示打 印读文件.OS的系统调用分支表OS代码显示打印读文件OS用户程序INT.4.系统调用与一般过程调用的比较(续7)操作系统教程第3章用户接口与作业管理系统调用返回指令中不包括返回地址,通过栈保存和弹出返回地址系统调用返回地址不固定,因为用户程序在不同的地方调用OS CALL调用方式是静态调用,被调用代码与调用代码在同一程序之内。CALL调用方式,其调用地址是固定的,包含在
41、调用语句中;返回地址是不固定的(同一子程序可能被不同处多次调用),在程序执行过程中通过栈的实现来保存和弹出返回地址4.系统调用与一般过程调用的比较(续8)操作系统教程第3章用户接口与作业管理c. 安全接口INT指令和IRET指令的执行过程中 要处理程序状态字PSW INT指令中要保存用户程序的老PSW 并根据中断向量表设置新PSW IRET指令中要在返回用户程序前恢复用户程序的老PSW4.系统调用与一般过程调用的比较(续9)操作系统教程第3章用户接口与作业管理安全接口(续1)目的:目态、管态的管理系统态与用户态的转换 由系统在INT指令与IRET指令内部自动完成 没有用一条单独的专门指令好处:
42、有效地防止在系统态下执行用户程序4.系统调用与一般过程调用的比较(续10)操作系统教程第3章用户接口与作业管理5. Win32 应用程序接口在Windows中,定义了一系列程序(应用程序接口Win32 API) ,提供OS服务这个接口(部分)支持Win95 以后的Windows版本Win32 API调用的种类非常多,以千计算在Windows中不可能分辨出哪些是系统调用(被内核执行),哪些是用户空间的库调用事实上,一个Windows版本中的系统调用也许在另一个Windows版本中会在用户空间执行由于图形子系统在内核中运行(在某些Windows版本中),它们也是系统调用,否则是库调用操作系统教程第3章用户接口与作业管理-操作系统教程第3章用户接口与作业管理操作系统怎样开始运行怎样形成系统操作环境怎样从程序的顺序执行转换到支持程序的并发执行五. 操作系统的安装与启动操作系统教程第3章用户接口与作业管理操作系统的引导有两种方式:独立引导(bootup)辅助下装(do
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年标准三方物流服务合作合同版
- 2024年消防设施安装工程协议条款版B版
- 2024年房地产开发商土地收购协议范本3篇
- 2024年空气质量改善服务协议
- 2024年度施工现场环境监测与安全责任协议书2篇
- 2024年租赁协议(物业版)
- 2024年海洋工程设备采购与系统集成服务合同2篇
- 2024年度五星级酒店全面托管服务合作协议3篇
- 2024年机械加工定制协议样本版B版
- 2024年城市更新改造工程路灯杆广告经营权租赁协议3篇
- 口腔专科护理知识考核试题与答案
- 音响工作总结共3篇(剧院音响工作个人总结)
- 安徽省建筑、装饰装修工程计价定额说明及工程量计算规则
- 新高考3+1+2改革情况详细讲解课件
- 思维训练——对折问题实用教案
- 学习和记忆——脑科学简介
- 重大第八版三年级上信息技术期末试题
- eviews软件对于我国城镇居民消费性支出和可支配收入的分析
- 2022年档案管理员资格考试题库及答案-精简版
- CA6140型车床电气控制线路的检修
- 碱炉安装浅谈
评论
0/150
提交评论