操作系统进程调度先来先服务FCFS
生活随笔
收集整理的這篇文章主要介紹了
操作系统进程调度先来先服务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的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Word论文插入带有方括号序号的参考文献
- 下一篇: WinXPmini仅120MB极为纯净的