1、第二章 作业管理,从宏观上研究一个程序从录入到运行,最后获得运行结果的全过程 用户接口 作业的概念 作业的建立 作业的状态和调度 作业管理在OS中的地位,1、用户接口,操作系统作为用户提供两种接口,其中一类是为一般用户提供的操作命令接口,另一类为提供给编程人员的系统调用(system call)接口 命令调用 系统调用 用户接口的发展,命令调用方式,命令形式 内部命令 系统启动时与操作系统一起装入内存OS的一部分 例 DOS:Type,Dir,copy, Windows:资源管理器中的菜单、按钮, 外部命令 以文件形式存放,调用时装入内存 例 DOS:Edit, Windows:桌面上的图标,
2、快捷方式(图标),,使用命令的方式 联机方式:单个命令,以交互方式通过OS与计算机系统进行会话 优点:用户直接参与控制,灵活 不足:重复输入命令,繁琐且效率低 脱机方式:批命令,使用批处理命令或由命令编写的批处理文件 优点:系统按批处理要求自动执行,用户不干预,效率高 不足:不便于及时调整要执行的命令集合,灵活性差 直接耦合方式:保留脱机的速度优势,通过公共存储器耦合主机和外围,不用人工干预 SPOOLING方式:通过DMA或通道技术连接外设和主机的外存(输入输出井,磁盘上开辟的缓存区),由OS控制,读写过程独立,网络输入方式 当用户需要从计算机网络中将 一台计算机的信息要求传送到联网的另一台
3、主机上进行浏览(Browser)操作或执行下载(Download)等任务要求时,就构成网络输入方式。主要涉及网络通信技术。,直接耦合系统,SPOOLING方式,命令分类 环境设置 执行权限管理 系统管理 文件管理 执行管理 通信 资源要求,系统调用,系统调用的含义 系统调用是操作系统为编程人员提供的接口,各种操作系统的核心中都设计有一组一组的用于实现各种系统功能的子程序作为机器指令的扩充。系统将这些子程序“开放”给用户,方便用户可靠地调用系统有关的资源,而用户不必从头熟悉或重新编写子程序。每当用户在程序中需要操作系统提供某种服务是,便可利用一条条相应的系统调用命令,去调用所需的系统过程。 例
4、DOS:库函数, Windows:API,,系统调用的分类 设备管理 文件管理 进程管理 进程通信 存储管理 调用中的几个概念 陷入(访管)指令把由于系统调用引起的处理机中断的指令称为陷入(访管)指令。 广义指令(或称管理程序调用)利用陷入指令来实现特殊过程调用的指令称为广义指令。是通过执行相应的程序模块来实现的,它是机器指令的扩充。采用访管方式来实现。通过产生一个访管中断,使处理机由目态(用户态)转为管态(系统态)。(当中央处理器处于目态时不允许执行特殊指令;而处于管态时可这些包括特殊指令在内的一切机器指令) 用户态(目态)处理机在用户程序中执行 系统态(管态)处理机在系统程序中执行,系统调
5、用原则 为了保障操作系统的安全性,使得操作系统的程序不被用户程序破坏,一般操作系统都不允许用户程序访问操作系统的系统程序及数据。在机器的指令系统中有一条称为陷入(访管)指令,编程人员可以利用这条指令来向操作系统提出对系统程序及数据访问要求。 用户程序与陷入(访管)指令访问系统程序及数据的区别 调用中若发生错误,用户程序的错误不影响系统,系统程序的错误可能引起系统崩溃 系统数据用于管理系统状态与系统资源,用户程序调用中若被修改可能引起系统管理的混乱 用户程序调用时现场的保护用户区内系统资源的变化不能修改其中的数据。系统调用时现场保护在OS的内存区内或特定的寄存器中系统资源的变化不能修改其中的数据
6、。 用户程序调用时控制权属于用户,OS调用时控制权属于OS。,系统调用的处理过程,为执行系统调用命令作准备。其主要工作是把用户程序的“现场”保留起来,并把系统调用命令的编号等参数放入约定的存储单元。访管指令有“参数区”、“参数”和“操作数”组成。“操作数”用来表示请求操作系统所要干的工作,并说明是否要有参数区和具体参数。 根据系统调用的编号,访问系统调用入口表,找到相应子程序的入口地址,然后转去执行。 系统调用命令执行完后的处理。这包括恢复“现场”,并把系统调用的返回参数或参数区首址放入指定的通用寄存器中,以供用户程序使用。,用户程序 陷入处理机构 系统子程序,必须为实现系统调用功能的子程序编
7、造入口地址表 每个入口地址与相应的系统程序名对应 陷入处理程序把陷入指令包含功能号与入口地址表有关项对应, 系统调用功能号驱动有关子程序执行 在系统调用处理结束之后,用户程序需利用系统调用返回结果继续执行 保护现场: 在进入系统调用处理之前,陷入处理机构还需保存处理机现场 在系统调用处理结束之后,要恢复处理机现场,现场被保护在特定的内存区或寄存器中,系统调用的原则,用户接口(界面)的发展,用户界面的发展 第一代用户界面为一维界面,主要有命令行界面和编程人员在程序中的系统调用,如DOS及UNIX 均采用此种界面方式。 第二代用户界面为二维界面又称为图形界面,以窗口(windows),图标(ico
8、n)、菜单(menu)为典型特征,由APPLE 公司开创,以Microsoft 公司的MS-Windows为里程碑,在UNIX系统下有X-window。 第三代用户界面为三维界面,又称为虚拟现实(virtual reality),如三维动画设计、可视电话及网络视频会议等。 界面管理的任务 作为面向最终用户的“作业”管理来看,用户界面已经成为计算机系统的一个重要组成部分,是计算机科学与心理学、图形艺术和人类学的交叉研究领域。寻求最佳的人机通信方式已是多媒体、虚 现实和科学计算、可视化等技术所追求的目标,也是界面管理的、最终任务。,界面管理的功能 实现高效的人机通信 将人的听、说、手和眼等协同动作
9、,采用多通道、以自然的方式交互,可以实现高效的人机通信 改善计算机的可用性、可学性和有效性 要求计算机能理解人的要求,甚至能纠正人的错误,智能化的界面是一个重要方向 支持三维及多媒体技术 需要有语音、图像和动画等多媒体支持 为广大用户提供适应不同应用的众多界面构造工具及语言 现有的GUI的开发工具有Visual Basic、Visual C+、Visual FoxPro、X-window等,用户界面研究 WIMP 界面 WIMP界面是指窗口(windows)、图符(icons)、菜单(menu)、指点装置(pointing devices),目前个人计算机流行的用户界面 WYSIWYG技术 W
10、YSIWYGwhat you see is what you get 即为“所见即所得” 多通道 多同道multi-modal user interface,MMI 人机询问技术 人机询问技术man-machine interrogation technique,MMIT,人机交互技术的新发展,使机器能象人一样地进行“交谈” Post-WIMP时代(后WIMP时代) 同时操作多个外设,例如多个传感器、多个通道、多个人同时使用以至能识别人的双手及人的形体语言的多模式识别,X-window X-window 是1986年由美国MIT的雅典娜工程开发小组为了提供一个独立于硬件的用户图形界面而开发成功
11、的,广为流行的是1988年3月发行的X11.2版本。尤其与UNIX操作系统结合,可运行于IBM-PC到各种大中型机以及巨型机上,它又可运行在X终端上。同时它也给程序员提供了工具箱(toolkit)和事件驱动型编程模型。 虚拟现实 虚拟现实(virtual reality,VR)是用计算机技术来生成一个逼真的三维视觉、听觉、触觉、嗅觉等感觉世界,让用户可以从自己的视点出发,利用自然的技能和某些设备对这一生成的虚拟世界进行浏览和交互考察。实际应用的虚拟现实系统大体可分为: 桌面虚拟现实系统 沉浸虚拟现实系统 分布式虚拟现实系统 增强现实,Vista的三维可视化界面,沉浸系统(摘自电影少数派报告),
12、沉浸虚拟现实系统的原型,脑电波感知系统的原型,用户界面的设计特点 计算机不断适应人的需求,以方便用户为目标。 用户界面设计是计算机科学与心理学、图形艺术和人类学的结合。 多窗口系统一般都采用事件驱动(event drive)的控制方式,2、作业的概念,作业(job) 用户角度 我们把一次应用业务处理过程中,从输入开始到输出结束,用户要求计算机所做的有关该次业务处理的全部工作称为一个作业。,编译是将源文件处理成目标文件的过程,目标文件并不是可执行的代码,它包含有许多位置代码,如某些函数在可执行文件的实际位置;链接则是将许多目标文件合并处理成可执行文,编辑(输入,修改)源程序,编译,连接,运行,成
13、功,编辑(输入,修改)另一源程序,是,否,典型的作业步,一个作业,另一个作业,系统角度 从计算机系统的角度看,作业是一个比程序更广的概念,它由程序、数据和作业说明书三部分组成。 系统通过作业说明书控制文件形式的程序和数据,使之操作和执行。在批处理系统中,作业是抢占内存的基本单位。也就是说,批处理系统是以作业为单位把程序和数据调入内存以便执行的。,作业步(job steps) 用户把要求计算机系统做的一项相对独立的工作叫做一个作业步。例如前图中,编译、链接、执行就是作业步。 作业由不同的顺序相连的作业步组成,一般来说,每一个作业产生下一个作业步的输入文件。 作业同步(job synchroniz
14、ation) 所谓作业同步是指在一个作业中,下一个作业步能否执行下去,取决于前一个作业步是否成功完成(数据依赖)。 作业流(job stream) 在系统控制下,将一批作业输入到后援存储器中等待运行,这样就形成了一个作业流。,作业类型(job type) 用户作业分为两大类 批量型作业可分为两种,利用作业说明书实行自动控制方式的作业称为脱机作业;利用控制台键盘操作命令直接控制的作业称为联机作业。 终端型作业又称为交互型或会话型作业,通常在分时操作系统环境下运行,用户在终端上利用键盘命令控制和监督作业的运行,而系统把作业运行的情况和结果也及时反馈在用户终端上。在大型的操作系统中,常把终端用户作业
15、称为“前台”作业,把批量型作业称为“后台”作业。,作业说明书 作业说明书主要包括三方面的内容,即作业的基本描述、作业控制描述和资源要求,它由系统提供的控制命令及相关参数并按规定的语法书写 作业基本情况描述 用户名 作业名 使用语言名 允许最大处理时间 等等 作业控制描述 控制方式 操作顺序 出错处理 等等 作业资源要求描述 要求处理时间 内存空间 外存类型和数量 处理机优先级 库函数或实用程序 等等,作业管理的任务 方便用户建立作业 组织调用系统内部资源 在完成作业后归还资源 作业管理的功能 分门别类地组织控制作业的运行,解决作业的输入输出问题 了解和申请机器资源 系统工作状态的记录、跟踪、监
16、控及调试 提供用户或程序员在程序工作模式下的服务功能,3、作业的建立,作业的建立过程 一个作业的建立过程一般是作业的输入和系统建立起作业控制块(JCBjob control block)两个子过程。,作业输入方式 联机输入方式 联机输入方式大多用于交互式系统中,用户和系统通过交互会话方式输入作业。近年来由于多媒体技术(Multi-Media)的发展,逐步形成了手写输入、语音输入、光电输入等输入方式。 脱机输入方式 脱机输入方式又称为预处理方式,脱机输入方式利用低档个人计算机进行输入处理。在低档个人机上,用户通过联机方式把作业首先输入到后援存储器,如磁盘或磁带上;然后,用户把装有输入数据的后援存
17、储器拿到主机的高速外围设备上和主机相连,从而在较短的时间内完成作业的输入。 脱机输入方式的优点是解决了作业的快进快出,相应提高了CPU的利用率。但其缺点也是明显的,主要有: 需要人工干预,出错率受人的因素影响 增加了作业周转时间 不易实现优先级调度算法,直接藕合方式 它用一个大容量的共用存储器,把多台用作输入的低档机、共用存储器和主机固定连接起来,保留了脱机输入方式的优点,又克服了该方式需人工干预的缺点。,假脱机输入方式 假脱机技术(SPOOLing或SPOOLer) SPOOLing技术实际上是一种外围设备同时联机操作技术(simultaneous peripheral operation
18、on-line)的缩写。又称为排队转儲技术。 工作原理 SPOOLing系统既不同于脱机方式,也不同于直接藕合方式。它在输入和输出之间增加了“输入井”和“输出井”(外存上开辟的空间)的排队转儲环节,以消除用户的“联机”等待时间。在系统输入模块收到作业输入请求信号后,输入管理模块中的读过程负责将信息从输入装置中读入输入井缓冲区。当缓冲区满时,由写过程将信息从缓冲区写到外存的输入井中,读过程和写过程反复循环,直到一个作业输入完毕。当读过程读到一个硬件结束标志之后,系统再次驱动写过程把最后一批信息写入外存输入井并调用中断处理程序结束该次输入。然后,系统为该作业建立作业控制块,从而使输入井中的作业进入
19、作业等待队列,等待作业调度程序选中后进入内存运行。系统在管理输入井过程中可以“不断”读入输入的作业,直到输入结束或输入井满而暂停。,网络输入方式 当用户需要从计算机网络中将 一台计算机的信息要求传送到联网的另一台主机上进行浏览(Browser)操作或执行下载(Download)等任务要求时,就构成网络输入方式。主要涉及网络通信技术。,4、作业的管理和调度,作业的状态和处理流程 作业从录入到输出在计算机中经历不同的阶段,相应地处于不同的状态。状态的变化反映了作业的处理流程,收容阶段:作业录入并被注册 后备状态:当作业注册程序为作业建立作业控制块(JCB) 执行状态:后备作业经作业调度被装入内存,
20、获得资源,占有CPU 完成状态:作业的所有处理都结束 作业撤消:系统回收资源,撤消JCB,作业控制块 作业控制块(JCB,Job Control Block)是系统感知作业存在的标志。类比身份证(生老病死),作业控制块(JCB:Job Control Block)是批处理作业存在的标志其中保存有统对于作业进行管理所需要的全部信息,它们被保存于磁盘区域中。 当作业开始由输入设备向磁盘的输入井传输时,系统输入程序为其建立一个作业控制块,进行初始化,初始化的大部分信息取自作业说明书 需要访问作业控制块的程序:系统输入程序;作业调度程序(中优先级的定义);作业控制程序(时间和资源定义);系统输出程序(
21、文件指针)等 作业控制块的撤消:作业完成后,其作业控制块由系统输出程序撤消,作业控制块被撤消后其作业也不复存在,作业控制块的结构,作业在作业管理中是系统分配资源的基本单位,作业调度功能 采用作业控制块(JCB)表格,记录系统中各作业工作状况; 根据选定的调度算法,从后备作业中选出一部分(多道情况)或一个作业投入运行; 为被选中的作业做好运行前的准备,包括选择系统相应的“进程”执行单元以及为这些“进程”分配系统资源,首先判断用户的资源要求是否能够满足; 作业处理后的善后处理工作,例如,回收资源和记帐等工作,作业调度程序,调度算法设计的目标 系统尽量大的吞吐量(throughput,单位时间内作业
22、完成量) CPU保持忙 I/O保持忙 对所有类型的作业尽量公平设计调度算法要考虑的主要因素(全局VS.局部) 算法应符合系统的总目标 资源使用均衡,系统效率尽量高 保证进入系统的作业在规定的时间内完成,常用的作业调度算法 先来先服务(first come first serve,FCFS) 作业执行次序与作业进入输入井次序相同。 优点 实现简单 对相同的或均衡的作业较为合理 缺点 不利于运行时间短的作业(处在队列前端长作业)。 最短作业优先法(shortest job fist,SJF) 最短作业优先法也就是选ti值小(JCB中的定义)的优先,也就是只考虑运行时间。 优点 短作业得到了优先执行
23、,提高了系统的效率。 缺点 当作业不断进入时,长的作业有可能长时间等待,最高响应比优先法(highest response-ratio next, HRN)最高响应比优先法(HRN)是对FCFS方式和SJF 方式的一种综合平衡。HRN 调度策略调度同时考虑每个作业的等待时间长短(队列长度和前面作业的执行时间)和估计需要的执行时间长短,从中选出响应比最高的作业投入执行。 响应比或称响应系数比R定义下: R=(W+T)/T=1+W/T 其中T为该作业估计需要的执行时间,W为作业在后备状态队列中的等待时间。(W作为分子,可以限制等待时间的长度;T作为分母,可以将短作业提前) 优点 同时具有FCFS算
24、法及SJF 算法的优点 缺点 实现复杂,每次调度前要对所有作业扫描一遍,比较以后再调度,定时轮转法 按时间片轮转,可分为短时间的固定时间片(如,UNIX 操作系统时间片为几毫秒至几十毫秒)和长时间的不固定时间片(如:Windows操作系统的抢占式多任务方式)。 优先数法 按优先数排队次序工作。分静态和动态:静态是在排队前计算优先数,动态是在调度时计算优先数。又可分为用户给定优先数(反映用户要求)和系统给定的优先数,例如,系统给定前台和后台工作的优先级,一般前台优先(响应用户请求要求时间短)。 事件驱动法 MS-Windows 采用的任务驱动方式(相对于队列驱动),采用不固定的时间片分配来完成多
25、任务。每当发生一些事件(event)就进入相应的事件调度程序。系统通过事件驱动程序执行任务。,优先级的定义方法 一个操作系统的作业调度往往是综合性的,作业调度的原则主要要考虑的因素有CPU的运行时间、对内存的要求、对外设的要求,对I/O吞吐量的要求及等待时间等等。例如如下优先级定义方法:其优先数(P)、等待时间(tw)、要求运行时间(tr)以及输出量(E)的调度算法如下(等待越长,执行时间越短,输出量越小,则优先级别越高)P=(tw-tr-16E)2,算法评价 作业i的周转时间Ti=作业完成时间-作业提交时间 最短周转时间=minTi 最长周转时间=maxTi 平均周转时间平均带权周转时间(w
26、i0是权值,权值总和1)最后结束时间=max作业完成时间,问题: 作业调度的次序 最大的作业周转时间 最小的作业周转时间 作业平均周转时间 作业全部执行结束的时间,作业调度算法应用例子1,假设在单道批处理环境下有四个作业,已知它们进入系统的时间、估计运行时间,应用先来先服务、最短作业优先和最高响应比优先作业调度算法,分别计算出作业的平均周转时间和带权的平均周转时间。权重分别为(0.1,0.5,0.2,0.2),先来先服务调度算法计算结果,JOB2占用太长时间,短作业滞后的缺点一览无余,最短作业优先作业算法计算结果,注意10:30时JOB3因为更短而优先执行,JOB2因为太长放到了最后,长作业滞
27、后的缺点一览无余,最高响应比优先作业算法计算结果,注意10:00时JOB3因为更高的响应比而优先执行,JOB2因为考虑了等待时间,不会被放在JOOB4之后,10:00时,JOB2、JOB3、JOB4都已经到达,当时其等待时间分别为70、60、10分钟,响应比分别为1+70/30、1+60/10、1+10/20,JOB3此时的响应比最高,因此10点时JOB3被选中。,10:10时,JOB2、JOB4都已经到达,当时其等待时间分别为80、20分钟,响应比分别为1+80/30、1+20/20,JOB2此时的响应比最高,因此10:10时JOB2被选中。每次有作业完成,都需要重新计算响应比并排序。,在两
28、道环境下有四个作业,已知它们进入系统的时间、估计运行时间,系统采用短作业优先作业调度算法,作业被调度运行后不再退出,当一新作业投入运行后,可按照作业运行时间长短调整作业执行的次序。请给出这四个作业的执行时间序列,并计算出平均周转时间及带权平均周转时间,作业调度算法应用例子2,两道批处理系统中 最短作业优先作业算法计算结果,多道程序对平均周转时间的影响,作业流在多道环境下运行 平均周转时间、带权平均周转时间,比单道环境下都有明显改善 不是任意作业组合都能改善调度性能有时甚至可能变坏,四个作业的执行时间序列为:JOB1:10:0010:05,10:4011:05 JOB2:10:0510:25 J
29、OB3:10:2510:30 JOB4:10:3010:40,10:00,JOB1进入,只有一作业,JOB1被调入执行 10:05,JOB2到达,最多允许两作业同时进入,所以JOB2也被调入 内存中有两作业,哪一个执行?题目规定当一新作业运行后,可按作业运行时间长短调整执行次序,即基于优先数可抢占式调度策略,优先数是根据作业估计运行时间大小来决定的,由于JOB2运行时间(20分)比JOB1少(到10:05,JOB1还需25分钟)所以JOB2运行,而JOB1等待,两道批处理系统中 最短作业优先作业算法分析过程,10:10,JOB3到达输入井,内存已有两作业, JOB3不能马上进入内存; 10:2
30、0,JOB4也不能进入内存 10:25,JOB2运行结束,退出,内存中剩下JOB1输入井中有两作业JOB3和JOB4,如何调度? 作业调度算法:最短作业优先,此JOB3进入内存比较JOB1和JOB3运行时间,JOB3运行时间短,故JOB3运行同样,JOB3退出后,下一个是JOB4,JOB4结束后,JOB1才能继续运行,JOB1因为太长被延迟,长作业滞后的缺点一览无余,单道批处理系统中 先到先服务算法分析过程(考虑资源占用和输入输出),例 假设某多道程序设计系统有供用户使用的主存空间100K,磁带机2台,打印机1台。系统采用可变分区方式管理主存(新作业只能被分配在高地址),对磁带机和打印机采用静
31、态分配。现有一作业序列如下:,作业执行分析,因新作业只能在高地址,9:30时不能执行JOB2,作业调度的次序:1,3,4,2,5 周转时间计算最大的作业周转时间=55分钟 最小的作业周转时间=30分钟 作业平均周转时间=43分钟 作业全部执行结束的时间=9:30,上述三种算法的量化比较,作业平均周转时间(各个作业同等重要性) 作业平均加权周转时间(对特定作业加以重视),5、作业管理在OS中的地位,作业管理是OS中对业务处理的宏观管理 批处理OS中,作业管理是其主要任务之一。OS通过作业说明书来调度和管理作业。 分时系统中,由于人机交互,作业管理的功能减弱,各作业步常由交互方式由人工控制和完成。 通用OS中,有作业管理模块。用户可以选择人机交互方式或作业管理方式(事件驱动)。,重点小结,熟悉人机界面的发展特点。 利用种操作系统(DOS、Windows、UNIX或Linux),来体会操作系统的功能。 掌握系统调用的原理及基本的系统调用的使用。 通过上机练习掌握作业调度算法的模拟编程。 掌握调度算法的基本评价方法和评价参数计算,