先来先服务(First Come First Served,FCFS)调度算法
一、实验目的
在批处理系统、分时系统和实时系统中,进程数目一般都大于处理机的个数,导致各个进程互相争夺处理机。这就需要进程调度程序按照相应的调度方式和调度算法,从处于就绪状态的诸多进程中选择一个进程将处理机分配给它,使之执行。
本实验利用高级语言编写和调试进程调度程序,模拟进程调度的过程,从而加深对进程概念和进程调度算法的理解,帮助学生加深了解处理器调度的工作。
二、实验内容
1. 设计有五个进程并发执行的模拟调度程序,每个程序由一个PCB表示。
2. 模拟调度程序可任选两种调度算法实现。
3. 程序执行中应能在屏幕上显示出各种进程的状态变化。
4. 实验过后书写实验报告。
三、实验方法
算法一:先来先服务(First Come First Served,FCFS)调度算法
算法设计思路
因为先来先服务调度算法只考虑每个作业的到达时间,所以我们将所有作业的到达时间进行排序,然后依次进行作业即可
程序中主要的数据结构和函数说明
程序主要使用了c++标准模板库中的sort排序函数,其中自定义了compare比较函数,并以每个作业的到达时间为关键字从小到大排序主要模块
因为算法比较简单,除了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)调度算法相关推荐
- 优先级结合时间片轮转算法c语言,先来先服务/段作业优先/时间片轮转/优先级调度算法详解...
先来先服务调度算法 先来先服务(First Come First Served,FCFS),是一种简单的调度算法,它既适用于作业调度,也适用于进程调度.先来先服务算法是按照作业或进程到达的先后次序来进 ...
- fcfs调度算法_FCFS:先来先服务调度算法
fcfs调度算法 The FCFS, which stands for First Come First Serve Scheduling Algorithm, is a non-preemptive ...
- FCFS调度算法(操作系统)先来先服务
FCFS调度算法(FCFS,First Come First Serve) 算法思想: 主要从"公平的角度考虑"(类似于我们生活中排队买东西) 算法规则: 按照作业/进程到达的先后 ...
- 操作系统实验 作业调度算法 先来先服务FCFS调度算法
作业调度算法 先来先服务FCFS调度算法 作业调度的原理: 非抢占调度 把作业从外存调入内存 作业调度算法: 先来先服务FCFS 短作业优先SJF 静态优先级调度 高响应比优先调度 实验原理 作业调度 ...
- fcfs调度算法_C / C ++程序用于先到先得(FCFS)调度算法
fcfs调度算法 Here you will get C/C++ program for first come first served (fcfs) scheduling algorithm. 在这 ...
- FCFS调度算法与SJF调度算法(C语言实现)
FCFS调度算法的思想就是谁先来就谁先受到服务,这与餐厅排队买饭是一个道理. SJF调度算法是谁的服务时间短谁就先来.(举个例子,一个人山人海的餐厅里,都在那抢饭吃,很混乱,没人排队,谁吃的快谁就先吃 ...
- C++实现FCFS调度算法
前言 : 最近刚开始学操作系统,刚好要做实验便记录一下实验内容,首先要理解FCFS的基本概念,它是以提交时间为核心的一种调度算法 基本思路: 题目已知提交时间与运行时间要我们得出所有作业的开始.完成. ...
- 先来先服务和高响应比优先调度算法C语言实现
先来先服务和高响应比优先调度算法C语言实现 目录: 1.进程调度与作业调度的区别: 2.单道批处理系统与多道批处理系统的区别: 3.程序设计用到的公式: 4.高响应比优先算法特点: 5.源代码示例: ...
- 模拟FCFS调度算法(先来先服务)没错,是篇好文章!
文章目录 一.FCFS的介绍 二.代码演示 三.代码分析 1.使用节点模拟进程 2.SimulateFCFS(核心模拟FCFS类) 3.创建一个节点为n的队列(模拟就绪队列) 4.核心计算分析 5.输 ...
- 先来先服务(FCFS)调度算法(Java实现)
文章目录 前言 一.先来先服务(FCFS)是什么? 二.先来先服务(FCFS)算法分析 三.实现代码 1.作业数据类 2.作业调度类 3.运行结果 总结 前言 在操作系统中作业调度的主要任务是根据PC ...
最新文章
- openjdk需要自己添加cacerts,
- VC6.0加载lib文件的三种方法
- 6.4 Ext.core.DomQuery 单实例查询选择器,通过正则表达式查找DOM或者HTM
- AI 领域一大进展:“分布式”和“深度学习”真正深度融合
- 吸电流、拉电流、灌电流、上拉电阻、下拉电阻、高阻态等基础知识普及
- markdown语法中的空格_Markdown实用技巧-基础语法
- 超好用的自动化测试工具——Python脚本
- 六自由度机械臂的正运动学解with RTB
- freeswitch安装
- 为什么Eclipse Iceoryx使用Helix QAC
- 合并两个有序表(C语言)
- edge浏览器打开html文件路径被拆分,Edge浏览器显示网页排版错位
- 电脑桌面云便签软件怎么显示最小化按钮?
- 编译安装httpd服务
- 安信可ESP32-CAM摄像头开发demo--广域网远程实时查看视频流
- 最常用的开源游戏引擎
- OPPO出货量超越苹果跻身全球第四,直逼小米
- CrowdHuman数据集介绍
- html5 放风筝,萧山5个放风筝绝佳地
- MySQL第三方客户端工具
热门文章
- Excel poi API基础教程!
- Word 2019中公式不能自动斜体的解决方法
- 东南大学计算机程光,东南大学计算机科学与工程学院硕导:程光
- STM32f10x晶振及系统时钟频设置
- 人类使用AI征服太空技术盘点,《星球大战》中的机器人会成为现实吗?
- DBUtils工具类实现增删改查
- 【Exception】Navicat连接Oracle闪退 Navicat连接Oracle 报错:connection to server failed,probable Oracle Net admi
- 逆向课程第四讲逆向中的优化方式,除法原理,以及除法优化上
- 惯导1-哥氏定理理解
- Mac查看JDK路径