Đang tải... (xem toàn văn)
code FCFS Header file for Cpu scheduling
Code :// Header file for Cpu scheduling#include<iostream.h>#include<conio.h>#include<stdio.h>class cpuschedule{int n,Bu[20];float Twt,Awt,A[10],Wt[10],w;public://Getting the No of processes & burst timevoid Getdata();//First come First served Algorithmvoid Fcfs();//Shortest job First Algorithmvoid Sjf();//Shortest job First Algorithm with Preemptionvoid SjfP();//Shortest job First Algorithm with NonPreemptionvoid SjfNp();//Round Robin Algorithm void RoundRobin();//Priority Algorithmvoid Priority();};// Implementation file for Cpu scheduling#include "cpuh.h"//Getting no of processes and Burst timevoid cpuschedule::Getdata(){int i;cout<<"Enter the no of processes:";cin>>n;for(i=1;i<=n;i++){cout<<"Enter The BurstTime for Process p"<<i<<"= ";cin>>Bu[i];}}//First come First served Algorithmvoid cpuschedule::Fcfs(){ int i,B[10];Twt=0.0;for(i=1;i<=n;i++){B[i]=Bu[i];cout<<"Burst time for process p"<<i<<"= ";cout<<B[i];}Wt[1]=0;for(i=2;i<=n;i++){Wt[i]=B[i-1]+Wt[i-1];}//Calculating Average Weighting Timefor(i=1;i<=n;i++)Twt=Twt+Wt[i];Awt=Twt/n;cout<<"Total Weighting Time="<<Twt;cout<<"Average Weighting Time="<<Awt<<"";} //Shortest job First Algorithmvoid cpuschedule::Sjf(){int i,j,temp,B[10];Twt=0.0;for(i=1;i<=n;i++){B[i]=Bu[i];cout<<"Burst time for process p"<<i<<"= ";cout<<B[i];}for(i=n;i>=1;i--){for(j=1;j<=n;j++){if(B[j-1]>B[j]){temp=B[j-1];B[j-1]=B[j];B[j]=temp;}}} Wt[1]=0;for(i=2;i<=n;i++){Wt[i]=B[i-1]+Wt[i-1];}//calculating Average Weighting Timefor(i=1;i<=n;i++)Twt=Twt+Wt[i];Awt=Twt/n;cout<<"Total Weighting Time="<<Twt;cout<<"Average Weighting Time="<<Awt<<"";}//Shortest job First Algorithm with NonPreemptionvoid cpuschedule::SjfNp(){int i,B[10],Tt=0,temp,j;char S[10];float A[10],temp1,t;Twt=0.0; w=0.0;for(i=1;i<=n;i++){B[i]=Bu[i];cout<<"Burst time for process p"<<i<<"= ";cout<<B[i];S[i]='T';Tt=Tt+B[i];cout<<"Enter the Arrival Time for"<<i<<"th process= ";cin>>A[i];}for(i=n;i>=1;i--){for(j=3;j<=n;j++){if(B[j-1]>B[j]){temp=B[j-1];temp1=A[j-1];B[j-1]=B[j];A[j-1]=A[j];B[j]=temp; A[j]=temp1;}}}for(i=1;i<=n;i++){cout<<"p"<<i<<" "<<B[i]<<" "<<A[i];}//For the 1st processWt[1]=0;w=w+B[1];t=w;S[1]='F';while(w<Tt){i=2;while(i<=n){if(S[i]=='T'&&A[i]<=t){Wt[i]=w; cout<<"WT"<<i<<"="<<Wt[i];S[i]='F';w=w+B[i];t=w;i=2;}elsei++;}}for(i=1;i<=n;i++)cout<<"Wt"<<i<<"=="<<Wt[i];//calculating average weighting Timefor(i=1;i<=n;i++)Twt=Twt+(Wt[i]-A[i]);Awt=Twt/n;cout<<"Total Weighting Time="<<Twt<<"";cout<<"Average Weighting Time="<<Awt<<""; }//Priority Algorithmvoid cpuschedule::Priority(){int i,B[10],P[10],j;w=0.0;int max;Twt=0.0;max=1;for(i=1;i<=n;i++){B[i]=Bu[i];cout<<"Burst time for process p"<<i<<"= ";cout<<B[i];cout<<"Enter the priority for process P"<<i<<"= ";cin>>P[i];if(max<P[i])max=P[i];}j=1;while(j<=max) {i=1;while(i<=n){if(P[i]==j){Wt[i]=w;w=w+B[i];}i++;}j++;}//calculating average weighting Timefor(i=1;i<=n;i++)Twt=Twt+Wt[i];Awt=Twt/n;cout<<"Total Weighting Time="<<Twt<<"";cout<<"Average Weighting Time="<<Awt<<"";}//Shortest job First Algorithm with Preemption [...]... Implementation file for Cpu scheduling #include "cpuh.h" //Getting no of processes and Burst time void cpuschedule::Getdata() { int i; cout<<" Enter the no of processes:"; cin>>n; for( i=1;i<=n;i++) { cout<<" Enter The BurstTime for Process p"<<i<<"= "; cin>>Bu[i]; } } //First come First served Algorithm void cpuschedule: :Fcfs( ) { ... "; cin>>A[i]; if(A[i]>Time) Time=A[i]; } //cout<<" Max="<<max; Code : // Header file for Cpu scheduling #include<iostream.h> #include<conio.h> #include<stdio.h> class cpuschedule { int n,Bu[20]; float Twt,Awt,A[10],Wt[10],w; public: //Getting the No of processes & burst time void Getdata(); //First come First served Algorithm void Fcfs( ); //Shortest job First Algorithm void Sjf(); //Shortest... Time="<<Awt<<" "; } //Application file for cpu Scheduling #include "cpuh.h" void main() { int ch,cho; cpuschedule c; do { cout<<" MENU "; cout<<"1.Getting BurstTime "; cout<<"2.FirstComeFirstServed "; cout<<"3.ShortestJobFirst "; cout<<"4.RoundRobin void cpuschedule::SjfP() { int i,j,m,Wt[10],k,B[10],A[10],Tt=0,Wtm[10],temp; char... 4: cout<<"ROUND ROBIN SCHEDULING "; c.RoundRobin(); break; case 5: cout<<"PRIORITY SCHEDULING "; c.Priority(); break; case 6: break; } }while(ch<=5); } //Shortest job First Algorithm void cpuschedule::Sjf() { int i,j,temp,B[10]; Twt=0.0; for( i=1;i<=n;i++) { B[i]=Bu[i]; cout<<" Burst time for process p"<<i<<"= "; cout<<B[i]; } for( i=n;i>=1;i... time for process p"<<i<<"= "; cout<<B[i]; if(max<B[i]) max=B[i]; Wt[i]=0; } cout<<" Enter the Time Quantum="; cin>>tq; //TO find the dimension of the Rrobin array m=max/tq+1; //initializing Rrobin array for( i=1;i<=n;i++) { for( j=1;j<=m;j++) { Rrobin[i][j]=0; } } w=0.0; for( i=1;i<=n;i++) { B[i]=Bu[i]; cout<<" Burst time for. .. choice "; cin>>ch; switch(ch) { case 1: c.Getdata(); break; case 2: cout<<"FIRST COME FIRST SERVED SCHEDULING "; c .Fcfs( ); break; case 3: cout<<"SHORTEST JOB FIRST SCHEDULING "; do { cout<<"1.SJF-Normel "; } else if(flag==0) i++; } cout<<" Printing remaining burst time "; for( i=1;i<=n;i++) cout<<" B["<<i<<"]="<<B[i]; cout<<" "; while(w<Tt) { min=max+1; i=1; while(i<=n) { if(min>B[i]... "; for( i=1;i<=n;i++) { Wt[i]=Wt[i]-A[i]; cout<<" WT["<<i<<"]="<<Wt[i]; } //Calculating Average Weighting time for( i=1;i<=n;i++) Twt=Twt+Wt[i]; Awt=Twt/n; cout<<" Average Weighting Time="<<Awt; } //Round Robin Algorithm void cpuschedule::RoundRobin() { int i,j,tq,k,B[10],Rrobin[10][10],count[10]; int max=0; int m; Twt=0.0; for( i=1;i<=n;i++) { B[i]=Bu[i]; cout<<" Burst... w=0.0; for( i=1;i<=n;i++) { B[i]=Bu[i]; cout<<" Burst time for process p"<<i<<"= "; cout<<B[i]; S[i]='T'; Tt=Tt+B[i]; cout<<" Enter the Arrival Time for& quot;<<i<<"th process= "; cin>>A[i]; } for( i=n;i>=1;i ) { for( j=3;j<=n;j++) { if(B[j-1]>B[j]) { temp=B[j-1]; temp1=A[j-1]; B[j-1]=B[j]; A[j-1]=A[j]; B[j]=temp; "; cout<<"5.Priority "; cout<<"6.EXIT "; cout<<"Enter... i,j,m,Wt[10],k,B[10],A[10],Tt=0,Wtm[10],temp; char S[20],start[20]; int max=0,Time=0,min; float Twt=0.0,Awt; for( i=1;i<=n;i++) { B[i]=Bu[i]; cout<<" Burst time for process P"<<i<<"= "<<B[i]; if(B[i]>max) max=B[i]; Wt[i]=0; S[i]='T'; start[i]='F'; Tt=Tt+B[i]; cout<<" Enter the Arrival Time for& quot;<<i<<"th process= "; cin>>A[i]; if(A[i]>Time) Time=A[i]; } //cout<<" Max="<<max; ... "; cout<<B[i]; } for( i=n;i>=1;i ) { for( j=1;j<=n;j++) { if(B[j-1]>B[j]) { temp=B[j-1]; B[j-1]=B[j]; B[j]=temp; } } } cout<<" WT"<<i<<"="<<Wt[i]; S[i]='F'; w=w+B[i]; t=w; i=2; } else i++; } } for( i=1;i<=n;i++) cout<<" Wt"<<i<<"=="<<Wt[i]; //calculating average weighting Time for( i=1;i<=n;i++) Twt=Twt+(Wt[i]-A[i]); Awt=Twt/n; cout<<"Total . Code :// Header file for Cpu scheduling# include<iostream.h>#include<conio.h>#include<stdio.h>class cpuschedule{int n,Bu[20];float. Priority();};// Implementation file for Cpu scheduling# include "cpuh.h"//Getting no of processes and Burst timevoid cpuschedule::Getdata(){int i;cout<<"Enter