THE UNIVERSITY OF DODOMA
College Of Informatics and Virtual Education
NAME: Makame Hamza Makame REGISTRATION NO: T/UDOM/2010/00410 PROGRAM: B Sc. Computer and Information Security
ASSIGNMENT NO. 2
COURSE NAME: Operating Systems COURSE CODE: CS 203 COUSE INSTRUCTOR: Dr. Msele
Question: Write a C++ program to implement Process Control Block (PCB).
Tuesday, April 03, 2012
#include<iostream.h> #include<conio.h> #include<cstring.h> void main(){
int ProcessID[5]; float ExecutionContext[5]; float time=0; float Ptime[5]={4,6,7,3,8}; float Stime[5]={0,-2,-3,-4,-1}; float r; string State[5]; int *ptr[5]; //int ParentPointer cout<<"\t\t\t\tPROCESS CONTRO BLOCK" <<endl<<endl; for(int s=1;s<5;s++){ cout<<"Add Time To Elapse"; cin>>time;
r=( rand()%6); for(int i=0; i<5; i++){
ProcessID[i]=100+i; ExecutionContext[i]=((((time)+(Stime[i]))/Ptime[i])*100);
ptr[i]=&ProcessID[i];
if(r==i) {State[i]="Running";}
Tuesday, April 03, 2012
else if(ExecutionContext[i]>100) {State[i]="Exited";} else if(ExecutionContext[i]>40 && ExecutionContext[i]<60) {State[i]="Blocked"; } else {State[i]="Ready"; }
} cout<<"\tPROCESS ID " <<"\tSTATE" <<"\t\tEXECUTION CONTEXT" <<"\tPARENT POITER" <<endl; for(int m=0;m<5;m++){ if(State[m]!="Exited"){ if(ExecutionContext[m]<=0)ExecutionContext[m]=0; cout.precision(3); cout<<"\t"<<ProcessID[m] <<"\t\t"<<State[m] <<"\t\t" <<ExecutionContext[m] <<"%"<<"\t\t\t" <<ptr[m] <<endl; } }
cout<<endl<<endl;
} getch(); }
Tuesday, April 03, 2012
OUT PUT
Tuesday, April 03, 2012