- 1、本文档共35页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第2章 作业管理 作业:用户交给计算机所做的工作的集合。 作业步:作业中的一个相对独立的步骤。如编程作业中的编辑、编译、连接、运行等几个作业步。 交互式作业(联机作业):用户独占终端实施交互式控制,特别适合于对程序的动态调试和修改。 批处理作业(脱机作业):作业由程序、数据、作业说明书三部分组成。程序是问题求解的算法描述;数据是程序加工的对象,但有些程序未必使用数据;作业说明书是告诉操作系统本作业的程序和数据按什么样的控制要求使之执行。 主要方式: 脱机输入方式 直接耦合方式 SPOOLING输入方式 作业控制块(JCB)中包含了该作业的基本描述信息和控制信息,它是作业存在与否的惟一标志,体现了一个作业的生命周期。JCB中通常包含的内容有: 描述信息。包括作业名、作业状态、作业的优先级和作业类型等。 资源要求。包括要求运行的时间、最迟结束时间、需要的主存空间、外设的种类和数量。 使用信息。包括作业进入系统的时间、开始运行时间、已经运行时间和内存地址等。 ◆提交状态。 ◆收容状态(后备状态)。建立JCB,形成作业后备队列 ◆执行状态。建立主进程,系统从作业管理转变为进程管理 从微观来看,作业的执行状态可能是就绪、执行或等待(阻塞)三种状态中的一种。 ◆完成状态。正常运行完成或因故障终止时 1、 作业调度的概念 后备状态-执行状态 2、作业调度的性能指标 (1)CPU利用率: (2)吞吐率: (3)平均周转时间和平均带权周转时间 周转时间=完成时间-提交时间 =等待时间+运行时间 3、作业调度算法 (1)先来先服务 (2)短作业优先 (3)响应比高优先 (4)优先级高优先 功能:向用户提供使用计算机的接口 类型:命令接口和程序接口 1、联机命令接口 由键盘命令和屏幕命令组成。 键盘命令是由联机用户在交互式终端上通过键盘键入的命令,体现人机之间的交互性。 屏幕命令也就是图形化命令。它由窗口、图标、菜单、对话框等图形化元素构成。 2、脱机命令接口 作业控制卡方式 作业说明书方式 作业说明书示例(批处理文件) @echo off Cd \os Mkdir dos Copy a.txt dos\b.txt Type dos\b.txt echo ok! pause 【演示】 程序接口是向编程人员提供的,由一系列系统调用(System Call)指令组成。 1、系统调用的概念 系统调用是指在用户程序中,调用了操作系统中能完成某些特定功能的例行程序,即用户程序对OS的调用。例如打印、读写磁盘等工作; 系统调用实例(汇编程序员观点) 程序段1:利用系统调用打印(用INT指令调用DOS的功能来完成) MOV AH,05H MOV DL,Char INT 21H … Char DB 1 当INT返回时,打印已经完成 程序段2:不用系统调用,而用IN/OUT指令直接读写打印机的接口寄存器 MOVE I,0 L1:MOVE I,I+1 CMP I,5 JNC L3 打完五个字符 MOVE A,I L2:IN ADDR1,B 状态寄存器 OR B,BS 状态位选择码 JNC L2 未准备好 OUT ADDR2,A 打印,数据寄存器 JMP L1 L3:RET 为什么我很少接触系统调用? 通常仅汇编程序员才会接触到系统调用,而高级语言程序员通常接触不到系统调用,只接触库函数。 通过库函数来实现对操作系统的“间接”调用。 高级语言中对操作系统的“间接”调用 2、系统调用指令的实现及其特点 (1)机器、OS与系统调用指令间的关系 (2)系统调用指令的实现机制(借助中断机制) 系统调用指令由机器(CPU)提供,而其调用的功能由OS提供; 不同的系统调用使用同一条系统调用指令,但指令参数(功能号或寄存器)不同; 2、系统调用的分类 文件管理类。如创建文件、打开文件、读写文件、关闭文件等; 进程管理类。如进程创建、撤消、唤醒以及进程间通信等; 系统管理类。如取日历时间、取或设置终端信息等; 设备管理类。 执行状态不同 前者调用方在用户态,被调用方在核心态,后者调用方与被调用方同属一个状态,核心态或用户态。 执行方式与过程不同 前者需使用软中断指令(int)或陷入指令(trap);后者使用普通的跳转指令(call、jmp等) 提供的
文档评论(0)