第8章 作业调度实验
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
提纲
实验内容
作业调度
作业调度又称高级调度,不涉及处理机的分配, 主要任务是按一定的原则从外存上处于后备状态 的作业中挑选一个(或多个)作业调入主存,为 其分配内存、I/O设备等必要的资源,并建立相应 的进程,安排在就绪队列上,以使进程获得竞争 处理机的权利。
实验内容
调度队列模型
实验内容
1. 2.
实验示例
读入文件显示如下:
实验示例
FCFS
实验示例
SJF
实验示例
HRRF
实验示例
HPF
实验示例
RR
实验算法
算法五:时间片轮转(RR)
基本思想
系统将所有的就绪进程按先来先服务的原则,排成一 个队列,每次调度时,把CPU分配给队首进程,并令 其执行一个时间片。时间片结束之后,将该进程加到 就绪队列队尾;然后再把处理机分配给就绪队列中新 的首进程。 系统能在给定的时间内响应所有用户请求。
优点
实验示例
重要函数说明
void read_Jobdata();//读取数据文件; void initial_jobs(); //初始化所有作业信息; int findEarlyJob(job jobs[],int count);//找到执行时间最 短的作业; void SFJschedulejob(job jobs[],int count);//短作业优先 算法 用到的函数有: fopen(文件名,使用文件方式);//打开文件 fscanf(文件指针,格式字符串,输入列表);//格式化读入; fclose(文件指针);//关闭文件
3.
4.
来自百度文库
5. 6.
编写并调试作业调度模拟程序; 实现五种作业调度算法,先来先服务(FCFS),短作业 优先(SJF),高响应比优先(HRRF),优先权高者先服 务(HPF),时间片轮转法(RR); 对每种算法要求打印调度顺序及相应的平均周转时间、 平均带权周转时间、平均等待时间; 每次作业切换时打印作业相关信息(提示开始运行,结 束运行\暂停运行;一个作业完成打印其等待时间、周转 时间、带权周转时间)。 不考虑多个作业同时到达的情况,且均为非抢占式。 要求:每个人至少完成三种算法,每个小组要求完成全 部算法,实行验收制。
实验算法
算法四:优先权高者优先(HPF)
基本思想
系统根据作业的优先权进行作业调度,每次选取优先 权高的作业优先调度。作业的优先权通常用一个整数 表示,也叫做优先数。优先数的大小与优先权的关系 由系统或者用户来规定,本实验采用优先权值越小,优 先权越高。 优先权高者优先调度算法综合考虑了作业执行时间和 等待时间的长短、作业的缓急度、作业对外部设备的 使用情况等因素。
提纲
实验示例
使用的测试数据
使用读文件的形式读入测试数据
作业ID
1 2 3 4 5
到达时间
800 815 830 835 845
执行时间
50 30 25 20 15
优先权
0 1
2
2 2 1 0
6
7
700
820
10
5
实验示例
作业信息结构
typedef struct node { int number; //作业号 int reach_time; //作业抵达时间 int need_time; //作业的执行时间 int privilege; //作业优先权 float excellent; //响应比 int start_time; //作业开始时间 int wait_time; //等待时间 int tr_time; //周转时间 double wtr_time; //带权周转时间 int run_time; //作业累计已执行时间 int visited; //作业是否被访问过 bool isreached; //作业是否已抵达 } job;
第8章相关说明
说明:(1)实验相关ppt内容选自《操作系统课程设 计》的核心实验,本实验为作业调度实验,使学生对 作业调度算法有进一步的理解,同时提高学生的动手 能力。 (2)实验原理比较清晰,难点在于学生动手能力差, 编程基础薄弱,建议课下要求学生自己多花费时间来 进行编码。 (3)该课程上课时间为2015年春季,全班人数共54 人。
实验算法
算法三:高响应比优先(HRRF)
初衷
FCFS调度算法只片面地考虑了作业的进入时间,短作 业优先调度算法考虑了作业的运行时间而忽略了作业 的等待时间。 响应比高者优先调度算法为这两种算法的折中,使长 作业不会长时间等待,但每次调度前都要进行响应比 计算。
响应时间 等待时间 处理时间 等待时间 响应比 1 处理时间 处理时间 处理时间
第8章:作业调度实验
作业调度算法模拟
提纲
提纲
实验目的
掌握周转时间、等待时间、平均周转时间等概念 及其计算方法; 理解五种常用的作业调度算法 (FCFS,SJF,HRRF,HPF,RR),区分算法之间的 差异性,并用c语言模拟实现各算法; 了解操作系统中高级调度、中级调度和低级调度 的区别和联系;
提纲
实验算法
算法一:先来先服务(FCFS)
基本思想
遵循先进入后备队列的作业,先进行调度的原则。 非抢占式算法 简单,易于编码实现 优先考虑作业的等待时间,没有考虑作业的执行时间 长短、作业的运行特性和作业对资源的要求
特点
实验算法
算法二:短作业优先(SJF)
基本思想
根据作业控制块中作业申请时指出的执行时间,选取 执行时间最短的作业优先调度;可有抢占或非抢占方 式。 短作业优先调度算法考虑了作业的运行时间而忽略了 作业的等待时间。