一,实验的流程图

二,实验代码

注:本代码主要来自豆丁,加入本人的部分修改。。//本FCFS是用不带都结点的链表完成。当然也可以用其他数据结构 #include<stdio.h>#include<stdlib.h>typedef struct PCB      //定义进程控制块 {    char ID[3];         //进程号     char name[10];      //进程名     char state;         //运行状态     int arrivetime;     //进程到达时间     int servicetime;    //进程服务时间     int starttime;      //进程开始时间     int finishtime;     //进程完成时间     float turnaroundtime; //进程周转时间     float weightedturnaroundtime;  //进程带权周转时间     struct PCB *next;   //指向下一个进程的指针 }pcb;int time; //计时器int n;    //进程个数pcb *head=NULL,*p,*q; //进程的指针void run_fcfs(pcb *p1){    time=p1->arrivetime>time?p1->arrivetime:time;    p1->starttime=time;    printf("\n现在时间是%d,开始云行作业%s\n",time,p1->name);    time+=p1->servicetime;    p1->state='T';    p1->finishtime=time;    p1->turnaroundtime=p1->finishtime-p1->arrivetime;    p1->weightedturnaroundtime=p1->turnaroundtime/p1->servicetime;    printf("ID  到达时间  开始时间  服务时间  完成时间  周转时间  带权周转时间\n");    printf("%s%6d%10d%10d%8d%10.1f%10.2f\n",p1->ID,p1->arrivetime,p1->starttime,p1->servicetime,p1->finishtime, p1->turnaroundtime,p1->weightedturnaroundtime);  }  void find_fcfs() //寻找未完成的pcb{    int i,j;    p=head;    for(i=0;i<n;i++)    {        if(p->state=='F')        {            q=p; //用q指针把未完成的pcb"摘"下来             run_fcfs(q);         }        p=p->next;        }   } void found_fcfs() //获得进程信息并创建进程{    int num;    printf("\n进程个数为:");    scanf("%d",&n);    for(num=0;num<n;num++)    {        p=(pcb*)malloc(sizeof(pcb));        printf("请依次输入:\nID   进程名  到达时间  服务时间\n");        scanf("%s\t%s\t%d\t%d",&p->ID,&p->name,&p->arrivetime,&p->servicetime);        if(head==NULL)        {            head=p;q=p;time=p->arrivetime;        }        if(p->arrivetime<time) time=p->arrivetime;        q->next=p;        p->starttime=0;        p->finishtime=0;        p->turnaroundtime=0;        p->weightedturnaroundtime=0;        p->next=NULL;        p->state='F';        q=p;     }   }void main(){    printf("先来先服务模拟算法:");    found_fcfs();    p=head;    find_fcfs(); }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89

**

三,用于测验的结果:

**

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

操作系统进程调度先来先服务FCFS相关推荐

  1. 【操作系统 - 1】先来先服务FCFS和短作业优先SJF进程调度算法

    操作系统系列 学习至此,发现很多学了但很久没用的知识,久而久之,慢慢遗忘.等哪天还需要的话,却发现已经忘得差不多了,即使整理了文档(word等),还是得从头再学一遍.读研第一学期,发现很多东西都可以从 ...

  2. 操作系统-进程调度(FCFS和SJF)

    文章目录 进程调度(FCFS和SJF) 问题描述 实验环境 输入 输出 测试数据 实验设计 数据结构 函数的功能.参数和输出 主要函数算法设计 详细设计 流程图 实验结果与分析 结果展示与描述 结果分 ...

  3. 操作系统之文件管理:9、磁盘的结构与磁盘调度算法(先来先服务FCFS、最短寻找时间优先SSTF、扫描算法SCAN、循环扫描算法C-SCAN、LOOK调度算法、C-LOOK调度算法)

    9.磁盘的结构 磁盘结构 思维导图 磁盘.磁道.扇区.盘面.柱面 如何在磁盘中读/写数据? 磁盘的物理地址 一次磁盘读/写操作需要的时间 磁盘调度算法 1.先来先服务FCFS 2.最短寻找时间优先SS ...

  4. 《操作系统》实验一:先来先服务FCFS和短作业优先SJF进程调度算法

    [实验题目]:先来先服务FCFS和短作业优先SJF进程调度算法 [实验学时]:4学时 [实验目的] 通过这次实验,加深对进程概念的理解,进一步掌握进程状态的转变.进程调度的策略及对系统性能的评价方法. ...

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

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

  6. 操作系统之进程管理:6、调度算法(先来先服务FCFS、最短作业优先SJF、最高响应比优先HRRN、时间片轮转法、优先级调度、多级反馈队列)

    6.调度算法 适用于早期批处理机系统的调度算法 思维导图 1.先来先服务FCFS 2.最短作业优先SJF 非抢占式最短作业优先 抢占式最短作业优先(最短剩余时间优先算法) 注 3.最高响应比优先HRR ...

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

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

  8. c语言实现页面调度算法实验报告,c语言实现调度算法程序设计实验报告-先来先服务fcfs.docx...

    c语言实现调度算法程序设计实验报告-先来先服务fcfs 实验报告 <操作系统>课程综合性实验报告 课程设计报告 课程设计题目:先来先服务(FCFS)调度算法模拟 专业:计算机科学与技术班级 ...

  9. 操作系统:先来先服务调度算法以及短作业优先调度算法C语言实现

    FCFS(先来先服务)和SJF(短作业优先)调度算法 先来先服务(FCFS)调度算法是一种最简单的调度算法,该算法既可用于作业调度,也可用于进程调度.当在作业调度中采用该算法时,每次调度都是从后备作业 ...

最新文章

  1. 飞天茅台超卖事故:Redis分布式锁请慎用!
  2. mysql之 double write 浅析
  3. [BUUCTF-pwn]——pwnable_orw   (ORW)
  4. Layui中设置公共的全局变量接口
  5. SSAS系列——【02】多维数据(维度对象)
  6. P3242 [HNOI2015] 接水果(整体二分、扫描线、dfs序)
  7. Mysql案例5:取得平均薪资最高的部门的部门名称
  8. java 集成 kafka 0.8.2.1 适配jdk1.6
  9. 一款简单实用的桌面电子邮件客户端
  10. selenium+python学习总结-mac
  11. 实体框架提供程序类型无法加载?
  12. Python中的break和continue的使用方法
  13. java集群之间共享数据_多个JVM之间,数据共享的问题?
  14. 双缓冲-- double framebuffer
  15. centos安装php扩展imagick-高性能处理图片
  16. 第九届蓝桥杯单片机省赛题‘彩灯控制器’程序实现
  17. win7网络无法连接其他计算机,Win7局域网不能访问如何解决?
  18. 优酷 Android 包瘦身治理思路全解
  19. Ubuntu 20.04安装字体
  20. 聘用协议_聘用合同谈判

热门文章

  1. 对PostgreSQL中后台进程内存挂载的初步学习
  2. 浅析Java与C#的事件处理机制(转)
  3. c语言数组指定位置插入和删除_Apache POI在指定位置插入表格
  4. android下获取无线wif信号、ssid、MAC等操作类
  5. 构造函数内部原理 包装类
  6. mysql开启布隆过滤器_海量数据去重之布隆过滤器
  7. Oracle DMP 导入导出
  8. python寻找字符串中的英文字符,python如何解析字符串中出现的英文人名?
  9. 【软件开发底层知识修炼】六 Binutils辅助工具之- addr2line与strip工具
  10. Pycharm中运行Python代码的几种方式