1、第二章第二章作业管理作业管理2.1 什么叫作业什么叫作业 用户交给计算机做的工作称为作业用户交给计算机做的工作称为作业 作业由程序、数据、作业说明书作业由程序、数据、作业说明书3 3部分组成部分组成 批处理作业和交互式作业批处理作业和交互式作业 脱机是批处理作业的主要特征脱机是批处理作业的主要特征 交互式作业以联机为主要特征交互式作业以联机为主要特征 第二章第二章作业管理作业管理2.2 操作系统提供的用户界面操作系统提供的用户界面 界面有时又称为接口界面有时又称为接口 操作系统提供程序界面、联机用户界面、脱机用户界面操作系统提供程序界面、联机用户界面、脱机用户界面 2.2.1 程序界面程序界面
2、 它由一组系统调用命令它由一组系统调用命令(简称系统调用或广义指令或访简称系统调用或广义指令或访 管指令管指令)组成。每条系统调用命令都对应一个由操作系统组成。每条系统调用命令都对应一个由操作系统设计者事先编制好的、能完成某些特定功能的例行程序设计者事先编制好的、能完成某些特定功能的例行程序系统调用在程序一级上为用户提供支持,所以称为程系统调用在程序一级上为用户提供支持,所以称为程序界面序界面 2.2.2 UNIX系统调用执行过程系统调用执行过程 第二章第二章作业管理作业管理执行系统调用例行程序模块时涉及到处理机运行执行系统调用例行程序模块时涉及到处理机运行状态的改变:从用户态转到核心态,执行
3、完例行程状态的改变:从用户态转到核心态,执行完例行程序后再返回用户态。序后再返回用户态。UNIX的系统调用命令是通过中的系统调用命令是通过中断机构断机构“陷入陷入”(trap)操作系统核心。操作系统核心。(图图2-1 图图2-2)数据段数据段Trap 参数参数 1参数参数 2程序正文段程序正文段Trap 参数参数 1参数参数 2返回处返回处程序正文段程序正文段Trap 00指针指针返回处返回处(a)直接自带参数直接自带参数(b)间接自带参数间接自带参数图图2-1 自带参数的两种形式自带参数的两种形式图图2-2编号编号 0123463自带参数个数自带参数个数例行程序入口地址例行程序入口地址0&n
4、ullsys0&renit&fork2&write2&read0&nosys&read 第二章第二章作业管理作业管理由键盘命令和屏幕命令组成。键盘命令是由联机用户在由键盘命令和屏幕命令组成。键盘命令是由联机用户在 交互式终端上通过键盘键入的命令交互式终端上通过键盘键入的命令 屏幕命令的输入主要是靠鼠标器的点击,拖曳,移动屏幕命令的输入主要是靠鼠标器的点击,拖曳,移动 2.2.3 联机用户界面联机用户界面 2.2.4 键盘命令执行过程键盘命令执行过程“启动启动”终端处理程序中的命令解释程序终端处理程序中的命令解释程序 终端处理进程转回键盘监督程序,等待后续命令终端处理进程转回键盘监督程序,等待后
5、续命令 的键入,如此循环直到终端被注销的键入,如此循环直到终端被注销 第二章第二章作业管理作业管理首先键入一个完整的命令首先键入一个完整的命令 第二章第二章作业管理作业管理2.2.5 屏幕命令执行过程屏幕命令执行过程 图图2-3 Windows 95下多个消息队列的分派下多个消息队列的分派打 印 机硬 盘键 盘鼠 标(屏 幕)原 始 消 息 队 列调 制 解 调 器消 息32 位 应 用 程 序线 程 消 息 队 列32 位 应 用 程 序 基本 线 程 消 息 队 列16 位 应 用 程序 消 息 队 列/Start of fragment/Acquire and dispatch mess
6、ages until a WM_QUIT message is received.while(GetMessage(&msg,/Message structure NULL/Handle of window receiving the message 0,/Lowest message to examine 0)/Highest message to examine if(!TanslateAccelerator(msg.hwnd,hAccelTable,&msg)TranslateMessage(&msg);/Translates virtual key codes DispatchMess
7、age(&msg);/Dispatches message to window /end of fragment/Start of fragment switch (message)case WM_COMMAND:/Message:command from application menu#if defined(_WIN32)wmId =LOWORD(uParam);wmEvent=HIWORD(uParam);#else wmId =uParam;wmEvent=HIWORD(lParam);#endif switch(wmId)case IDM_ABOUT:lpProcAbout=Make
8、ProcInstance(FARPROC)About,hInst);DialogBox(hInst,/Current instance AboutBox,/Dlg resource to use hWnd,/Parent handle (DLGPROC)lpProcAbout):/About()instance address FreeProcInstance(lpProcAbout);break;case IDM_EXIT:DestroyWindow(hWnd);break;default:return(DefWindowProc(hWnd,message,uParam,lParam);br
9、eak;case WM_DESTROY:/Message:window being destroyed PostQuitMessage(0);break;default:/Passes it on if unprocessed return(DefWindowProc(hWnd,message,uParam,lParam);return(0);/end of fragment 2.2.6 脱机用户界面脱机用户界面 它由一组作业控制命令组成。这组作业控制命令它由一组作业控制命令组成。这组作业控制命令 带有浓厚的编程语言特征,所以又被称为作业控带有浓厚的编程语言特征,所以又被称为作业控 制语言制语
10、言 用用C-ShellC-Shell语言编写的作业说明书语言编写的作业说明书(图图2-42-4)第二章第二章作业管理作业管理86%nroff -mm glossary glossary.out&1 26025 87%date&2 26026 Sat May 4 22:07:03 NDT 1997 2 Done date 88%find /-name ace -print findout&2 26041 89%jobs 1 -running nroff -mm glossary glossary.out 2 +running find /-name ace -print findout 图图2-
11、4 用用C-Shell编写的作业说明书:编写的作业说明书:2.2.7 用户界面现状与发展用户界面现状与发展 屏幕的功能将更丰富屏幕的功能将更丰富 屏幕命令的接受部件将更加智能化屏幕命令的接受部件将更加智能化 第二章第二章作业管理作业管理第二章第二章作业管理作业管理2.3 交互式作业管理交互式作业管理 交互式作业有一个输入交互式作业有一个输入(编辑编辑)、编译、运行、编译、运行、调试、再编译、再运行的反复过程调试、再编译、再运行的反复过程 2.4 批处理作业管理批处理作业管理 图图2-5 批处理作业的状态变换批处理作业的状态变换SPOOL ing输 入SPOOL ing输 出作 业 登 录后 备
12、 状 态运 行 状 态完 成 状 态作 业 调 度作 业 撤 离作 业 控 制第二章第二章作业管理作业管理2.4.1 SPOOLing输入与输出输入与输出 SPOOLing(Simultaneous Peripheral Operations On Line)的含义是外围设备同时联机操作的含义是外围设备同时联机操作 带有带有SPOOLing的系统示意图(的系统示意图(图图2-6)第二章第二章作业管理作业管理 硬 盘 输 入 井 输 出 井 输 入 设 备 输 入 设 备 输 出 设 备 输 出 设 备 通道 通 道 主 机 系 统 S P O O L ing 输 入 程 序 S P O O L
13、 ing 输 出 程 序 作 业 登 录 作 业 调 度 作 业 撤 离 作 业 控 制 2.4.2 作业登录作业登录 作业登录程序负责为作业建立作业登录程序负责为作业建立JCB 作业名、作业类别作业名、作业类别(多多CPU或多或多I/O)、作业估计运行时间、作业估计运行时间 作业优先级、作业说明书内部名、程序语言类型作业优先级、作业说明书内部名、程序语言类型 主存需求量、外存需求量、作业状态主存需求量、外存需求量、作业状态 第二章第二章作业管理作业管理作业外存地址作业外存地址(输入井,输出井输入井,输出井)、作业登录时间、作业登录时间2.4.2 作业登录作业登录 第二章第二章作业管理作业管理
14、撤离时间等用于管理该作业的全部信息撤离时间等用于管理该作业的全部信息 JCB是作业在系统内存在与否的唯一标记是作业在系统内存在与否的唯一标记所有作业的所有作业的JCB被链接在一起,习惯上称为作业队列被链接在一起,习惯上称为作业队列2.4.3 作业撤离作业撤离 从作业队列上取下该作业的从作业队列上取下该作业的JCB,释放,释放JCB中中 指明的各种资源指明的各种资源第二章第二章作业管理作业管理释放释放JCB本身所占的主存区域本身所占的主存区域启动作业调度程序新选下一道作业启动作业调度程序新选下一道作业本程序休止本程序休止 2.4.4 作业调度作业调度 通常对调度算法的性能有如下评估公式:通常对调
15、度算法的性能有如下评估公式:(1)CPU利用率利用率UpCPU有效工作时间有效工作时间CPU总的总的 运行时间运行时间(2)吞吐量完成的作业道数完成的时间吞吐量完成的作业道数完成的时间(小时小时)(3)作业平均周转时间作业平均周转时间T和带权平均周转时间和带权平均周转时间W 第二章第二章作业管理作业管理T=n1 _i=1nTi,其中,其中Ti=作业作业i的完成时刻的完成时刻-作业提交时刻作业提交时刻n为进入运行状态的作业道数为进入运行状态的作业道数W=n1 _i=1nWi,其中,其中Wi=Ti/作业实际运行时间作业实际运行时间2.4.4 作业调度作业调度 常见的作业调度算法有常见的作业调度算法
16、有:(1)先来先服务先来先服务(FCFS)(2)短作业优先短作业优先(SJF)(3)响应比高者优先响应比高者优先(HRN)(4)优先级法优先级法(举例举例)作业调度举例(作业调度举例(图图2-72-7)第二章第二章作业管理作业管理(优先级算法举例)(优先级算法举例)作业作业号号进入输入进入输入井时间井时间要求计算要求计算时间时间要求主存要求主存大小大小18:0025分钟分钟15KB1台台1台台28:2010分钟分钟30KB01台台38:2020分钟分钟60KB1台台048:3020分钟分钟20KB1台台058:3515分钟分钟10KB1台台1台台申请磁带申请磁带机数量机数量申请打申请打印机数印
17、机数量量时间8:00:10:20:30:40:509:00:10:20:30作业 1作业 2作业 3作业 4作业 5磁带机 A磁带机 B打印机主存010203040506070809010030kB 20kB10kB15kB60kB图 2-7 作业调度的例子2.4.5 作业控制作业控制 作业控制程序实际上是作业控制命令的解释执作业控制程序实际上是作业控制命令的解释执 行程序,它根据用户作业说明书,逐条解释执行程序,它根据用户作业说明书,逐条解释执 行其命令行其命令 第二章第二章作业管理作业管理2.4.5 作业控制作业控制 某作业说明书的一个片段:某作业说明书的一个片段:cc f1.c /cc
18、f1.c /*编译编译f1f1模块,生成模块,生成f1.objf1.obj文件文件*/cc f2.c /cc f2.c /*编译编译f2f2模块,生成模块,生成f2.objf2.obj文件文件*/link f1.obj f2.obj link f1.obj f2.obj f.exe-lib f.exe-lib 第二章第二章作业管理作业管理2.4.5 作业控制作业控制 在多处理机环境下,作业控制程序有识别在多处理机环境下,作业控制程序有识别 作业作业 步并行关系的能力和任务分派能力步并行关系的能力和任务分派能力 作业控制程序同样要能控制并发程序作业控制程序同样要能控制并发程序 作业控制程序被启动
19、后以进程的方式运行,作业控制程序被启动后以进程的方式运行,称为作业控制进程,它是运行态作业的祖先进称为作业控制进程,它是运行态作业的祖先进程,再由祖先进程创建子孙进程,形成作业的程,再由祖先进程创建子孙进程,形成作业的进程家族进程家族 第二章第二章作业管理作业管理2.4.6 作业与进程作业与进程进程进程(process)就是为描述任务的动态行为而提出的就是为描述任务的动态行为而提出的第二章第二章作业管理作业管理作业作业(任务任务)是由多个进程组成的,作业的资源需求是由多个进程组成的,作业的资源需求 量等于它的进程拥有的资源数量之和量等于它的进程拥有的资源数量之和现代操作系统把进程作为申请资源的基本单位,把现代操作系统把进程作为申请资源的基本单位,把 线程作为任务执行的基本单位线程作为任务执行的基本单位