日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

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

發布時間:2023/12/10 windows 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 操作系统进程调度先来先服务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

總結

以上是生活随笔為你收集整理的操作系统进程调度先来先服务FCFS的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。