Aliya #19
Aliya #19
Aliya #19
ROLL NO :BSIT51F22R019
ASSIGNMENT NO #08
SUBMITTED TO: SIR WALEED
CODE#1
#include<stdio.h>
typedefstruct{
intarrival;
intburst;
intpriority;
}Process;
voidSJF(Processprocesses[],intn){
inttotal_turnaround_time=0;
inttotal_waiting_time=0;
intcurrent_time=0;
for(inti=0;i<n;i++){
for(intj=i+1;j<n;j++){
if(processes[i].arrival>processes[j].arrival||
(processes[i].arrival==processes[j].arrival&&
processes[i].burst>processes[j].burst)){
Processtemp=processes[i];
processes[i]=processes[j];
processes[j]=temp;
}
}
}
for(inti=0;i<n;i++){
if(current_time<processes[i].arrival){
current_time=processes[i].arrival;
}
total_turnaround_time+=current_time+processes[i].burst-processes[i].arrival;
total_waiting_time+=current_time-processes[i].arrival;
current_time+=processes[i].burst;
}
printf("SJFScheduling:\n");
printf("AverageTurnaroundTime:%f\n",(float)total_turnaround_time/n);
printf("AverageWaitingTime:%f\n",(float)total_waiting_time/n);
}
voidPriority(Processprocesses[],intn){
inttotal_turnaround_time=0;
inttotal_waiting_time=0;
intcurrent_time=0;
for(inti=0;i<n;i++){
for(intj=i+1;j<n;j++){
if(processes[i].priority>processes[j].priority){
Processtemp=processes[i];
processes[i]=processes[j];
processes[j]=temp;
}
}
}
for(inti=0;i<n;i++){
if(current_time<processes[i].arrival){
current_time=processes[i].arrival;
}
total_turnaround_time+=current_time+processes[i].burst-processes[i].arrival;
total_waiting_time+=current_time-processes[i].arrival;
current_time+=processes[i].burst;
}
printf("PriorityScheduling:\n");
printf("AverageTurnaroundTime:%f\n",(float)total_turnaround_time/n);
printf("AverageWaitingTime:%f\n",(float)total_waiting_time/n);
}
intmain(){
intn;
printf("Enterthenumberofprocesses:");
scanf("%d",&n);
Processprocesses[n];
for(inti=0;i<n;i++){
printf("Enterarrivaltime,CPUburst,andpriorityforprocess%d:",i+1);
scanf("%d%d
%d",&processes[i].arrival,&processes[i].burst,&processes[i].priority);
}
SJF(processes,n);
Priority(processes,n);
return0;
}
Output1:
Code2:
#include<stdio.h>
typedefstruct{
intpid;
intarrival;
intburst;
intwaiting_time;
intturnaround_time;
}Process;
voidSJF(Processprocesses[],intn){
inttotal_waiting_time=0;
inttotal_turnaround_time=0;
intcurrent_time=0;
intcompleted_processes=0;
for(inti=0;i<n;i++){
for(intj=i+1;j<n;j++){
if(processes[i].arrival>processes[j].arrival||
(processes[i].arrival==processes[j].arrival&&
processes[i].burst>processes[j].burst)){
Processtemp=processes[i];
processes[i]=processes[j];
processes[j]=temp;
}
}
}
while(completed_processes<n){
intmin_burst=1000;
intnext_process=-1;
for(inti=0;i<n;i++){
if(processes[i].arrival<=current_time&&processes[i].burst<min_burst){
min_burst=processes[i].burst;
next_process=i;
}
}
if(next_process==-1){
current_time++;
continue;
}
processes[next_process].waiting_time=current_time-processes[next_process].arrival;
processes[next_process].turnaround_time=processes[next_process].waiting_time+processes[next
_process].burst;
total_waiting_time+=processes[next_process].waiting_time;
total_turnaround_time+=processes[next_process].turnaround_time;
current_time+=processes[next_process].burst;
completed_processes++;
processes[next_process].burst=1000;
}
printf("ProcessDetails:\n");
printf("PID\tArrival\tBurst\tWaiting\tTurnaround\n");
for(inti=0;i<n;i++){
printf("%d\t%d\t%d\t%d\t%d\
n",processes[i].pid,processes[i].arrival,processes[i].burst,processes[i].waiting_time,processes[i].t
urnaround_time);
}
printf("AverageWaitingTime:%f\n",(float)total_waiting_time/n);
printf("AverageTurnaroundTime:%f\n",(float)total_turnaround_time/n);
}
intmain(){
intn;
printf("Enterthenumberofprocesses:");
scanf("%d",&n);
Processprocesses[n];
for(inti=0;i<n;i++){
processes[i].pid=i+1;
printf("EnterarrivaltimeandCPUburstforprocess%d:",i+1);
scanf("%d%d",&processes[i].arrival,&processes[i].burst);
}
SJF(processes,n);
return0;
}
Output2:
Code3:
#include<stdio.h>
typedefstruct{
intpid;
intburst;
intpriority;
intwaiting_time;
intturnaround_time;
}Process;
voidPriority(Processprocesses[],intn){
inttotal_waiting_time=0;
inttotal_turnaround_time=0;
intcurrent_time=0;
intcompleted_processes=0;
for(inti=0;i<n;i++){
for(intj=i+1;j<n;j++){
if(processes[i].priority>processes[j].priority){
Processtemp=processes[i];
processes[i]=processes[j];
processes[j]=temp;
}
}
}
while(completed_processes<n){
intmin_priority=1000;
intnext_process=-1;
for(inti=0;i<n;i++){
if(processes[i].priority<min_priority){
min_priority=processes[i].priority;
next_process=i;
}
}
processes[next_process].waiting_time=current_time;
processes[next_process].turnaround_time=processes[next_process].waiting_time+processes[next
_process].burst;
total_waiting_time+=processes[next_process].waiting_time;
total_turnaround_time+=processes[next_process].turnaround_time;
current_time+=processes[next_process].burst;
completed_processes++;
processes[next_process].priority=1000;
}
printf("ProcessDetails:\n");
printf("PID\tBurst\tPriority\tWaiting\tTurnaround\n");
for(inti=0;i<n;i++){
printf("%d\t%d\t%d\t%d\t%d\
n",processes[i].pid,processes[i].burst,processes[i].priority,processes[i].waiting_time,processes[i].
turnaround_time);
}
printf("AverageWaitingTime:%f\n",(float)total_waiting_time/n);
printf("AverageTurnaroundTime:%f\n",(float)total_turnaround_time/n);
}
intmain(){
intn;
printf("Enterthenumberofprocesses:");
scanf("%d",&n);
Processprocesses[n];
for(inti=0;i<n;i++){
processes[i].pid=i+1;
printf("EnterCPUburstandpriorityforprocess%d:",i+1);
scanf("%d%d",&processes[i].burst,&processes[i].priority);
}
Priority(processes,n);
return0;
}