FCFS 先来先服务

/*
先来先服务FCFS

要求:
1>用结构体定义程序:程序号,优先数(到达时间),CPU运算所需时间

2>输入进程序列

3>按优先数高低排序输出
*/
#include<stdio.h>
#include<string.h>
#define N 100
typedef struct Time
{
int reachTime; //优先数(程序到达时间)
int runningTime; //CPU运算时间
}Time;

typedef struct Information
{
long ID; //程序号

Time pay;
}INF;

int n;
void readpay(INF p[]);
void DeSortbytheFirst(INF p[]);

void main() //主函数
{
INF p[N];
struct Time;
int sum=0;
int i;
// long number;
printf("请输入程序个数:(<100个)");
scanf("%d",&n);
readpay(p);
for(i=0;i<n;i++)
{
sum=sum+p[i].pay.reachTime+p[i].pay.runningTime;
}
printf("\n\n\t\t\t#####总周转时间为:%d毫秒#####\n\t\n",sum);
printf("\t\t\t#####按优先级高低排序输出#####\n\n");
DeSortbytheFirst(p);

}

void readpay(INF p[]) //1.输入程序资料
{
int i;
for(i=0;i<n;i++)
{
printf("\n\t请输入第%d个程序号:",i+1);
scanf("%ld",&p[i].ID);
printf("请输入第%d个程序的到达时间:",i+1);
scanf("\t%d",&p[i].pay.reachTime);
printf("请输入第%d个程序的CPU运算时间:",i+1);
scanf("\t%d",&p[i].pay.runningTime);

printf("\t\n%10ld %d\t%d\t\n 周转时间:%d\n",p[i].ID,p[i].pay.reachTime,p[i].pay.runningTime,p[i].pay.reachTime+p[i].pay.runningTime);

}
}

void DeSortbytheFirst(INF p[]) //2.按优先级高低排序输出
{
int i,j,k;
int All;
int a1,a2;
INF temp;

for(i=0;i<n-1;i++)
{
k=i;
for(j=i+1;j<=n;j++)
{
a1=p[i].pay.reachTime+p[i].pay.runningTime;
a2=p[j].pay.reachTime+p[j].pay.runningTime;
if(a1<a2)
{
temp=p[j];
p[j]=p[i];
p[i]=temp;
}
}
printf("\n\t按优先级高低排序为:\n");
printf("\n\t编号\t程序号\t到达时间\t运转时间\t\n");
for(k=0;k<n;k++)
{

All=p[k].pay.reachTime+p[k].pay.runningTime;
printf("\t%d%10ld\t%d\t\t%d\t\n",k+1,p[k].ID,p[k].pay.reachTime,All);
}

}

}

#####################################################

运行结果:

时间: 2024-10-06 21:27:22

FCFS 先来先服务的相关文章

FCFS,SJF(java实现)

1 import java.io.BufferedReader; 2 3 import java.io.InputStreamReader; 4 5 public class FCFSANDSJF { 6 7 private static int i; 8 9 private int j; 10 11 private int temp; 12 13 private int m[]; 14 15 private int n[]; 16 17 private int process_number;/

FCFS,SSTF,SCAN,FIFO,LRO考点题解

四.应用题 ( 本大题共5 小题,50 分 ) 1. 假设某系统中有五个进程,每个进程的执行时间(单位:ms)和优先数如下表所示(优先数越小,其优先级越高). 进程 执行时间 优先数 P1 P2 P3 P4 P5 10 1 2 1 5 3 1 5 4 2 如果在0时刻,各进程按P1.P2.P3.P4.P5的顺序同时到达,请回答以下问题:(12分) (1)当系统采用先来先服务调度算法时: 进程执行顺序是      p1 p2 p3 p4 p5      平均周转时间是  13.4ms (2)当系统

操作系统基础知识

操作系统的分类: 批处理操作系统.分时操作系统.实时操作系统.网络操作系统.分布式操作系统.个人计算机操作系统. 批处理操作系统: 优:资源共享,自动调度,提高了资源利用率和系统分吞吐量. 劣:无交互,周转时间较长. 多道批处理程序要处理的问题:同步互斥,内存大小,使用效率,内存保护 分时系统:联机多用户交互式操作系统,中断技术,时间片轮转 优:人机交互性好,共享主机 ,用户独立性 实时操作系统:联机系统,对外部请求能够在规定的时间内完成. 特点:有限等待 有限响应 用户控制 可靠性高 出错处理

作业调度模拟程序

13物联网 201306104132 柴铱琳 一. 实验目的 (1)加深对作业调度算法的理解: (2)进行程序设计的训练. 二. 实验内容和要求 用高级语言编写一个或多个作业调度的模拟程序. 单道批处理系统的作业调度程序.作业一投入运行,它就占有计算机的一切资源直到作业完成为止,因此调度作业时不必考虑它所需要的资源是否得到满足,它所运行的时间等因素. 作业调度算法: 1) 采用先来先服务(FCFS)调度算法,即按作业到达的先后次序进行调度.总是首先调度在系统中等待时间最长的作业. 2) 短作业优

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

实验二.作业调度模拟实验 物联网工程 张怡 201306104149 一.实验目的  (1)加深对作业调度算法的理解: (2)进行程序设计的训练. 二.实验内容和要求 1.至少用三种调度算法: 1) 采用先来先服务(FCFS)调度算法,即按作业到达的先后次序进行调度.总是首先调度在系统中等待时间最长的作业. 2) 短作业优先 (SJF) 调度算法,优先调度要求运行时间最短的作业. 3) 响应比高者优先(HRRN)调度算法,为每个作业设置一个优先权(响应比),调度之前先计算各作业的优先权,优先数高

调度算法

虚拟内存调度算法: 页面置换:在地址映射过程中,若在页面中发现所要访问的页面不再内存中,则产生缺页中断(page fault).当发生缺页中断时操作系统必须在内存选择一个页面将其移出内存,以便为即将调入的页面让出空间. OPT:最佳替换算法(optional replacement).替换下次访问距当前时间最长的页.opt算法需要知道操作系统将来的事件,显然不可能实现,只作为一种衡量其他算法的标准. LRU:最近最少使用(Least Recently Used).替换上次使用距离当前最远的页 F

操作系统 实验二 作业调度模拟程序

实验二.作业调度模拟程序 专业:商软一班   姓名:赖新耀 学号:201406114129 一.目的和要求 1. 实验目的 (1)加深对作业调度算法的理解: (2)进行程序设计的训练. 2.实验要求 用高级语言编写一个或多个作业调度的模拟程序. 单道批处理系统的作业调度程序.作业一投入运行,它就占有计算机的一切资源直到作业完成为止,因此调度作业时不必考虑它所需要的资源是否得到满足,它所运行的时间等因素.      作业调度算法: 1)        采用先来先服务(FCFS)调度算法,即按作业到

39 进程调度实验

一. 实验目的 1.用高级语言完成一个进程调度程序,以加深对进程的概念及进程调度算法的理解. 2.实验要求 3.设计一个有 N(N不小于5)个进程并发执行的进程调度模拟程序. 4.进程调度算法:“时间片轮转法”调度算法对N个进程进行调度. 二. 实验内容和要求 完成两个算法(简单时间片轮转法.多级反馈队列调度算法)的设计.编码和调试工作,完成实验报告. 1) 每个进程有一个进程控制块(PCB)表示.进程控制块包含如下信息:进程名.优先级.到达时间.需要运行时间.已用CPU时间.进程状态等等. 2

操作系统学习---进程管理(二)

要点: 基础:进程描述及控制 策略:进程调度 实现:互斥与同步 避免:死锁与饥饿 解决:几个经典问题 进程的引入 程序的顺序执行 源代码程序,目标程序和可执行程序 程序执行:编辑,编译,链接,执行 程序的结构:顺序,分支,循环结构 程序执行的特征:顺序性,封闭性,可再现性 程序并发执行 多道程序设计技术:多个程序并发执行 程序并发执行时的特征:间断性,非封闭性,不可再现性 并发执行引发的问题: 协调各程序的执行顺序:输入数据还未全部输入内存时,计算必须等待 多个执行程序共享系统资源,程序之间可能