0% found this document useful (0 votes)
92 views3 pages

CPU Scheduling Process Burst Time Priority P1 P2 P3 P4 P5 5 24 16 10 3 2 5 1 3 4 FCFS Algorithm

The document describes CPU scheduling using the First Come First Serve (FCFS) algorithm. It includes a table with 5 processes and their burst times and priorities. It then provides the implementation steps for FCFS scheduling, including calculating waiting times, turnaround times, and average times. Finally, it includes C++ code to implement FCFS scheduling on sample processes and outputs their details.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
92 views3 pages

CPU Scheduling Process Burst Time Priority P1 P2 P3 P4 P5 5 24 16 10 3 2 5 1 3 4 FCFS Algorithm

The document describes CPU scheduling using the First Come First Serve (FCFS) algorithm. It includes a table with 5 processes and their burst times and priorities. It then provides the implementation steps for FCFS scheduling, including calculating waiting times, turnaround times, and average times. Finally, it includes C++ code to implement FCFS scheduling on sample processes and outputs their details.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 3

CPU Scheduling

Process Burst time Priority


P1 5 2
P2 24 5
P3 16 1
P4 10 3
P5 3 4

FCFS algorithm:
Implementation
1- Input the processes along with their burst time (bt).
2- Find waiting time (wt) for all processes.
3- As first process that comes need not to wait so
waiting time for process 1 will be 0 i.e. wt[0] = 0.
4- Find waiting time for all other processes i.e. for
process i ->
wt[i] = bt[i-1] + wt[i-1] .
5- Find turnaround time = waiting_time + burst_time
for all processes.
6- Find average waiting time =
total_waiting_time / no_of_processes.
7- Similarly, find average turnaround time =
total_turn_around_time / no_of_processes.

C++ Code:

// C++ program for implementation of FCFS


// scheduling
#include<iostream>
using namespace std;

// Function to find the waiting time for all


// processes
void findWaitingTime(int processes[], int n,
int bt[], int wt[])
{
// waiting time for first process is 0
wt[0] = 0;
// calculating waiting time
for (int i = 1; i < n ; i++ )
wt[i] = bt[i-1] + wt[i-1] ;
}

// Function to calculate turn around time


void findTurnAroundTime( int processes[], int n,
int bt[], int wt[], int tat[])
{
// calculating turnaround time by adding
// bt[i] + wt[i]
for (int i = 0; i < n ; i++)
tat[i] = bt[i] + wt[i];
}

//Function to calculate average time


void findavgTime( int processes[], int n, int bt[])
{
int wt[n], tat[n], total_wt = 0, total_tat = 0;

//Function to find waiting time of all processes


findWaitingTime(processes, n, bt, wt);

//Function to find turn around time for all processes


findTurnAroundTime(processes, n, bt, wt, tat);

//Display processes along with all details


cout << "Processes "<< " Burst time "
<< " Waiting time " << " Turn around time\n";

// Calculate total waiting time and total turn


// around time
for (int i=0; i<n; i++)
{
total_wt = total_wt + wt[i];
total_tat = total_tat + tat[i];
cout << " " << i+1 << "\t\t" << bt[i] <<"\t "
<< wt[i] <<"\t\t " << tat[i] <<endl;
}

cout << "Average waiting time = "


<< (float)total_wt / (float)n;
cout << "\nAverage turn around time = "
<< (float)total_tat / (float)n;
}

// Driver code
int main()
{
//process id's
int processes[] = { 1, 2, 3};
int n = sizeof processes / sizeof processes[0];

//Burst time of all processes


int burst_time[] = {10, 5, 8};

findavgTime(processes, n, burst_time);
return 0;
}

Output:
SJF algorithm:

You might also like