[go: up one dir, main page]

0% found this document useful (0 votes)
6 views10 pages

Aliya #19

Download as docx, pdf, or txt
Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1/ 10

NAME : Aliya ijaz

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;
}

You might also like