操作系统--最高响应比优先调度算法实验报告.

进程调度一、实验题目与要求

编写程序完成批处理系统中的作业调度,要求采用响应比高者优先的作业调度算法。实现具体包括:首先确定作业控制块的内容和组成方式;然后完成作业调度;最后编写主函数,对所做工作进行测试。二、总的设计思想及语言环境、工具总的设计思想HRRN)是对FCFS方式和SJF 方式的一种综合平衡。HRRN调度策略同时考虑每个作业的等待时间长短和估计需要的执行时间长短,从中选出响应比最高的作业投入执行。

响应比R定义如下: R=(W+T)/T=1+W/T

其中T为该作业估计需要的执行时间,W为作业在后备状态队列中的等待时间。

每当要进行作业调度时,系统计算每个作业的响应比,选择其中R最大者投入执行。这样,即使是长作业,随着它等待时间的增加,W/T也就随着增加,也就有机会获得调度执行。这种算法是介于FCFS和SJF 之间的一种折中算法。由于长作业也有机会投入运行,在同一时间内处理的作业数显然要少于SJF 法,从而采用HRRN 方式时其吞吐量将小于采用SJF 法时的吞吐量。另外,由于每次调度前要计算响应比,系统开销也要相应增加。

2、语言环境主存64KB(Memory)(以KB为单位分配)工具三、数据结构与模块说明(功能与框图)作业调度的实现主要有两个问题:一个是如何将系统中的作业组织起来;另一个是如何进行作业调度。

为了将系统中的作业组织起来,需要为每个进入系统的作业建立档案以记录和作业相关的信息,例如,作业名、作业所需资源、作业执行时间、作业进入系统的时间、作业信息在存储器中的位置、指向下一个作业控制块的指针等信息。这个记录作业相关信息的数据块称为作业控制块(JCB ),并将系统中等待作业调度的作业控制块组织成一个队列,这个队列称为后备队列。当进行作业调度时,从后备队列中查找选择作业。

由于实验中没有实际作业,作业控制块中的信息内容只使用了实验中需要的数据。作业控制块中首先应该包括作业名;其次是作业所需资源(内存大小、打印机的数量和磁带机的数量);采用响应比高者优先作业调度算法,为了计算响应比,还需要有作业的估计执行时间、作业在系统中的等待时间;另外,指向下一个作业控制块的指针必不可少。实验中,作业控制块及队列的数据结构定义如下:

struct task {

}JCB[10];

存放作业控制块的区域:

#define n 10

JCB jobtable[10];

int jobcount; 将作业控制块组织成一个队列,实验中采用静态链表的方式模拟作业的后备队列,作业队列头指针定义为:int *head;实验中,内存采用可移动的动态分区管理方法,即只要内存空闲区总和比作业大就可以满足作业对内存的需求;对打印机和磁带机这两种独占设备采用静态分配法,即作业执行前必须获得所需资源,并且执行完才归还。

采用响应比高者优先调度算法进行调度时,必须计算出系统中所有满足必要条件作业的响应比,从中选择响应比最高的一个作业装入主存储器分配资源。由于是实验,所以就将作业控制块出队,并输出作业名代替装入处存储器,同时修改系统的资源数量。

四、源程序#include

#include

#include

#include

#include

#include

typedef char string[10]; /* //定义string为含有10个字符元素的字符数组类型*/

struct task {

string name; /*作业号*/

int arrTime; /* 作业到达时间*/

int serTime; /*作业要求服务时间*/

int waiTime; /*等待时间*/

int begTime; /*开始运行时间*/

int finTime; /*结束运行时间*/

int turTime; /*周转时间*/

int wTuTime; /*带权周转时间*/

int priority;/*优先权*/

int finish;/*是否已经完成*/

}JCB[10];

int num;

void input()

{

int i;

system("cls");

printf("\n请输入作业数量: ");

scanf("%d", &num);

for(i=0;i

{

printf("\n请输入作业 NO.%d:\n",i);

printf(" 作业名称: ");

scanf("%s",JCB[i].name);

printf(" 到达时间: ");

scanf("%d",&JCB[i].arrTime);

print

c语言链表最高响应比优先,操作系统--最高响应比优先调度算法实验报告..doc相关推荐

  1. 操作系统形考实验linux,电大操作系统网上形考任务04 实验报告.doc

    电大操作系统网上形考任务04 实验报告 电大 教师评语 教师签字 日期成绩学生姓名学 号班 级分 组项目编号OS-1项目名称Linux系统安装实验实验报告一.实验目的和实验要求 1.实验目的: 学会在 ...

  2. 实验三银行家算法linux,操作系统原理与linux_银行家算法实验报告.doc

    . . . PAGE 成 绩 评 阅 人 评阅日期 计算机科学与技术系 实 验 报 告 课程名称: 操作系统原理与linux 实验名称: 银行家算法 2011年 04 月 实验三 银行家算法 一.实验 ...

  3. 数据结c语言约瑟夫环实验报告,数据结构约瑟夫环实验报告.doc

    数据结构约瑟夫环实验报告.doc 数据结构与算法设计约瑟夫环实验报告实验一专业物联网工程班级物联网1班学号15180118姓名刘沛航一. 实验目的 1.熟悉VC环境,学习使用C语言利用链表的存储结构解 ...

  4. 课程linux实验报告,Linux操作系统课程实验报告.doc

    Linux操作系统课程实验报告.doc Linux操作系统课程实验报告班级姓名学号指导老师田丽华完成时间2014年7月目录一.实验目的1二.实验要求1三.实验内容1[第一题]1[第二题]2[第三题]4 ...

  5. c语言学生档案管理课设作业,2019-2020年c语言课程设计学生档案管理系统实验报告.doc...

    2019-2020年c语言课程设计学生档案管理系统实验报告.doc 还剩 10页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲,喜欢就下载吧,价低环保! 内容要点: *********C 语 ...

  6. C语言生产者消费者实验报告,生产者与消费者实验报告.doc

    生产者与消费者实验报告.doc 生产者和消费者实验报告[实验目的]1. 加深对进程概念的理解,明确进程和程序的区别.2. 进一步认识并发执行的实质.3. 验证用信号量机制实现进程互斥的方法.4. 验证 ...

  7. c语言程序运行环境实验报告,程序的运行环境实验报告.doc

    程序的运行环境实验报告.doc 院:数学与计算机学院学 院:数学与计算机学院 学 姓 学 专 班 <C语言程序设计> 课程实验报告(第1次) 名: 号: 业:软件工程 同组人: 实验地点: ...

  8. 周信东c语言实验二实验报告,周信东主编最新版C语言程序设计基础实验一实验报告.doc...

    周信东主编最新版C语言程序设计基础实验一实验报告.doc 下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览.不比对内容而直接下载带来的问题本站不予受理. 2.下载的文档,不会出现我 ...

  9. c语言四则运算实验报告,c语言四则运算实验报告.doc

    c语言四则运算实验报告.doc 课程编号 1300050027 得分教师签名批改日期深 圳 大 学 实 验 报 告课程名称 C语言实验 实验名称 100以内的四则运算游戏 学 院 信息工程学院 指导教 ...

最新文章

  1. 姍姍遲來的iPhone文檔處理功能
  2. Install KVM Hypervisor on arrch64 Linux Server
  3. 锻造「明星产品」的艺术与科学,在于取舍【附乔布斯张小龙的产品设计原则】...
  4. Facebook 最新力作 FBNetV3来了!相比 ResNeSt 提速 5 倍,精度不输 EfficientNet
  5. 【Elasticsearch】Elasticsearch-Hadoop打通Elasticsearch和Hadoop
  6. golang 判断时间是否是 rfc3339_[Golang实现JVM第一篇] 知识准备amp;前言
  7. 企业家的“智慧”和“仁人”
  8. 客户关系管理之会员管理
  9. CSS总结---持续更新中 2022.8.4
  10. Android Design - 设计风格
  11. 今日头条如何快速开原创?今日头条怎么一个礼拜开原创?
  12. jquery form自动绑定表单内容
  13. 领域驱动设计(DDD)
  14. 微信分享解决wx not defined
  15. 【Java】接口与继承
  16. linux系统查看IP地址,不显示IP地址或者只显示127.0.0.1
  17. 三类机构舆情-2019年3月5日
  18. 用python的turtle库画QQ表情
  19. Untiy添加双鼠标功能记录
  20. 笔记本wifi只剩下飞行模式

热门文章

  1. 计算机如何表示色彩?
  2. HJ107 二分法求求解立方根
  3. 2022-2028年中国PPS树脂产业研究及前瞻分析报告
  4. Box2d 基础入门知识
  5. STL库(C++11)提供的异步执行方法的方式
  6. SpringCloud Alibaba 微服务架构版本说明
  7. Android线程池简单使用
  8. 2021年大数据常用语言Scala(十九):基础语法学习 iterator迭代器
  9. CSS grid 的用法
  10. Python数据挖掘1:创建一位数组和二维数组,取最大最小值,切片