进程调度5.doc_第1页
进程调度5.doc_第2页
进程调度5.doc_第3页
进程调度5.doc_第4页
进程调度5.doc_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

石家庄经济学院实习报告(学 院)系: 华信学院 专 业: 计算机科学与技术 姓 名: 石会超 班 级: 4084170801 学 号: 408417080105 指导教师: 张翠军 日期 2011 年 6 月 16 日操作系统实习报告姓名石会超学号408417080105日期2011.6.7-2011.6.16实验室1机房指导教师张翠军设备编号实验八 作业调度一、实习内容模拟分页式虚拟存储管理中硬件的地址转换和缺页中断,以及选择页面调度算法处理缺页中断。采用先来先服务算法和运行时间最短者优先算法模拟设计作业调度程序。提示:(1) 作业调度程序负责从输入井选择若干个作业进入主存,为它们分配必要的资源,当它们能够被进程调度选中时,就可占用处理器运行。作业调度选择一个作业的必要条件是系统中现有的尚未分配的资源可满足该作业的资源要求。但有时系统中现有的尚未分配的资源既可满足某个作业的要求也可满足其它一些作业的要求,那么,作业调度必须按一定的算法在这些作业中作出选择。先来先服务算法是按照作业进入输入井的先后次序来挑选作业,先进入输入井的作业优先被挑选,当系统中现有的尚未分配的资源不能满足先进入输入井的作业时,那么顺序挑选后面的作业。运行时间最短者优先算法总是按作业要求运行的时间来选择作业,每次挑选要求运行时间短且资源要求能满足的作业先进入主存执行。(2)本实习模拟作业调度,所以可不考虑有关“预输入”程序的工作。假定“预输入”程序已经把一批作业的信息存放在输入井了,并为它们建立了如下的作业表:用户名作业名状态运行时间资源要求预输入表地址主存磁带AZYA收容0.3小时15k2BZYB收容0.5小时60k1CZYC收容0.1小时50k3DZYD收容0.4小时10k2EZYE收容0.1小时30k3其中状态分三种:收容状态作业已在输入井,但尚未被选中执行;执行状态作业被选中,正在执行;完成状态作业执行结束。(3) 假定主存中可容纳多道作业同时执行,那么作业调度按调度算法和资源分配情况查作业表,从中选择若干作业,对每个被选中的作业创建一个作业控制进程且使它们处于就绪状态,同时把选中作业的作业说明书读入主存。处理器调度按调度策略选择作业调度进程或作业控制进程轮流占有处理器(处理器调度参见实习二)。作业控制进程按作业说明书控制作业执行,当一个作业执行结束后,作业调度再从输入井中选择一个作业进入主存,直到输入井中的作业都执行结束,通知操作员再预输入一批作业。本实习主要模拟作业调度,所以对处理器调度、作业控制过程简化。用输入随机数模拟处理器调度,用输入“用户名、作业名”模拟一个作业已经执行结束。于是,本实习的模拟流程可参考图11-1。(4) 假定某系统可供用户使用的主存空间共100k,并有5台磁带机。主存分配采用可变分区分配方式且主存中信息不允许移动(参考实习四),对磁带机采用静态分配策略,主存中可同时执行的作业限定为两道,作业调度分别采用先来先服务算法和运行时间最短者优先算法,参考图11-1设计模拟作业调度的程序。假定作业表的初值如提示(2),分别在两种算法控制下运行设计的程序,依次显示被选中作业的用户名和作业名。比较两种作业调度算法选择作业的次序。在模拟作业执行结束输入被撤离作业的用户名、作业名时,应根据已在主存中的作业需运行的时间来决定撤离的先后次序。二、实习目的每个用户请求计算机计算的一个计算任务叫做一个作业。一个作业从输入初始数据到得到计算结果,要经过若干个步骤的相继执行。例如,编辑、编译、运行等,其中每一个步骤称作一个作业步。用户向系统提出作业加工步骤的方式称作业控制方式,作业控制方式有两种:终端控制方式(又称直接控制方式或联机控制方式)和批处理控制方式(又称自动控制方式或脱机控制方式)。在批处理控制方式下,用户采用系统提供的作业控制语言(JCL)写好作业说明书,说明作业加工的步骤。操作员把一批作业组织成输入流,通过“预输入”手段使每个作业的信息(包括作业说明书、源程序、初始数据等)暂存在辅助存储器的“输入井”中。批处理多道操作系统的作业管理有两个任务:作业调度和作业控制。采用多道程序设计方法的操作系统,在系统中要经常保留多个运行的作业,以提高系统效率。作业调度从系统已接纳的暂存在输入井中的一批作业中挑选出若干个可运行的作业,并为这些被选中的作业分配所需的系统资源。对被选中运行的作业必须按照它们各自的作业说明书规定的步骤进行控制。本实习要求学生模拟作业调度的实现,了解作业调度在操作系统中的作用。三、实习过程1. 数据结构设计struct jcb /作业控制块 char username10; /用户名 char name10; /作业名 int reachtime; /作业到达时间 int starttime; /作业开始时间/ int runtime; /已经运行了的时间 int needtime; /作业需要运行的时间 int frees; /作业要占用的内存 int disks; /作业所需磁带 int finishtime; /作业完成时间 char state; /作业状态 int nl;j15,j25,j35,j45,j51; /1 原始 2 cfcs 3 over 4 run 5 短作业优先2算法设计(1)主函数框图1)主函数要求用户选择1 先来先服务2 短作业优先2)进入模拟程序调用函数对作业进行初始化。3)选1 初始化数组。 调用inital()函数。 调用check()函数。 选 2 执行函数 调用apply()函数。 调用check()函数。4)选 3 退出本模拟系统。 (2)各个函数功能及参数介绍作业初始化函数initial()。功能:对作业进行初始化 入口参数:无 出口参数:无短作业优先排序函数sjf()(见图4)功能:对作业表用短作业优先原则进行排序 入口参数: 无 出口参数:无 把作业从外存调入内存函数apply() 功能:把符合条件的作业调用内存,并给他们分配资源 入口参数: 无 出口参数:无 运行作业函数running() 功能:执行内存中的作业,并修改相关参数 入口参数: 无 出口参数:无输出作业check()功能:输出当前所有作业信息 入口参数:无 出口参数:无3、流程图主流程图 短作业有限排序把作业调入内存流程图执行作业流程图四、程序实现及运行结果见文件 实验八duodao.cpp程序截图如下:图1 初始化作业表先来先服务实验结果:a-b-c-d-e图2 初始化状态:图3 作业a、b调入内存图4 作业a运行完时的状态图5作业b运行完时的状态图6作业c运行完时的状态图7 作业d运行完时的状态图8 作业e运行完时的状态短作业优先实验结果:c-e-a-d-b图9 初始化状态图10 作业c调入内存图11作业c运行完时的状态图12作业e运行完时的状态图13作业a运行完时的状态图14作业d运行完时的状态图15作业b运行完时的状态五、实验问题编程过程中,也发现了很多问题,比如定义结构体数组时格式有问题,经过查资料改正过来;判断数组是否为空时无法直接判断,我就加了个变量来标示数组是否为空;还有就是逻辑问题,经过仔细检查后就可以改正,在改正过程中,学到了很多东西,也提高了自己的动手能力。六、实验总结本实习要求学生模拟作业调度的实现,了解作业调度在操作系统中的作用,通过本次试验我知道了批处理多道操作系统的作业管理有两个任务:作业调度和作业控制。采用多道程序设计方

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论