Question

This is a C program question you will implement a program to show the performance of...

This is a C program question

you will implement a program to show the performance of FCFS scheduling algorithm with I/O burst. Your program should get a file (e.g., “jobs.txt”) as the command-line input, and read the contents of the file. This file contains a set of processes.

For example, consider the file with the following content:

1:(45,15);(16,20);(80,10);(40,-1)

2:(15,10);(60,15);(90,10);(85,20);(20,-1)

3:(30,15);(40,20);(5,15);(10,15);(15,-1)

In this example we have 3 processes, each process is represented in a separate line. The general format of a line is as follows:

<process-id>:(< cpu-burst1, io-burst1>);(< cpu-burst2, io-burst2>);...(< cpu-bursti, io-bursti>)

The first token is the unique process id. After process-id you have a colon (:) delimiter. Then you will see a list of tuples separated by semicolons (;).

Each tuple in parentheses indicates the next cpu-burst and io-burst lengths of the process.

The cpu and io burst length in terms of milliseconds. If the last io-burst is -1, then it means that the process terminates without making an I/O.

 Note that this input is just an example, I may use a different input file having a different content for testing your codes, but the format of the file will be same. ( Be careful on duplicate last line issue when reading from the input file)

 You will assume that ;

o all the jobs arrive at the same time (t=0), the order of arrival is the same as the order of process-ids (i.e., smaller ids arrive earlier).

o the process never waits at the device queues and I/O starts immediately

First Come First Served (FCFS) Algorithm

Implement FCFS scheduling policy. You should print the following

a. Average turnaround time: The average of the turnaround times of all process

b. Average waiting time: The average of the total waiting time for all processes.

Thanks in advance!

0 0
Add a comment Improve this question Transcribed image text
Answer #1


Answer:

First Come First Serve (FCFS) CPU scheduling program:

Note : Run this code in any online compiler to get best output without any unwanted error

Code:

#include<stdio.h>
// 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
    printf("Processes   Burst time   Waiting time   Turn around time\n");
  
    // Calculate total waiting time and total turnaround time
    for (int i=0; i<n; i++)
    {
        total_wt = total_wt + wt[i];
        total_tat = total_tat + tat[i];
        printf("   %d ",(i+1));
        printf("       %d ", bt[i] );
        printf("       %d",wt[i] );
        printf("       %d\n",tat[i] );
    }
    int s=(float)total_wt / (float)n;
    int t=(float)total_tat / (float)n;
    printf("Average waiting time = %d",s);
    printf("\n");
    printf("Average turn around time = %d ",t);
}
  
// 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:

Processes Burst time Waiting time Turn around time 10 15 23 15 Average waiting time = 8 Average turn around time = 16 ... Program finished with exit code o Press ENTER to exit console. I

Add a comment
Know the answer?
Add Answer to:
This is a C program question you will implement a program to show the performance of...
Your Answer:

Post as a guest

Your Name:

What's your source?

Earn Coins

Coins can be redeemed for fabulous gifts.

Not the answer you're looking for? Ask your own homework help question. Our experts will answer your question WITHIN MINUTES for Free.
Similar Homework Help Questions
  • Description In this homework, you are asked to implement a multithreaded program that will allow ...

    Description In this homework, you are asked to implement a multithreaded program that will allow us to measure the performance (i.e, CPU utilization, Throughput, Turnaround time, and Waiting time in Ready Queue) of the four basic CPU scheduling algorithms (namely, FIFO, SJE PR, and RR). Your program will be emulating/simulating the processes whose priority, sequence of CPU burst time(ms) and I'O burst time(ms) will be given in an input file. Assume that all scheduling algorithms except RR will be non-preemptive,...

  • Please help me create this CLI CPU Scheduling Simulator in java: First Come First Serve (FCFS)...

    Please help me create this CLI CPU Scheduling Simulator in java: First Come First Serve (FCFS) Round Robin (RR) Process information The process information will be read from an input file. The format is: pid arrival_time burst_time All of fields are integer type where: pid is a unique numeric process ID arrival_time is the time when the task arrives in the unit of milliseconds burst_time the is the CPU time requested by a task, in the unit of milliseconds The...

  • Operating System Theory and Design Write a program to simulate the operation of two of CPU...

    Operating System Theory and Design Write a program to simulate the operation of two of CPU scheduling methods. The program does the following: 1. Get the number of processes from the user. 2. Get the burst time of each process from the user 3. Assume that all processes arrive at "O" to the ready queue. 4. The program lets the user select one of the two methods to implement the o e oo implement the CPU scheduling. time. You can...

  • Write a Java program that will simulate SRTnext scheduling algorithms. For the algorithm, the pro...

    Write a Java program that will simulate SRTnext scheduling algorithms. For the algorithm, the program should compute waiting time and turnaround time of every job as well as the average waiting time and average turn around time Process Arrival time CPU Burst (in milliseconds) 6 P1 P2 P3 7 10 Ps Write a Java program that will simulate SRTnext scheduling algorithms. For the algorithm, the program should compute waiting time and turnaround time of every job as well as the...

  • (Algorithm Computation Question) Given the following processes and associated arrival time and burst time. Process   Arrival...

    (Algorithm Computation Question) Given the following processes and associated arrival time and burst time. Process   Arrival Time     Burst Time P1                0.0                    6 P2                2.0                    5 P3                3.0                    2 P4                4.0                    3 1) Calculate the average waiting time if the CPU scheduling uses FCFS algorithm. 2) Calculate the average waiting time if the CPU scheduling uses Non-Preemptive SJF algorithm.

  • Consider the following set of processes, with the length of the CPU-burst time given in milliseconds:

    Consider the following set of processes, with the length of the CPU-burst time given in milliseconds:Processburst TimePriorityP1103P211P323P414P552For each of the scheduling algorithms, FCFS, Shortest-Job-First (SJF, non-preemptive), Priority (smaller priority number implies higher scheduling priority), and RR (quantum = 1) do the following.Draw a Gantt chart to show how these processes would be scheduled.Give the turnaround time (total time from the first arrival into ready state until CPU-burst is completed) of each process.Give the waiting time (total time spent in the Ready state) of each process.Give...

  • Implement a First Come First Serve (FCFS) non-preemptive OS scheduling simulation with multiple processes, in python...

    Implement a First Come First Serve (FCFS) non-preemptive OS scheduling simulation with multiple processes, in python or c++. The simulation takes the 3 processes(listed below) and they all arrive at time 0. A single process consists of {CPU BURST, I/O BURST, CPU BURST, I/O BURST, etc…} The simulation accounts for all 3 processes, and does not run one process at a time. Process1 {4,24,5,73,3,31,5,27,4,33,6,43,4,64,5,19,2} Process2 {18,31,19,35,11,42,18,43,19,47,18,43,17,51,19,32,10} Process3 {6,18,4,21,7,19,4,16,5,29,7,21,8,22,6,24,5} For example at time 0, Process1 arrives and enters running state, Process2...

  • This assignment requires you to create simulations for different scheduling algorithms commonly employed by operating systems...

    This assignment requires you to create simulations for different scheduling algorithms commonly employed by operating systems to achieve multiprogramming. All problems in this assignment assume the following: The simulations you will be creating are for a uniprocessor system (single CPU). Processes in these simulations will require CPU bursts of one or more time units followed by I/O bursts of one or more time units. For simplicity’s sake, when more than one process is executing its I/O burst at the same...

  • Please answer the following question in C++ language Consider the following set of processes, with the...

    Please answer the following question in C++ language Consider the following set of processes, with the length of the CPU burst time given in milliseconds: Process            Burst Time      Priority P1. 7 5 P2 2 4 P3 11 3 P4 9 1 P5 5 3 The processes are assumed to have arrived in the order P1,P2, P3, P4, P5, all at time 0. a. Draw four Gantt charts that illustrate the execution of these processes using the following scheduling algorithms: FCFS, SJF, nonpreemptive...

  • 2. The following processes have 4 CPU burst and 3 I/O bursts each. They are all...

    2. The following processes have 4 CPU burst and 3 I/O bursts each. They are all of the same priority and they arrive in the order P1, P2, P3 at time 0 CPUO 10 CPU 10 CPUI/O 10 CPU 10 10 10 P1 P2 P3 10 10 10 a. Draw three Gantt charts illustrating the execution of these processes using FCFS, SJF, and RR (quantum- 1t) scheduling b. What is the turnaround time of each process for each of the...

ADVERTISEMENT
Free Homework Help App
Download From Google Play
Scan Your Homework
to Get Instant Free Answers
Need Online Homework Help?
Ask a Question
Get Answers For Free
Most questions answered within 3 hours.
ADVERTISEMENT
ADVERTISEMENT