一、实验目的
在批处理系统、分时系统和实时系统中,进程数目一般都大于处理机的个数,导致各个进程互相争夺处理机。这就需要进程调度程序按照相应的调度方式和调度算法,从处于就绪状态的诸多进程中选择一个进程将处理机分配给它,使之执行。
本实验利用高级语言编写和调试进程调度程序,模拟进程调度的过程,从而加深对进程概念和进程调度算法的理解,帮助学生加深了解处理器调度的工作。

二、实验内容
1. 设计有五个进程并发执行的模拟调度程序,每个程序由一个PCB表示。
2. 模拟调度程序可任选两种调度算法实现。
3. 程序执行中应能在屏幕上显示出各种进程的状态变化。
4. 实验过后书写实验报告。

三、实验方法
算法一:先来先服务(First Come First Served,FCFS)调度算法

  1. 算法设计思路

    因为先来先服务调度算法只考虑每个作业的到达时间,所以我们将所有作业的到达时间进行排序,然后依次进行作业即可

  2. 程序中主要的数据结构和函数说明
    程序主要使用了c++标准模板库中的sort排序函数,其中自定义了compare比较函数,并以每个作业的到达时间为关键字从小到大排序

  3. 主要模块
    因为算法比较简单,除了compare比较函数外,其余的内容我都包含在主函数中,主要有数据的输入,对数据的处理和计算以及数据的输出三块内容

四、源程序代码

#include"iostream"
#include"algorithm"
using namespace std;struct node{string name;double arr;   //到达时间double ing;   //运行时间
}ai[100];bool compare(node a,node b)
{return a.arr<b.arr;
}int main()
{int n;cout<<"请输入进程个数:";cin>>n;cout<<"请输入"<<n<<"个进程的名字、到达时间、运行时间"<<endl;for(int i=0;i<n;i++){cin>>ai[i].name>>ai[i].arr>>ai[i].ing;}sort(ai,ai+n,compare);cout<<"进程名 \t到达时间\t运行时间\t开始时间\t结束时间\t周转时间\t带权周转时间"<<endl;double sta=ai[0].arr;for(int i=0;i<n;i++){double jiesu=sta+ai[i].ing;double zhouz=jiesu-ai[i].arr;double Dzhouz=zhouz/ai[i].ing;cout<<endl;cout<<ai[i].name<<"\t";cout<<ai[i].arr<<"\t\t";cout<<ai[i].ing<<"\t\t";cout<<sta<<"\t\t";cout<<jiesu<<"\t\t";cout<<zhouz<<"\t\t";cout<<Dzhouz<<endl;sta=jiesu>ai[i+1].arr?jiesu:ai[i+1].arr;}
}

五、程序运行结果及分析
1. 运行结果

2. 结果分析
与预期的结果一致,初步认定算法实现

先来先服务(First Come First Served,FCFS)调度算法相关推荐

  1. 优先级结合时间片轮转算法c语言,先来先服务/段作业优先/时间片轮转/优先级调度算法详解...

    先来先服务调度算法 先来先服务(First Come First Served,FCFS),是一种简单的调度算法,它既适用于作业调度,也适用于进程调度.先来先服务算法是按照作业或进程到达的先后次序来进 ...

  2. fcfs调度算法_FCFS:先来先服务调度算法

    fcfs调度算法 The FCFS, which stands for First Come First Serve Scheduling Algorithm, is a non-preemptive ...

  3. FCFS调度算法(操作系统)先来先服务

    FCFS调度算法(FCFS,First Come First Serve) 算法思想: 主要从"公平的角度考虑"(类似于我们生活中排队买东西) 算法规则: 按照作业/进程到达的先后 ...

  4. 操作系统实验 作业调度算法 先来先服务FCFS调度算法

    作业调度算法 先来先服务FCFS调度算法 作业调度的原理: 非抢占调度 把作业从外存调入内存 作业调度算法: 先来先服务FCFS 短作业优先SJF 静态优先级调度 高响应比优先调度 实验原理 作业调度 ...

  5. fcfs调度算法_C / C ++程序用于先到先得(FCFS)调度算法

    fcfs调度算法 Here you will get C/C++ program for first come first served (fcfs) scheduling algorithm. 在这 ...

  6. FCFS调度算法与SJF调度算法(C语言实现)

    FCFS调度算法的思想就是谁先来就谁先受到服务,这与餐厅排队买饭是一个道理. SJF调度算法是谁的服务时间短谁就先来.(举个例子,一个人山人海的餐厅里,都在那抢饭吃,很混乱,没人排队,谁吃的快谁就先吃 ...

  7. C++实现FCFS调度算法

    前言 : 最近刚开始学操作系统,刚好要做实验便记录一下实验内容,首先要理解FCFS的基本概念,它是以提交时间为核心的一种调度算法 基本思路: 题目已知提交时间与运行时间要我们得出所有作业的开始.完成. ...

  8. 先来先服务和高响应比优先调度算法C语言实现

    先来先服务和高响应比优先调度算法C语言实现 目录: 1.进程调度与作业调度的区别: 2.单道批处理系统与多道批处理系统的区别: 3.程序设计用到的公式: 4.高响应比优先算法特点: 5.源代码示例: ...

  9. 模拟FCFS调度算法(先来先服务)没错,是篇好文章!

    文章目录 一.FCFS的介绍 二.代码演示 三.代码分析 1.使用节点模拟进程 2.SimulateFCFS(核心模拟FCFS类) 3.创建一个节点为n的队列(模拟就绪队列) 4.核心计算分析 5.输 ...

  10. 先来先服务(FCFS)调度算法(Java实现)

    文章目录 前言 一.先来先服务(FCFS)是什么? 二.先来先服务(FCFS)算法分析 三.实现代码 1.作业数据类 2.作业调度类 3.运行结果 总结 前言 在操作系统中作业调度的主要任务是根据PC ...

最新文章

  1. openjdk需要自己添加cacerts,
  2. VC6.0加载lib文件的三种方法
  3. 6.4 Ext.core.DomQuery 单实例查询选择器,通过正则表达式查找DOM或者HTM
  4. AI 领域一大进展:“分布式”和“深度学习”真正深度融合
  5. 吸电流、拉电流、灌电流、上拉电阻、下拉电阻、高阻态等基础知识普及
  6. markdown语法中的空格_Markdown实用技巧-基础语法
  7. 超好用的自动化测试工具——Python脚本
  8. 六自由度机械臂的正运动学解with RTB
  9. freeswitch安装
  10. 为什么Eclipse Iceoryx使用Helix QAC
  11. 合并两个有序表(C语言)
  12. edge浏览器打开html文件路径被拆分,Edge浏览器显示网页排版错位
  13. 电脑桌面云便签软件怎么显示最小化按钮?
  14. 编译安装httpd服务
  15. 安信可ESP32-CAM摄像头开发demo--广域网远程实时查看视频流
  16. 最常用的开源游戏引擎
  17. OPPO出货量超越苹果跻身全球第四,直逼小米
  18. CrowdHuman数据集介绍
  19. html5 放风筝,萧山5个放风筝绝佳地
  20. MySQL第三方客户端工具

热门文章

  1. Excel poi API基础教程!
  2. Word 2019中公式不能自动斜体的解决方法
  3. 东南大学计算机程光,东南大学计算机科学与工程学院硕导:程光
  4. STM32f10x晶振及系统时钟频设置
  5. 人类使用AI征服太空技术盘点,《星球大战》中的机器人会成为现实吗?
  6. DBUtils工具类实现增删改查
  7. 【Exception】Navicat连接Oracle闪退 Navicat连接Oracle 报错:connection to server failed,probable Oracle Net admi
  8. 逆向课程第四讲逆向中的优化方式,除法原理,以及除法优化上
  9. 惯导1-哥氏定理理解
  10. Mac查看JDK路径