操作系统之实验-作业调度.doc

操作系统之实验-作业调度.doc

ID:55262216

大小:60.00 KB

页数:12页

时间:2020-05-08

操作系统之实验-作业调度.doc_第1页
操作系统之实验-作业调度.doc_第2页
操作系统之实验-作业调度.doc_第3页
操作系统之实验-作业调度.doc_第4页
操作系统之实验-作业调度.doc_第5页
资源描述:

《操作系统之实验-作业调度.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、作业调度一、实习内容模拟批处理多道操作系统的作业调度。二、实习目的每个用户请求计算机的一个计算任务叫做一个作业。一个作业从初始数据到得到计算结果,要经过若干个步骤的相继执行。例如,编辑、编译、运行等,其中每一个步骤称作一个作业步。用户向系统提出作业加工的方式称作业控制方式,作业控制方式有两种:终端控制方式(又称直接控制方式或联机控制方式)和批处理控制方式(又称自动控制方式或脱机控制方式)。在批处理控制方式下,用户采用系统提供的作业控制语言(JCL)写好作业说明书,说明作业加工的步骤。操作员把一批作业组织成输入流,通过“预输入”手段使每个作业的信息(包括作业说明书

2、、源程序、初始数据等)暂存在辅助存储器的“输入井”中。批处理多道操作系统的作业管理有两个任务:作业调度和作业控制。采用多道程序设计方法的操作系统,在系统中要经常保留多个运行的作业,以提高系统效率。作业调度从系统已接纳的暂存在输入井中的一批作业中挑选出若干个可运行的作业,并为这些被选中的作业分配所需的系统资源。对被选中运行的作业,必须按照它们各自的作业说明书规定的步骤进行控制。本实习要求学生模拟作业调度的实现,了解作业调度在操作系统中的作用。三、实习题目采用先来先服务算法和运行时间最短者优先算法模拟设计作业调度程序。【提示】(1)作业调度程序负责从输入井选择若干个

3、作业进入主存,为它们分配必要的资源,当它们能够被进程调度选中时,就可以占用处理器运行,作业调度选择一个作业的必要条件是系统中现有的尚未分配的资源可以满足该作业的资源需求。但有进系统中现有的尚未分配的资源既可满足某个作业的要求也可以满足其它一些作业的要求,那么,作业调度必须按照一定的算法在这些作业中作出选择。先来先服务算法是按照作业进入输入井的先后次序来挑选作业,先进入输入井的作业优先被挑选,当系统中现有的尚未分配的资源不能满足先进入输入井的作业时,那么顺序挑选后面的作业。运行时间最短者优先算法总是按作业要求能满足的作业先进入主存执行。(2)为了表示暂存在输入井中

4、的各个作业的情况(作业信息在输入井中的位置、作业的资源要求等待),常常采用二级目录结构:作业表和预输入表。例如:“预输入”程序为每个作业在作业表中占一登记栏,且把作业信息存放到输入井中并按文件(源程序文件、数据文件等)登记地预输入表中。“预输入”程序工作时还把作业控制语句集中,作为作业说明书文件存放在输入井并登记在预输入表的第一栏中,同时把用户在作业说明书中提出的资源要求登记在作业表中。本实习模拟作业调度,所以可以不考虑有关“预输入”程序的工作。假定“预输入”程序已经把一批作业的信息存放在输入井了,并为它们建立了如下的作业表:用户名作业名状态运行时间资源要求  

5、   主存磁带 AZYA收容0.3小时15K2 BZYB收容0.5小时60K1 CZYC收容0.1小时50K3 DZYD收容0.4小时10K2 EZYE收容0.1小时30K3 其中状态分为三种:收容状态--作业已在输入井,当尚未被选中执行:执行状态--作业被选中,正在执行;完成状态--作业执行结束。(3)假定主存中个容纳多道作业同时执行,那么作业调度按调度算法和资源分配情况查作业表,从中选择的作业创建一个作业控制进程轮流占有处理器(处理器调度参见实习二)。作业控制进程按作业说明书控制作业执行,当一个作业执行结束后,作业调度再从输入井中选择一个作业进入主存,知道输

6、入井中的作业都执行结束,同志操作系统再预输入一个批作业。本实习主要模拟作业调度,所以对处理器调度、作业控制过程简化。用输入随即数模拟处理器调度,用输入“用户名、作业名”模拟一个作业已经执行结束。于是,本实习的模拟流程可参考2-1。(4)假定某系统可供用户实验的主存空间共100K,共有5台磁带机。主存分配采用可变分区分配方式且主存中信息不允许移动,对磁带机采用静态分配策略,主存中可同时执行的作业限定为两道,作业调度分别采用先来先服务算法和运行时间最短者优先算法,参考图2-1设计模拟作业调度的程序。假定作业表的初值如提示(2),分别再两种算法选择作业的次序。在模拟作

7、业执行结束输入被撤离作业的用户名、作业名时,应根据已在主存中的作业需运行的时间来决定撤离的先后次序。三、流程图四、源程序#include"stdio.h"#include"stdlib.h"#defineMEMLENGTH100#defineRECORDERNUM5typedefstructJCB{char*UserID;char*JobID;charstatus;floatRunTime;intApplyMem;intMemoryNum;intApplyRecorder;structJCB*next;}JCB; JCB*JTfind(JCB*jcb,chars

8、tatus){JCB*p

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。