Os3 21BLC1603
Os3 21BLC1603
LAB-3
CPU Scheduling
NAME : DARSHNI B
REG_NUM: 21BLC1603
int main() {
int pid[15];
int bt[15];
int n;
scanf("%d", &n);
scanf("%d", &pid[i]);
scanf("%d", &bt[i]);
int i, wt[n];
wt[0] = 0;
printf("%d\t\t", pid[i]);
printf("%d\t\t", bt[i]);
printf("%d\t\t", wt[i]);
printf("\n");
// for calculating total waiting time
twt += wt[i];
awt = twt / n;
att = tat / n;
printf("--------");
printf("\n");
printf("|\n");
for (i = 0; i < n; i++) {
printf("--------");
printf("\n");
printf("0\t");
printf("\n");
printf("\n");
return 0;
}
2. SHORTEST JOB FIRST (SJF):
#include <stdio.h>
bt[j + 1] = tempBt;
// Swap process ID
pid[j + 1] = tempPid;
int main() {
int pid[15];
int bt[15];
int n;
scanf("%d", &n);
scanf("%d", &pid[i]);
int i, wt[n];
wt[0] = 0;
printf("%d\t\t", pid[i]);
printf("%d\t\t", bt[i]);
printf("%d\t\t", wt[i]);
twt += wt[i];
awt = twt / n;
att = tat / n;
printf("--------");
printf("\n");
}
printf("|\n");
printf("--------");
printf("\n");
printf("0\t");
printf("\n");
printf("\n");
return 0;
}
3. PRIORITY SCHEDULING:
//Priority Scheduling
#include <stdio.h>
// Swap process ID
int tempPid = pid[j];
pid[j] = pid[j + 1];
pid[j + 1] = tempPid;
// Swap priority
int tempPriority = priority[j];
priority[j] = priority[j + 1];
priority[j + 1] = tempPriority;
}
}
}
}
int main() {
int pid[15];
int bt[15];
int priority[15];
int n;
printf("Enter process id, burst time, and priority of all the processes:\n");
for (int i = 0; i < n; i++) {
scanf("%d %d %d", &pid[i], &bt[i], &priority[i]);
}
int i, wt[n];
wt[0] = 0;
// Swap process ID
int tempPid = pid[i];
pid[i] = pid[n - i - 1];
pid[n - i - 1] = tempPid;
// Swap priority
int tempPriority = priority[i];
priority[i] = priority[n - i - 1];
priority[n - i - 1] = tempPriority;
}
}
printf("0\t");
return 0;
}
WITHOUT ARRIVAL TIME:
#include<stdio.h>
/*
at = Arrival Time
bt = Burst Time
rt = Response Time
*/
float wait_time=0,turn_time=0;
void main()
int c,j,n,time,r,flag=0,time_q,ltt,i,wt=0;
r=n;
scanf("%d",&bt[c]);
rt[c]=bt[c];
temp[c]=bt[c];
printf("\n");
printf("\n\n\tprocess\tAT\tTAT\tWT\torder\n\n");
for(time=0,c=0; r!=0;)
if(rt[c]<=time_q && rt[c]>0) // rt[] have the same values of burst time S
time=time+rt[c];
rt[c]=0;
flag=1;
else if (rt[c]>0)
rt[c]=rt[c]-time_q;
time=time+time_q;
wt=0;
wt = time-at-bt[c];
r--;
printf("\tP%d\t%d\t%d\t%d\t%d\n",c+1,at,time-at,wt,c+1);
ltt=time-at;
wait_time=wait_time+time-at-bt[c];
turn_time=turn_time+time-at;
flag=0;
if( c == n-1)
c=0;
else if(at<=time)
c++;
else
c=0;
j=0;
printf("\n\n\n");
printf("\n\n\n");
printf("\t");
printf("--");
printf("--");
printf("\n");
printf("\t");
for(i=at; i<time;)
if(bt[j]>=time_q)
printf("P%d |\t",j+1);
i+=time_q;
bt[j]=bt[j]-time_q;
else if(bt[j]>0)
printf("P%d |\t",j+1);
i+=bt[j];
bt[j]=0;
j++;
if(j>=n)
j=0;
printf("\n");
j=0;
printf("\t");
printf("--");
printf("--");
printf("\n");
printf("\t ");
for(i=at; i<time;)
if(temp[j]>=time_q)
printf(" ");
printf(" %d\t",i+time_q);
i+=time_q;
temp[j]=temp[j]-time_q;
else if(temp[j]>0)
{ printf(" ");
printf("%d\t",i+temp[j]);
i+=temp[j];
temp[j]=0;
j++;
if(j>=n)
j=0;
printf("\n\n\n");
printf("\nAverage_waiting_time=%.2f\n",wait_time/n);
printf("Average_turn_around_time=%.2f\n",turn_time/n);
printf("\n\n");
}
RESULT :