操作系统进程调度先来先服务FCFS

       

一,实验的流程图

图片来自豆丁

二,实验代码

注:本代码主要来自豆丁,加入本人的部分修改。。//本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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/427578.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何给SAP Cloud Connector Region列表中添加新的Region

SAP help里提供了CloudFoundry和Neo环境下可用的Region和API endpoint&#xff1a; 当我们期望用SAP Cloud Connector连接某个SAP云平台Region时&#xff0c;一般是从F4 value help里选择&#xff1a; 如果drop down list里没有我们希望使用的region怎么办&#xff1f; 解决方案…

CUDA从入门到精通

CUDA从入门到精通&#xff08;零&#xff09;&#xff1a;写在前面在老板的要求下&#xff0c;本博主从2012年上高性能计算课程开始接触CUDA编程&#xff0c;随后将该技术应用到了实际项目中&#xff0c;使处理程序加速超过1K&#xff0c;可见基于图形显示器的并行计算对于追求…

Eigen C++开源矩阵计算工具——Eigen的简单用法

Eigen非常方便矩阵操作&#xff0c;当然它的功能不止如此&#xff0c;由于本人只用到了它的矩阵相关操作&#xff0c;所以这里只给出了它的一些矩阵相关的简单用法&#xff0c;以方便快速入门。矩阵操作在算法研究过程中&#xff0c;非常重要&#xff0c;例如在图像处理中二维高…

删除苹果自带软件后果_苹果IOS备忘录便签软件敬业签恢复删除内容应该怎么操作?...

敬业签是一款功能比较全面的苹果手机桌面备忘录便签软件&#xff0c;主要功能包括&#xff1a;云储存、多端云同步、提醒待办事项、时间管理、标记已完成、月视图和时间轴等。在使用苹果IOS备忘录便签软件敬业签的时候&#xff0c;如果不小心误删了内容&#xff0c;要想恢复的话…

OpenCV 获取摄像头并显示摄像头视频

OpenCV 获取摄像头&#xff0c;新建窗口显示摄像头视频 结合Leaning OpenCV 第二个例子 显示一个视屏文件 写了一下 获取摄像头的代码为并且创建窗口显示的代码为&#xff1a;#include "stdafx.h"#include <cv.h>#include <cxcore.h>#include <highg…

ubuntu安装提醒写入失败 没有启动项_手把手教你如何安装windo10+Ubuntu18.10双系统...

踩坑经历以前一直都是用win10系统在自己的电脑上开发&#xff0c;在公司也都是用Ubuntu系统&#xff0c;现在想在自己的笔记本上安装一个Ubuntu系统&#xff0c;所以就想着在不用重装系统的情况下&#xff0c;装一个Ubuntu系统&#xff0c;所以就准备装一个双系统&#xff0c;安…

图像处理常用边缘检测算子总结

不同图像灰度不同&#xff0c;边界处一般会有明显的边缘&#xff0c;利用此特征可以分割图像。需要说明的是&#xff1a;边缘和物体间的边界并不等同&#xff0c;边缘指的是图像中像素的值有突变的地方&#xff0c;而物体间的边界指的是现实场景中的存在于物体之间的边界。有可…

微信开发者工具 wxmi修改模版颜色_网站建设公司讲解:微信小程序的开发者工具界面...

网站建设公司深圳市博纳网络信息技术有限公司()讲解&#xff1a;微信小程序的开发者工具界面创建项目后&#xff0c;进入到微信开发者工具界面&#xff0c;界面大致可以分为6个区域&#xff1a;①菜单栏区域&#xff0c;②模拟器、编辑器、调试器显示与隐藏区域&#xff0c;③模…

【微信小程序】数组操作

Page({data: {list:[{id:1,name:应季鲜果,count:1},{id:2,name:精致糕点,count:6},{id:3,name:全球美食烘培原料,count:12},{id:4,name:无辣不欢生猛海鲜,count:5}]} }) 一、向前向后新增数组 //假设这一段是我们要新增的数组 var newarray [{id:5,name:向后增加数据--new Dat…

cocos 禁掉快速点击_win10系统快速运行debug程序的技巧

win10系统快速运行debug程序的技巧dosBox和程序对很多用户来说都是非常陌生的&#xff0c;其中debug对用户来说亦是如此&#xff0c;其实debug程序是开发工具中的一种&#xff0c;作为系统中预装的开发工具在系统中存在自然会有它的用处。但是在平时需要使用的时候并没有快速能…

带孩子们做环球旅行的读后感_父母带孩子做心理咨询,需要注意哪些事项?

最近&#xff0c;带孩子来做心理咨询的父母接踵而至&#xff0c;但是很多时候&#xff0c;父母可能无意识会有一些影响心理咨询与治疗的效果的行为&#xff0c;对于他们来说&#xff0c;可能需要注意这几点&#xff1a;1、守时心理咨询需要精力与时间&#xff0c;一般咨询师为了…

OpenCV函数cvFindContours

提取轮廓在OpenCV里有一个函数 cvFindContours&#xff1a;int cvFindContours( CvArr* image, CvMemStorage* storage, CvSeq** first_contour,int header_sizesizeof(CvContour),int modeCV_RETR_LIST,int methodCV_CHAIN_APPROX_SIMPLE, CvPoint offsetcvPoint(0,0) );这个函…

消息队列控制灯代码_代码实现RabbitMQ死信队列的创建

‍‍前言&#xff1a;‍‍之前有写过死信队列的使用场景以及通过管控台创建死信。这次就通过代码实现死信队列的创建&#xff0c;同时也分享一下RabbitMQ封装的类。准备&#xff1a;1. 先准备一个死信队列(最后用来消费)的参数配置&#xff0c;包括虚拟机&#xff0c;交换机&am…

平板电脑可以插u盘吗_电视TV盒子安装app的六个方法,u盘/电脑/手机都可以安装...

点击上方蓝字 关注我们首先&#xff0c;要看盒子是否支持安装第三方app&#xff0c;这期只讲支持第三方app安装的安卓系统盒子&#xff0c;iOS盒子不讲。怎么看电视盒子能不能安装第三方&#xff1f;很简单&#xff0c;方法很多&#xff0c;最常见就是用装有apk文件的u盘连接盒…

drive es 软件兼容_某知名软件被完美修改!对不住了!

⭐星标Or 置顶⭐右上角三点-设为星标(置顶)今天给大家介绍两款超好用的免费神器&#xff01;支持&#xff0c;请点亮文章底部“在看” ?搜图神器绿化版安卓 / 9M这是一款装机必备的搜图应用&#xff0c;支持图片搜索&#xff0c;百度识图&#xff0c;谷歌识图&#xff0c;拍照…

5g pdu session_运营商下架4G套餐,用户被5G!

近日&#xff0c;网上突然出现诸多报道&#xff0c;称三大运营商为了推广5G套餐&#xff0c;开始下架4G套餐&#xff0c;用户办理套餐时只能选择价格相对较高的5G套餐。看到这些报道很多网友坐不住了&#xff0c;这难道要倒逼用户改用5G吗&#xff1f;要知道&#xff0c;三大运…

OpenCV图像处理形态学操作腐蚀Erode与膨胀Dilate

通俗的说&#xff1a;膨胀算法使图像扩大一圈。腐蚀算法使二值图像减小一圈。腐蚀&#xff1a;删除对象边界的某些像素膨胀&#xff1a;给图像中的对象边界添加像素算法&#xff1a;从图像处理角度看&#xff0c;二值图像的腐蚀和膨胀就是将一个小型二值图&#xff08;结构元素…

台达asda-b2伺服驱动器说明书_台达解决方案提升粉末冶金液压机的控制精度

项目背景粉末冶金液压机是一种利用液体压力来传递能量&#xff0c;实现各种压力加工工艺的机床&#xff0c;适用于各种金属及非金属粉末的压制成形&#xff0c;如铁基、铜基、钨、钛、锰、硼等。某生产企业所应用的粉末冶金液压机采用以台达油电伺服驱动器VFD-VJ系列为核心的控…

常州win8如何禁用应用商店_Win8系统当中Windows defnedder安全软件应该如何禁用?...

Win8系统如何禁用defender&#xff1f;Windows defender安全软件但是win8系统自带的&#xff0c;但有时该软件也会与其他软件发生冲突&#xff0c;那么这个时候应该如何禁用Windows defender安全软件呢&#xff1f;接下来就为大家分享win8系统禁用defender的操作方法。操作方法…

Django 的工程创建

1.环境安装 1. 创建虚拟环境 mkvirtualenv django_py3_1.11 -p python3注意需要联网 2. 安装Django 使用django 1.11.11版本&#xff0c;注意需要联网 pip install django1.11.113. 复习虚拟环境和pip的命令 # 虚拟环境 mkvirtualenv # 创建虚拟环境 rmvirtualenv # 删除虚拟…