资源预览内容
第1页 / 共36页
第2页 / 共36页
第3页 / 共36页
第4页 / 共36页
第5页 / 共36页
第6页 / 共36页
第7页 / 共36页
第8页 / 共36页
第9页 / 共36页
第10页 / 共36页
亲,该文档总共36页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第二章 作业管理和用户接口,2.1 作业的基本概念 2.2 作业的建立 2.3 命令控制界面接口 2.4 系统调用 2.5 用户界面举例,在这一章中,讨论OS向上提供的用户接口,即系统命令接口和系统调用接口。,2.1 作业的基本概念,2.1.1 作业和作业处理过程 2.1.2 作业调度 2.1.3 作业控制语言,返回,2.1.1 作业和作业处理过程,1. 作业的概念 2. 作业的组成 3. 作业的处理过程 4. 作业控制表(JCB, Job Control Block),1. 作业的概念,一个作业是指在一次应用业务处理过程中,从输入开始到输出结束,用户要求计算机所做的有关该次业务处理的全部工作。 用户的观点:在一次业务处理过程中,从输入程序和数据到输出结果的全过程。 系统的观点(针对作业进行资源分配):作业由程序及数据(作业体)和作业说明书(作业控制语言) 作业由不同的顺序相连的作业步组成。 作业步是在一个作业的处理过程中,计算机所做的相对独立的工作。,2. 作业的组成,作业说明书包括作业基本情况、作业控制、作业资源要求的描述;它体现用户的控制意图。如:预计运行时间、要求的资源情况、执行优先级等。 作业基本情况:用户名、作业名、编程语言等; 作业控制描述:作业控制方式、作业步的操作顺序、作业执行出错处理; 作业资源要求描述:处理时间、优先级、内存空间、外设类型和数量等;,作业由程序、数据和作业说明书三部分组成。,3. 作业的处理过程,作业提交:作业的输入; 作业收容(就绪):作业输入完成,等待调度运行; 作业执行:分配资源,送入内存,被调度运行; 作业完成:释放资源,完成作业输出;,2.1.2 作业调度,1.作业调度算法的评价因素 作业吞吐量(单位时间内完成的作业数):运行尽可能多的作业; 充分利用资源:CPU、I/O设备; 对各作业公平、合理,使用户满意:执行时间长短、等待时间等;,检查系统是否满足作业的资源要求,并以一定算法选取作业运行。作业调度也称为宏观调度。,2. 作业调度算法,先来先服务(FCFS):按照作业进入系统的先后次序进行调度,先进入系统者先调度;即启动等待时间最长的作业。 优点:实现简单、公平 缺点:没考虑资源利用率和作业的特殊性(对短作业不公平) 短作业优先(SJF):以要求运行时间长短进行调度,即启动要求运行时间最短的作业。 优点:易于实现,强调了资源的充分利用,保证了系统的最大吞吐量(单位时间里处理作业的个数)。 缺点:对长作业不公平,可能会造成长作业长期等待。 结论:假设系统中所有作业同时到达,可以证明采用SJF能得到最短的作业平均周转时间。,实际的算法可能会是多种算法的综合。,高响应比优先(HRF):响应比最高的作业优先启动。 响应比=(等待时间+估计运行时间)/ 估计运行时间 该算法是FCFS和SJF的结合,克服了两种算法的缺点 优点: 公平,吞吐率大 缺点: 增加了计算,增加了开销 高优先级优先:由用户指定作业优先级,优先级高的作业先启动。 资源均衡型调度:把作业分类,作业调度从不同类型作业中去调度作业。根据作业对资源要求分类:I/O型、CPU型和均衡型,作业调度算法例题,设有四个作业J1、J2、J3、J4,它们到达时间和计算时间如下表:作业 到达时间/时 计算时间/时J1 8:00 2J2 8:30 1J3 9:00 0.25J4 9:30 0.5四个作业在一台机上按单道方式运行,采用响应比高优先调度算法,求各作业执行顺序、周转时间、平均周转时间。,解: 作业调度是宏观调度(高级调度); 四个作业在一台机器上按照单道方式只能采用批处理方式运行; 批处理作业的四种状态:提交,收容,执行,完成。,J1执行后,第一次计算j2,j3,j4的时间响应比,显然,j3响应比高,j3先运行。,J3执行后,第二次计算j2, j4的时间响应比,J2响应比高于j4,先执行,J4最后运行,作业的执行顺序为:j1,j3,j2,j4 作业的平均周转时间(2+2.75+1.25+2.25)/4=2.0625h,2.2 作业的建立,批处理系统中存在作业建立问题 作业建立: 作业的输入 作业控制块的建立,2.2.1 作业的输入方式,联机输入方式:外围设备直接同主机相连,一台可以和多台。 脱机输入方式:低档的外围机做I/O。 直接偶合方式:低档的外围机做I/O与主机中间加入大容量外存。SPOOLING系统:外围设备同时联机操作,中间包括外存、通道。,2.2.2 JCB的建立,在运行过程中,系统对作业进行管理来保存必要信息。JCB在作业收容状态建立,以后由作业调度程序管理,作业结束,JCB也撤销。,作业控制表(JCB, Job Control Block),作业名 估计执行时间 优先数(用于调度) 作业说明书文件名 程序类型(需调用的系统程序) 资源要求:(静态分配,或中间可以随作业步变化分配效率不高;动态分配 作业状态:提交、后备、执行、就绪、等待、完成;,2.3 接口,一、作业控制接口 系统为用户提供各种命令接口界面,用户根据这些操作命令来组织作业的执行。 另一个是系统调用,编程人员使用系统调用来请求操作系统提供服务。 使用操作命令进行作业控制的主要方式有两种:脱机方式和联机方式。,2.4 系统调用(SYSTEM CALL),2.4.1 系统调用及其功能 2.4.2 系统调用的实现过程 2.4.3 系统调用举例* 2.4.4 系统调用与普通过程调用的相同点和不同点*,返回,系统调用是操作系统提供给软件开发人员的唯一接口,开发人员可利用它使用系统功能。OS核心中都有一组实现系统功能的过程(子程序),系统调用就是对上述过程的调用。,2.4.1 系统调用及其功能,每个操作系统都提供几百种系统调用,包括:外存文件与目录的读写,各种I/O设备的使用,在程序中启动另一个程序,查询和统计系统资源使用情况等等。,1. 系统调用的功能,1) 设备管理: 设备的读写和控制;Ioctl 设备配置 Open 设备打开 Close 设备关闭 Read 读设备 Write 写设备,2) 文件管理:文件读写和文件控制; Open 文件打开 Close 文件关闭 Read 读文件 Write 写文件 seek 读写指针定位 Creat 文件创建 Stat 读文件状态 Mount 安装文件系统 chmod 修改文件属性,3) :创建、中止、暂停等控制; Fork 创建进程 Exit 进程自我终止 Wait 阻塞当前进程 Sleep 进程睡眠 Getpid 读父进程标识 4) 进程通信:消息队列、共享存储区、socket等通信渠道的建立、使用和删除; 5) 存储管理:内存的申请和释放; 6) 系统管理:设置和读取时间、读取用户和主机标识等; gtime 读取时间 Stime 设置时间 getuid 读取用户标识,2. UNIX用户界面Shell命令,Shell命令语言: 命令结构参数 Shell元字符 以前称为通配符 Shell变量 标准变量和自定义变量 Shell常用的命令,2.4.2 系统调用的实现过程,实际上系统调用语句本身是硬件提供的(机器指令),但其所调用的功能是操作系统提供的。每种机器的机器指令集中都有一条系统调用指令。,2.4.3 系统调用举例*,凡是与硬件相关、与应用无关的工作,都通过操作系统程序来完成。,1. 利用系统调用向打印机输出字符,方法1:调用DOS功能向打印机输出MOVE A,PARA1MOVE B,PARA2INT 21H,方法2:用OUT指令直接打印L1:MOVE A,IIN ADDR1,B OR B,BSJNC L1OUT ADDR2,ARET,2. 利用系统调用实现硬盘文件内容读写,MOVE DX,OFFSET BUFF MOVE CX,BYTE MOVE BX,HANDLE MOVE AH,3FH INT 21H,系统调用和输出指令功能的比较,I/O设备的硬件接口,一般由四种寄存器(地址,数据,状态,控制)或其子集组成,任一程序中若要使用I/O设备来输出数据或接受输入,必须通过对这四种寄存器读写的I/O机器指令进行。 使用系统调用的程序段则简单许多。程序员不再需要与接口寄存器打交道,只需一个简单的调用即可。,2.4.4 系统调用与普通过程 调用的相同点和不同点,相同点 改变指令流程 重复执行和公用 改变指令流程后需要返回原处 不同点 系统调用是动态调用,而CALL调用方式是静态调用; 执行状态不同 进入方式不同 与进程调度的关系不同: 嵌套或递归调用,系统调用是动态调用,而CALL 调用方式是静态调用;,系统调用是动态调用,程序中不包含被调用代码,好处: (1)用户程序长度缩短 (2)当OS升级时,调用方不必改变 CALL调用方式是静态调用,被调用代码与调用代码在同一程序之内。CALL调用方式,其调用地址是固定的,包含在调用语句中;返回地址是不固定的(同一子程序可能被不同处多次调用),在程序执行过程中通过栈的实现来保存和弹出返回地址。,2. 执行状态不同,状态切换:系统调用、中断、异常 trap陷入 特权指令(访问关键寄存器、停机指令)和I/O敏感指令(中断屏蔽、端口读写),调用和返回经历了不同的系统状态。通常核心和应用程序的代码分别运行在CPU的不同的状态下(系统态/核心态/管态和用户态/目态),所用地址空间也不同核心的代码可以直接访问应用进程的地址空间,反之不然。,3. 进入方式不同,CALL指令的内部实现过程: 返回地址压栈(即该CALL指令所在的地址); 将该CALL指令中所含的地址(即被调用代码所在地址)送入PC RET指令的内部实现过程: 从栈顶弹出返回地址送入程序计数器PC,利用int或trap指令进行系统调用;利用call或jmp指令进入普通的过程调用;,4. 与进程调度的关系不同,采用抢先式调度的系统,在系统调用返回时,要进行重新调度的检查是否有更高优先级的任务就绪(创建或唤醒)。,5. 嵌套或递归调用,对系统调用,一般不允许在同一个进程中发生嵌套或递归(不同进程可以重入同一个系统调用)。,
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号