OS实验报告--FCFS算法 - 13王泽锴

wangzekai 2021-08-21 原文


OS实验报告–FCFS算法


实验二、作业调度模拟实验

专业:商业软件工程  姓名:王泽锴 学号:201406114113

一、实验目的

(1)加深对作业调度算法的理解;

(2)进行程序设计的训练。

二、实验内容和要求

(1)实验要求

  用高级语言编写一个或多个作业调度的模拟程序。

  单道批处理系统的作业调度程序。作业一投入运行,它就占有计算机的一切资源直到作业完成为止,因此调度作业时不必考虑它所需要的资源是否得到满足,它所运行的时间等因素。

(2)实验内容

  根据指定的实验课题,完成设计、编码和调试工作,完成实验报告。

三、实验方法、步骤及结果测试

1.     源程序名:4.cpp         可执行程序名4.exe

2.     原理分析及流程图

  

3.     主要程序段及其解释:、

void FCFS()
{

    //调用输入函数
    base();

    int i,j,k = 0;
    int temp[100];
    for(i=0;i<num;i++)
        temp[i]=i;

    //按作业到达时间进行排序
    for(i=0;i<num;i++){
        for(j=i+1;j<num;j++){
            if(job[temp[i]].arrtime>job[j].arrtime){
                k = temp[i];
                temp[i] = temp[j];
                temp[j] = k;
            }
        }
    }

    //计算周转时间、带权周转时间
    job[temp[0]].startime = job[temp[0]].arrtime;
    job[temp[0]].finitime = job[temp[0]].startime + job[temp[0]].reqtime;
    job[temp[0]].TAtime = (float)job[temp[0]].finitime - job[temp[0]].arrtime;
    job[temp[0]].TAWtime = job[temp[0]].TAtime/job[temp[0]].reqtime;
    for(i=1;i<num;i++){
        job[temp[i]].startime = job[temp[i-1]].finitime;
        job[temp[i]].finitime = job[temp[i]].startime + job[temp[i]].reqtime;
        job[temp[i]].TAtime = (float)job[temp[i]].finitime - job[temp[i]].arrtime;
        job[temp[i]].TAWtime = job[temp[i]].TAtime/job[temp[i]].reqtime;
    }

    printf("经按到达时间排序后,未达到队列是\n");
    printf("作业名  到达时间  CPU所需时间  开始时间  结束时间  周转时间  带权周转时间\n");

    //输出相关内容
    for(i=0;i<num;i++)    
    {
        printf("  %s\t   %d\t\t%d\t  %d\t    %d\t   %f\t   %f\n",job[temp[i]].name,job[temp[i]].arrtime,
            job[temp[i]].reqtime,job[temp[i]].startime,job[temp[i]].finitime,job[temp[i]].TAtime,job[temp[i]].TAWtime);
    }
    
    //计算平均周转时间、平均带权周转时间
    for(i=0;i<num;i++)
    {
        AVGTAtime += job[temp[i]].TAtime;
        AVGTAWtime += job[temp[i]].TAWtime;
    }

    printf("\n\n平均周转时间=%f\n",AVGTAtime/num);
    printf("平均带权周转时间=%f\n\n",AVGTAWtime/num);
}

 

4.     运行结果及分析

实验分析:实验结果与预期的一致,对于输出内容也进行了测试,也与结果一致。

四、实验总结

    FCFS算法相对比较容易实现,主要是先到先服务,只要按照到达时间进行排序,然后计算周转时间,带权周转时间,就能很简单的计算出平均周转时间,平均带权周转时间。

 

发表于
2016-04-15 12:48 
13王泽锴 
阅读(991
评论(0
编辑 
收藏 
举报

 

版权声明:本文为wangzekai原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/wangzekai/p/5395000.html

OS实验报告--FCFS算法 - 13王泽锴的更多相关文章

  1. 简/繁体互相转换 – ξσ Dicky σξ

    简/繁体互相转换 简/繁体互相转换 代码如下: <html> <head> <t […]...

  2. java-GUI图形用户界面 – Spirit桥

    java-GUI图形用户界面 图形用户界面GUI(Graphical User Interface),指的是在 […]...

  3. 拉仇恨!webhook + 企业微信给同事做了个代码提交监听工具

    本文案例收录在 https://github.com/chengxy-nds/Springboot-Noteb […]...

  4. Calendar类的简单使用 – /***/

    Calendar类的简单使用 Calendar类的简单使用:   1.获取当前时间日期: Calendar c […]...

  5. 字节/字符缓冲流 – 提高效率

    字节缓冲流 缓冲流可以提高效率,基本原理是在创建对象时,会创建一个内置的默认大小的缓冲区数组,通过缓冲区读写, […]...

  6. 网上商城 – 小嫣蕊~

    网上商城 网上商城客户端首页:http://localhost:8080 网上商城后台首页:http://lo […]...

  7. Xshell — SSH无法连接linux服务器的几个坑

    莫名其妙的ssh就连接不上服务器了,明明之前还是好用的呢,就简单的提示如下: ​ 图1 连接失败提示  1、看 […]...

  8. 51单片机指令详解 – Real-Ying

    51单片机指令详解                                               […]...

随机推荐

  1. Android之Handler机制 – 涛涛的小马甲

    Android之Handler机制 首先需要了解一个基本的概念ANR:Application not resp […]...

  2. 百度前端学院参考答案:第二十五天到第二十七天 倒数开始 滴答滴 滴答滴(2)

    编码 现在我们要做一个稍微复杂的东西,如下HTML,有一堆Select用于选择日期和时间,在选择后,实时在 i […]...

  3. ABAP内表导出为EXCEL格式的几种方法

     这是一篇转载文章,本人修改了其中的几个错字病句 内表数据下载到EXCEL的几种方法 本文链接:https:/ […]...

  4. 从零开始学习前端开发 — 1、HTML基础

    一、web标准 web标准-网页制作的标准,它是由一系列标准组成的,主要包含三个方面:结构(html,xhtm […]...

  5. 蓝牙5系列SoC芯片NRF52820/NRF52840替代nrf52833 – qq2355239039

    蓝牙5系列SoC芯片NRF52820/NRF52840替代nrf52833    nRF52820包括多达18 […]...

  6. 设计模式成长记(一) 抽象工厂模式(Abstract Factory)

    目录 定义 UML类图 参与者 编写代码 特点   定义 提供一个创建一系列相关或相互依赖的对象的接口,而无需 […]...

  7. macbook pro 16 不要使用硬壳保护壳

    最近买了 新出的macbook pro 16,   为了保护机子淘宝购买了这种硬壳         图片可能比 […]...

  8. python自动化测试(2)-自动化基本技术原理

    python自动化测试(2) 自动化基本技术原理 1   概述 在之前的文章里面提到过:做自动化的首要本领就是 […]...

展开目录

目录导航