操作系统实验C语言编写——作业调度.doc

操作系统实验C语言编写——作业调度.doc

ID:57282939

大小:316.00 KB

页数:10页

时间:2020-08-09

操作系统实验C语言编写——作业调度.doc_第1页
操作系统实验C语言编写——作业调度.doc_第2页
操作系统实验C语言编写——作业调度.doc_第3页
操作系统实验C语言编写——作业调度.doc_第4页
操作系统实验C语言编写——作业调度.doc_第5页
资源描述:

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

1、石家庄经济学院实习报告(学院)系:信息工程学院专业:计算机科学与技术姓名:江丹班级:专接本2班学号:1指导教师:张有华2012年6月22日操作系统课程实习报告学号:1姓名:江丹起迄日期:2012/6/11~2012/6/16指导教师:张有华实习地点:206室实习题目:采用先来先服务算法和运行时间最短者优先算法模拟设计作业调度程序。1实习内容模拟批处理多道操作系统的作业调度2实习目的每个用户请求计算机计算的一个计算任务叫做一个作业。一个作业从输入初始数据到得到计算结果,要经过若干个步骤的相继执行。例如,

2、编辑、编译、运行等,其中每一个步骤称作一个作业步。用户向系统提出作业加工步骤的方式称作业控制方式,作业控制方式有两种:终端控制方式(又称直接控制方式或联机控制方式)和批处理控制方式(又称自动控制方式或脱机控制方式)。在批处理控制方式下,用户采用系统提供的作业控制语言(JCL)写好作业说明书,说明作业加工的步骤。操作员把一批作业组织成输入流,通过“预输入”手段使每个作业的信息(包括作业说明书、源程序、初始数据等)暂存在辅助存储器的“输入井”中。批处理多道操作系统的作业管理有两个任务:作业调度和作业控制。

3、采用多道程序设计方法的操作系统,在系统中要经常保留多个运行的作业,以提高系统效率。作业调度从系统已接纳的暂存在输入井中的一批作业中挑选出若干个可运行的作业,并为这些被选中的作业分配所需的系统资源。对被选中运行的作业必须按照它们各自的作业说明书规定的步骤进行控制。本实习要求学生模拟作业调度的实现,了解作业调度在操作系统中的作用。3实习步骤第一步:首先对整个题目进行分析,包括对作业、主存的定义类型。第二步:对流程图进行分析,分析一些细节代码。第三步:根据程序流程图写代码并调节一些细节错误。第四步:运行看结

4、果,这里主要看内存根据作业的要求对分配情况。3.1需求分析本次实验是在预输入五道作业的基础上初始化,并通过作业的需求更改主存的输出显示情况,首先是输入5道作业,分别使用先来先服务算法和最短时间优先算法分配内存,最后进行内存的回收。3.2数据结构设计与说明定义作业中的变量-资源需求:typedefstructsource{intsize;//资源要求大小inttape_count;//资源要求磁带数}src;定义作业:typedefstructjobwork{charusername[10];//用户名

5、charjobname[10];//作业名charstate[5];//运行状态intruntime;//运行时间srcsource;//资源需求(结构体类型见上)structjobwork*next;//下一个指针}job;定义内存:typedefstructmemory{intsize;//内存大小inttape_count;//内存磁带数charjobname[10];//内存中存在的作业名(首次为空)charusername[10];//内存中作业的用户名charstate[5];//内存中作

6、业的状态intjob_count;//内存中作业个数structmemory*next;//内存下一个指针}mem;3.3算法设计第一部分:初始化作业表while(i<=2){p=(job*)malloc(sizeof(structjobwork));//分配内存空间scanf("%st%st%st%dt%dt%d",p->username,p->jobname,p->state,&(p->runtime),&(p->source.size),&(p->source.tape_count))

7、;p->next=NULL;if(head==NULL)head=p;elseq->next=p;q=p;i++;}第二部分:统计合适的作业的个数while(p!=NULL&&strcmp("收容",p->state)==0&&p->source.size<=mem1.size&&p->source.tape_count<=mem1.tape_count){mem1.job_count++;p=p->next;}第三部分:执行先来先服务算法,为作业分配内存;最短作业优先算法采用的是一样的原理,链表指针

8、由头往后指下去,只不过先前部分运用了冒泡方法,把时间由短到长拍了下顺序。while(p!=NULL&&strcmp("收容",p->state)==0&&p->source.size<=mem1.size&&p->source.tape_count<=mem1.tape_count){mem1.size=mem1.size-p->source.size;//分配主存空间mem1.tape_count=mem1.tape_count-p->source.t

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

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

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