作业调度实验报告
作业调度实验报告

作业调度实验报告一、实验目的1.掌握作业调度的概念和基本原则;2.理解作业调度算法的原理和实现方式;3.熟悉作业调度过程中的各种参数和指标;4.进一步了解操作系统中的进程调度机制。
二、实验环境本次实验使用的操作系统环境为Windows平台。
三、实验内容1.实现一个简单的作业调度算法,根据作业的重要性和执行时间进行优先级排序;2.设计一个作业队列,模拟一系列作业的到达和执行过程;3.根据作业调度算法,将作业分配给CPU执行,并统计作业的等待时间、完成时间等指标;4.进行多次实验,比较不同调度算法之间的性能差异。
四、实验步骤1.首先,设计一个作业类,包括作业的名称、重要性、到达时间和执行时间等属性;2.定义一个作业队列,用于存储到达的作业,并按照到达时间进行排序;3.实现一个简单的作业调度算法,根据作业的重要性和执行时间进行优先级排序;4.设计一个CPU类,用于执行作业队列中的作业,并记录作业的等待时间、完成时间等指标;5.模拟一系列作业的到达和执行过程,将作业调度给CPU执行,并记录相关指标;6.分别使用不同的调度算法进行多次实验,比较各自的性能差异。
五、实验结果与分析通过多次实验,得到了不同调度算法下的作业等待时间、完成时间等指标,并进行了比较。
结果发现,在作业执行时间相同时,按照作业的重要性进行优先级排序的算法,能够使得较重要的作业尽早执行,因而整体的作业等待时间和完成时间较短。
而对于作业执行时间不一致的情况,采用短作业优先算法,可以使作业平均等待时间较短,但在一些较长的作业上可能会存在饥饿现象。
综合考虑作业的重要性和执行时间,采用带权重的优先级队列算法可以获得较好的调度效果。
六、实验总结通过本次实验,我深入了解了作业调度的概念、原理和实现方式。
通过对比不同调度算法的性能差异,对于实际的作业调度过程具有一定的指导意义。
此外,通过实验设计和代码实现,我也提高了编程和分析问题的能力。
总体而言,本次实验使我对操作系统中的作业调度有了更为深刻的理解,并提高了我的实践能力。
操作系统实验报告作业调度

操作系统实验报告作业调度操作系统实验报告:作业调度引言作业调度是操作系统中的重要部分,它负责管理和调度系统中的各种作业,以最大化系统资源的利用率和提高作业的执行效率。
在本次实验中,我们将探讨作业调度的基本原理和实现方法,并通过实验验证其效果。
实验目的本次实验的主要目的是通过实际操作,了解作业调度的基本原理和实现方法,掌握作业调度的相关算法,并通过实验验证其有效性。
实验内容1. 实现作业调度的基本算法在本次实验中,我们将实现作业调度的基本算法,包括先来先服务(FCFS)、最短作业优先(SJF)、优先级调度(Priority Scheduling)和多级反馈队列调度(Multilevel Feedback Queue Scheduling)等。
通过编写代码,模拟这些算法的执行过程,并观察它们的效果。
2. 实验验证我们将设计一些测试用例,通过模拟作业的执行过程,分别使用不同的作业调度算法,并比较它们的执行效果。
通过实验验证,我们将得出不同算法的优劣势,并分析其适用场景。
实验结果经过实验验证,我们得出以下结论:1. 先来先服务(FCFS)算法适用于作业执行时间相对均匀的情况,但可能会导致平均等待时间较长。
2. 最短作业优先(SJF)算法能够最大程度地减少平均等待时间,但可能会出现作业饥饿现象。
3. 优先级调度(Priority Scheduling)算法能够根据作业的优先级进行调度,适用于有明确优先级需求的情况。
4. 多级反馈队列调度(Multilevel Feedback Queue Scheduling)算法能够根据作业的执行情况动态调整优先级,适用于各种类型的作业。
结论作业调度是操作系统中的重要组成部分,不同的作业调度算法适用于不同的场景。
通过本次实验,我们深入了解了作业调度的基本原理和实现方法,掌握了不同算法的优劣势,并通过实验验证了它们的有效性。
这将对我们进一步深入学习操作系统和提高系统性能有着重要的意义。
作业调度模拟程序实验报告

实验二作业调度模拟程序
一、实验目的
(1)加深对作业调度算法的理解;
(2)进行程序设计的训练。
二、实验要求
用高级语言编写一个或多个作业调度的模拟程序。
单道批处理系统的作业调度程序。
作业一投入运行,它就占有计算机的一切资源直到作业完成为止,因此调度作业时不必考虑它所需要的资源是否得到满足,它所运行的时间等因素。
作业调度算法:采用先来先服务(FCFS)调度算法,即按作业到达的
先后次序进行调度。
总是首先调度在系统中等待时间最长的作业。
每个
作业由一个作业控制块JCB表示,JCB可以包含以下信息:作业名、提
交(到达)时间、所需的运行时间、所需的资源、作业状态、链指针等
等。
作业的状态可以是等待W(Wait)、运行R(Run)和完成F(Finish)三种之一。
每个作业的最初状态都是等待W。
三、实验方法、步骤及结果测试
1.实验环境:Windows Visual C++ 6.0
2.源程序名:.obj
可执行程序名:.exe
3.流程图
4.源代码
5.
先来先服务:
优先级调度:
短作业优先:
最高响应比优先:
四、实验心得
通过此次课程设计,更深入的理解了各个进程调度算法,及实现过程。
在此过程中,与小组成员讨论,查询相关资料,解决出现的问题,虽然仍有不足之处,但是却受益良多,也将会在今后学习中更加努力。
这次课程设计也让作为
组长的我更加懂得团队一起努力取得成果的重要性,让我懂得如何组织小组成员一起完成作业。
作业调度实验报告

作业调度实验报告一、实验目的本次作业调度实验的主要目的是深入理解和掌握作业调度的基本原理和算法,通过实际编程和模拟实验,分析不同调度策略对系统性能的影响,从而为优化作业调度提供理论依据和实践经验。
二、实验环境本次实验在 Windows 10 操作系统下进行,使用 Python 语言作为主要的编程工具。
实验中所需的相关库包括`numpy`、`matplotlib` 等。
三、实验原理作业调度是操作系统中的一个重要组成部分,其主要任务是根据一定的调度策略,从就绪队列中选择作业并分配处理机资源,以实现系统资源的高效利用和作业的快速执行。
常见的作业调度算法包括先来先服务(FCFS)、短作业优先(SJF)、优先级调度、高响应比优先调度等。
先来先服务算法按照作业到达的先后顺序进行调度,先到达的作业先执行。
这种算法简单直观,但可能导致长作业长时间等待,影响系统的平均周转时间。
短作业优先算法优先调度执行时间短的作业,能够有效地减少作业的平均等待时间,但可能会导致长作业饥饿。
优先级调度根据作业的优先级来决定执行顺序,优先级高的作业先执行。
然而,确定合理的优先级是一个复杂的问题。
高响应比优先调度综合考虑了作业的等待时间和执行时间,通过计算响应比来决定作业的执行顺序,在一定程度上避免了长作业饥饿的问题。
四、实验内容(一)算法实现1、先来先服务算法```pythondef fcfs_scheduling(jobs):start_time = 0 len(jobs)finish_time = 0 len(jobs)waiting_time = 0 len(jobs)turnaround_time = 0 len(jobs)current_time = 0for i in range(len(jobs)):start_timei = current_timefinish_timei = current_time + jobsiturnaround_timei = finish_timei 0current_time = finish_timeireturn waiting_time, turnaround_time```2、短作业优先算法```pythondef sjf_scheduling(jobs):sorted_jobs = sorted(jobsitems(), key=lambda x: x1) start_time = 0 len(sorted_jobs)finish_time = 0 len(sorted_jobs)waiting_time = 0 len(sorted_jobs)turnaround_time = 0 len(sorted_jobs)current_time = 0for i in range(len(sorted_jobs)):start_timei = current_timefinish_timei = current_time + sorted_jobsi1turnaround_timei = finish_timei 0current_time = finish_timeireturn waiting_time, turnaround_time```3、优先级调度算法```pythondef priority_scheduling(jobs):sorted_jobs = sorted(jobsitems(), key=lambda x: x2, reverse=True) start_time = 0 len(sorted_jobs)finish_time = 0 len(sorted_jobs)waiting_time = 0 len(sorted_jobs)turnaround_time = 0 len(sorted_jobs)current_time = 0for i in range(len(sorted_jobs)):start_timei = current_timefinish_timei = current_time + sorted_jobsi1turnaround_timei = finish_timei 0current_time = finish_timeireturn waiting_time, turnaround_time```4、高响应比优先调度算法```pythondef hrrn_scheduling(jobs):response_ratio =for i in range(len(jobs)):waiting_time = 0for j in range(i):waiting_time += jobsjresponse_ratioappend((waiting_time + jobsi) / jobsi)sorted_jobs = job for _, job in sorted(zip(response_ratio, jobs),reverse=True)start_time = 0 len(sorted_jobs)finish_time = 0 len(sorted_jobs)waiting_time = 0 len(sorted_jobs)turnaround_time = 0 len(sorted_jobs)current_time = 0for i in range(len(sorted_jobs)):start_timei = current_timefinish_timei = current_time + sorted_jobsiwaiting_timei = current_timeturnaround_timei = finish_timei 0current_time = finish_timeireturn waiting_time, turnaround_time```(二)实验数据生成为了模拟不同的作业情况,生成了三组具有不同特点的作业数据,分别是:1、作业执行时间均匀分布的数据。
调度实习报告三篇

调度实习报告三篇调度实习报告三篇在生活中,报告的用途越来越大,报告根据用途的不同也有着不同的类型。
那么,报告到底怎么写才合适呢?以下是小编帮大家整理的调度实习报告3篇,仅供参考,希望能够帮助到大家。
调度实习报告篇1实习目的:根据实习计划,我到郑州铁路局安阳西站进行了为期两个月的行车和货运岗位的实习。
实习的目的:要通过进行现场学习,有针对性的了解铁路车站主要行车和货运岗位知识及作业内容,初步掌握相关的基础业务技能,对学校所学过的理论知识有了更深刻和直观的认识,真正把理论与实际相结合、学以致用。
实习单位及岗位介绍:我实习的车站安阳西站是郑州铁路局的一个一等货运中间站,位于安李线7KM+37M处,上行与京广线安阳站相邻,下行与水冶站相邻,主要办理安阳钢铁公司、大唐安阳电厂的货物到发业务,每天的装卸车量较大,约在700车。
接发列车和货运作业较为繁忙,对安全与效率要求较高。
中间站是铁路上为数最多的车站,铁路线上运行的大量列车要在中间站通过、交会或避让。
同时,中间站还承担着所在地区的旅客乘降和货物发送、到达任务。
因此,中间站办理的作业主要是接发列车作业和摘挂车辆的技术作业,少数中间站也办理始发直达列车和终到列车的技术作业。
为完成各项货运及运转工作,中间站一般具有如下的技术设备:(1)供接发列车、进行调车和装卸货物用的配线(到发线、牵出线、装卸线等);(2)供服务旅客用的旅客站台及站舍等;(3)供货物作业用的货场及仓库等;(4)信号、联锁、闭塞设备及通信设备。
货运员和货运值班员是铁路车站为货主或专用线企业办理货运业务,提供货运服务的岗位,是接触货主的“窗口”;车站值班员、助理值班员是车站行车指挥的“中枢”,代表站长负责车站的行车组织和指挥,办理列车的接发和调动,保证正点和畅通。
以上岗位是铁路车站的最基本岗位和最重要岗位。
中间站服务质量直接影响到铁路客流、货源及运输效率,其行车工作的质量,直接关系到本区段甚至全局、全路的列车运行安全和正点。
作业调度实验报告

作业调度实验报告作业调度算法实验。
二、实验目标已知n个作业的进入时间和估计运行时间(以分钟计)(1)单道环境下,分别用先来先服务调度算法、短作业优先调度算法、响应比高者优先调度算法,求出批作业的平均周转时间和带权平均周转时间;在多道环境(如2道)下,求出这些作业的平均周转时间和带权平均周转时间(2)就同一批次作业,分别讨论这些算法的优劣;(3)衡量同一调度算法对不同作业流的性能。
三、实验环境要求1.PC机。
2.Windows环境。
3.CodeBlocks四、实验基本原理(1)先来先服务算法:按照作业提交给系统的先后顺序来挑选作业,先提交的先被挑选。
(2)最短作业优先算法:是以进入系统的作业所提出的“执行时间”为标准,总是优先选取执行时间最短的作业。
( 3)响应比高者优先算法:是在每次调度前都要计算所有被选作业(在后备队列中)的响应比,然后选择响应比最高的作业执行。
(4)两道批处理系统中最短作业优先调度算法:内存中可以进入两个作业,这两个作业按照最短作业优先调度算法调整作业执行的次序。
五、数据结构设计使用一维数组来保存多个作业Job job[20];,采用的是顺序存储。
使用queue<Jcb *> q保存调度队列里的作业指针。
struct Date//时间结构体{int hour;//时间的小时int minute;//时间的分钟};struct Jcb//作业结构体,用来描述作业{int no;//作业编号Date enter;//进入时间int operation;//估计运行时间Date start;//开始时间Date over;//结束时间int turnover;//周转时间double weighted;//带权周转时间int state=0;//标记改作业是否进入运行状态};六、流程图单道环境下算法流程图多道环境下的两道批处理系统中最短作业优先作业调度算法的流程图。
七、源代码#include<iostream> #include<stdio.h>#include<cstring>#include<algorithm> #include<queue> using namespace std;struct Date//时间结构体{int hour;//时间的小时int minute;//时间的分钟};struct Jcb//作业结构体,用来描述作业{int no;//作业编号Date enter;//进入时间int operation;//估计运行时间Date start;//开始时间Date over;//结束时间int turnover;//周转时间double weighted;//带权周转时间int state=0;//标记改作业是否进入运行状态};//函数声明void display(Jcb J[],int n);//输出void runing( queue<Jcb *> q,int n);//根据算法将就绪队列排好队后的单道作业的运行主体void fcfs( Jcb J[],int n);//先来先服务作业调度void sfc(Jcb J[],int n);//最短作业优先作业调度void hrfc(Jcb J[],int n);//最高响应比作业调度void text(void (*dispatch)(Jcb J[], int n),Jcb J[],int n,Jcb J1[],int n1, Jcb J2[],int n2);//测试单道环境,不同批次作业,相同算法void mulfc(Jcb J[],int n);//两道环境,内存中可以用两个作业,内存中的这两个作业按照作业长短调整作业执行的次序。
作业调度实验报告

作业调度实验报告作业调度实验报告引言:作业调度是计算机操作系统中的一个重要概念,它涉及到如何合理地安排和管理计算机系统中的各个作业的执行顺序,以提高计算机系统的效率和资源利用率。
本实验旨在通过模拟不同的作业调度算法,探究它们在不同场景下的性能表现。
实验目的:1. 了解作业调度的基本概念和原理;2. 掌握作业调度算法的实现方法;3. 分析不同作业调度算法在不同场景下的优缺点。
实验过程:1. 实验环境的搭建在实验开始前,我们需要搭建一个适合进行作业调度实验的环境。
我们选择了一台配置较高的计算机,并安装了操作系统和相关的开发工具。
2. 实验数据的准备为了模拟真实的作业调度场景,我们需要准备一些作业数据。
这些数据包括作业的到达时间、执行时间、优先级等信息。
我们通过编写程序生成了一批随机的作业数据,并将其保存在文件中。
3. 实验算法的实现根据实验要求,我们实现了三种常见的作业调度算法:先来先服务(FCFS)、最短作业优先(SJF)和优先级调度算法(Priority Scheduling)。
我们使用C语言编写了相应的代码,并对其进行了测试和调试。
4. 实验结果的分析我们将不同作业调度算法在相同作业数据下的运行结果进行了比较和分析。
通过观察和统计,我们得到了各个算法的平均周转时间、平均等待时间等性能指标。
同时,我们还通过绘制图表的方式直观地展示了这些数据。
实验结果与讨论:1. 先来先服务算法(FCFS)先来先服务算法是最简单的作业调度算法之一,它按照作业到达的顺序依次执行。
在实验中,我们发现该算法对于短作业来说表现较好,但对于长作业来说会导致平均等待时间较长。
2. 最短作业优先算法(SJF)最短作业优先算法是一种非抢占式的调度算法,它优先执行执行时间最短的作业。
在实验中,我们发现该算法能够有效减少平均等待时间,但对于长作业来说可能会导致饥饿现象。
3. 优先级调度算法(Priority Scheduling)优先级调度算法根据作业的优先级来安排执行顺序。
调度实习报告四篇_1

调度实习报告四篇调度实习报告篇1一. 实习动机:经过对物流专业的学习,对物流的定义,基本功能,各个作业流程有了一定的理论基础,通过实习将这些理论与实际的操作相结合,在实践中提高运用知识的能力.二. 实习目的:了解第三方物流服务的特点、主要设备和作业流程,对其进行分析,并结合所学的理论提出改进意见。
三. 实习单位简介:1.公司介绍:中外运公司是中国物流业异军突起的新兴物流企业,具备国内道路运输许可资质。
其业务涵盖国内零担运输、仓储包装、城际快运、整车包车、代收货款等业务,可为客户提供全方位的物流服务。
公司以建立中国最具实力的专业市场物流企业为经营目标、以人才经营为核心、以品牌经营为导向,专注于做好一件事——为专业市场物流提速。
公司斥巨资自建网络、自购车辆、组建资历深厚的经营管理班底,致力于为客户提供准时、安全、诚信、专业的综合性物流服务。
目前在天津已经形成以北京为中心辐射整个华北网络布局,中国外运正在以良好的态势快速向前发展……2.公司设施:1). 车辆,公司拥有500多辆车.同时拥有几个车队,可调动较近车辆。
2).公司仓库:公司拥有大型的运作场地,仓储和运作一体。
空间高度为3米。
总设计面积80000平方米。
该类型的运作场地的优点是防汛,防潮性能良好,库外周转场地大,特别适合于中国外运这种经营多种业务的物流公司进行转趟运作。
3).信息服务系统:我们公司拥有先进的管理系统软件。
操作方便,简单。
能对客户的需要提供最大的帮助,更能及时准确的反映出公司的一切运转情况。
为公司的发展提供了良好的服务环境!确保了公司各环节的正常运行! 四.实习内容:实习的地方是天津市大港区。
职位是业务调度员,将物流操作过程的各个环节进行衔接处理、调度。
早上货物扫描到站,由转趟司机运送到站,业务员进行派送。
进行货单、回单的签回,运费和代收货款的追收。
监督务必在12:00之前对早上到站货物派完,然后是收件流程--大客户固定时间取件,月结客户业务员约定时间取件,其他客户公司客服部电话通知业务员取件。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
作业调度实验报告 Document number:NOCG-YUNOO-BUYTT-UU986-1986UT
实验二作业调度
一.实验题目
1、编写并调试一个单道处理系统的作业等待模拟程序。
作业调度算法:分别采用先来先服务(FCFS),最短作业优先(SJF)、响应比高者优先(HRN)的调度算法。
(1)先来先服务算法:按照作业提交给系统的先后顺序来挑选作业,先提交的先被挑选。
(2)最短作业优先算法:是以进入系统的作业所提出的“执行时间”为标准,总是优先选取执行时间最短的作业。
(3)响应比高者优先算法:是在每次调度前都要计算所有被选作业(在后备队列中)的响应比,然后选择响应比最高的作业执行。
2、编写并调度一个多道程序系统的作业调度模拟程序。
作业调度算法:采用基于先来先服务的调度算法。
可以参考课本中的方法进行设计。
对于多道程序系统,要假定系统中具有的各种资源及数量、调度作业时必须考虑到每个作业的资源要求。
二.实验目的:
本实验要求用高级语言(C语言实验环境)编写和调试一个或多个作业调度的模拟程序,了解作业调度在操作系统中的作用,以加深对作业调度算法的理解三 .实验过程
<一>单道处理系统作业调度
1)单道处理程序作业调度实验的源程序:
执行程序:
2)实验分析:
1、由于在单道批处理系统中,作业一投入运行,它就占有计算机的一切资源直到作业完成为止,因此调度作业时不必考虑它所需要的资源是否得到满足,它所占用的 CPU 时限等因素。
2、每个作业由一个作业控制块JCB 表示,JCB 可以包含如下信息:作业名、提交时间、所需的运行时间、所需的资源、作业状态、链指针等等。
作业的状态可以是等待W(Wait)、运行R(Run)和完成F(Finish)三种状态之一。
每个作业的最初状态总是等待W 。
3、对每种调度算法都要求打印每个作业开始运行时刻、完成时刻、周转时间、带权周转时间,以及这组作业的平均周转时间及带权平均周转时间。
3)流程图:
二.最短作业优先算法
三.高响应比算法
图一.先来先服务流程图
4)源程序: #include <>
#include <>
#include <>
#define getpch(type) (type*)malloc(sizeof(type))
#define NULL 0
int n;
float T1=0,T2=0;
int times=0;
struct jcb .\n",p->name);
free(p); .wait...",time);
if(times>1000)
代替
代替
{printf("\nruntime is too long...error...");getch();} }
else
{
running(min,m); .wait...",time);
times++;
if(times>100){printf("\nruntime is too
long...error");getch();}
}
else{
running(min,m); 来先服务算法.");
printf("\n\t\t\t2.最短作业优先算法.");
printf("\n\t\t\t3.响应比高者优先算法");
printf("\n\t\t\t0.退出程序.");
printf("\n\n\t\t\t\t选择所要操作:");
scanf("%d",&m);
switch(m)
{
case 1:
fcfs(m);
getch();
system("cls");
mune();
break;
case 2:
sjf(m);
getch();
system("cls");
mune();
break;
case 3:
hrn(m);
getch();
system("cls");
mune();
break;
case 0:
system("cls");
break;
default:
printf("选择错误,重新选择.");
getch();
system("cls");
mune();
}
}
main() 择操作的界面
2.输入操作初始信息:
3.先来先服务算法作业调度结果: (调度顺序:a->b->c->d->e)
4.最短作业优先算法作业调度结果(调度顺序: a->d->b->e->c)
5.高响应比算法作业调度结果: (调度顺序 a->b->d->c->e)
<二>多道处理系统作业调度
1)多道处理程序作业调度实验的源程序:
执行程序:
2)实验分析:
采用多道程序设计方法的操作系统,在系统中要经常保留多个运行的作业,以提高系统效率。
作业调度从系统已接纳的暂存在输入井中的一批作业中挑选出若干个可运行的作业,并为这些被选中的作业分配所需的系统资源。
对被选中运行的作业必须按照它们各自的作业说明书规定的步骤进行控制。
采用先来先服务算法算法模拟设计作业调度程序。
(1)、作业调度程序负责从输入井选择若干个作业进入主存,为它们分配必要的资源,当它们能够被进程调度选中时,就可占用处理器运行。
作业调度选择一个作业的必要条件是系统中现有的尚未分配的资源可满足该作业的资源要求。
但有时系统中现有的尚未分配的资源既可满足某个作业的要求也可满足其它一些作业的要求,那么,作业调度必须按一定的算法在这些作业中作出选择。
先来先服务算法是按照作业进入输入井的先后次序来挑选作业,先进入输入井的作业优先被挑选,当系统中现有的尚未分配的资源不能满足先进入输入井的作业时,那么顺序挑选后面的作业。
(2)假定某系统可供用户使用的主存空间共100k,并有5台磁带机。
3)流程图:
4)源程序:
#include <>
#include <>
#include <>
#define getpch(type) (type*)malloc(sizeof(type))
#define NULL 0
int j=0;
int n,i; int times=0; struct jcb 道作业调度演示."); printf("\n\t\t0.退出程序");
printf("\n\t\t\t选择所要的操作:");
printf("\n\n\n\t\t\t\t\t计算机学院软件四班\n");
printf("\t\t\t\t\t蓝小花\n");
printf("\t\t\t\t\t完成日期:2006年12月");
scanf("%d",&m);
switch(m)
{
case 1:
system("cls");
inital();
apply();
running();
getch();
system("cls");
main();
break;
case 0:
system("cls");
break;
default:
system("cls");
main();
}
}
5)调试结果:
1) 界面跟前面的其他几个实验的界面大同小异,这里就不在重复出现界面.下面输出的是作业的初始信息:
2)调度作业,此时的作业情况如下:
3)按回车键,相当于作业继续调度,如下:
4)重复3>,直至作业运行结束;
四.思考题:
1.写出每种算法的调度策略,最后比较各种算法的优缺点。
答:①FCFS算法总是把处理机分配给最先进入就绪队列的进程,一个进程一旦分得处理机,便执行下去,直到该进程完成或阻塞时,才释放处理机。
优点:实现简单. 缺点:没考虑进程的优先级
②SJF算法从就绪队列中选出“下一个CPU执行期”最短的进程,为之分
配处理机。
该算法虽可获得较好的调度性能,但难以准确地知道下一个CPU执行
期,而只能根据每一个进行的执行历史来预测。
③ HRN算法既照顾了短作业,又照顾了作业顺序,不会使长作业长期得不到
运行,但调度前,必须计算响应比,增加了系统的开销.
2.选择调度算法的依据是什么
答:面向用户的准则:周转时间短;响应时间快;截止时间的保证;优先权准则
面向系统的准则:系统吞吐量高;处理机利用率好;各类资源的平衡利用
五.心得体会
每个人对作业调度的算法都存在着一定的理解,这也就是很多同学的算法实现不同的原因.可能是自己理解的不够透彻,我总觉得自己的实验不够完善,还有,可能是自己掌握c语言还不够深,总觉得自己的想法与实现的算法存在着很大差距.希望通过更多的实验,让自己有更大的提高.。