Question

In: Computer Science

Implement the CPU scheduling algorithm FCFS non-preemptive in python. Have the program answer the table. Simulate...

Implement the CPU scheduling algorithm FCFS non-preemptive in python. Have the program answer the table.

Simulate and evaluate with the set of eight processes below.

Assumptions:

  1. All processes are activated at time 0
  2. Assume that no process waits on I/O devices.
  3. After completing an I/O event, a process is transferred to the ready queue.
  4. Waiting time is accumulated while a process waits in the ready queue.
  5. Turnaround time is a total of (Waiting time) + (CPU burst time) + (I/O time)
  6. Response time is the first measure of waiting time from arrival at time 0 until the first time on the CPU.

Process Data:

process goes {CPU burst, I/O time, CPU burst, I/O time, CPU burst, I/O time,…….., last CPU burst}

P1 {5, 27, 3, 31, 5, 43, 4, 18, 6, 22, 4, 26, 3, 24, 4}

P2 {4, 48, 5, 44, 7, 42, 12, 37, 9, 76, 4, 41, 9, 31, 7, 43, 8}

P3 {8, 33, 12, 41, 18, 65, 14, 21, 4, 61, 15, 18, 14, 26, 5, 31, 6}

P4 {3, 35, 4, 41, 5, 45, 3, 51, 4, 61, 5, 54, 6, 82, 5, 77, 3}

P5 {16, 24, 17, 21, 5, 36, 16, 26, 7, 31, 13, 28, 11, 21, 6, 13, 3, 11, 4}

P6 {11, 22, 4, 8, 5, 10, 6, 12, 7, 14, 9, 18, 12, 24, 15, 30, 8}

P7 {14, 46, 17, 41, 11, 42, 15, 21, 4, 32, 7, 19, 16, 33, 10}

P8 {4, 14, 5, 33, 6, 51, 14, 73, 16, 87, 6}

FCFS CPU utilization:

Tw

Ttr

Tr

P1

P2

P3

P4

P5

P6

P7

P8

Avg

FCFS

CPU utilization

Avg Waiting time (Tw)

Avg Turnaround time (Ttr)

Avg Response time (Tr)

Solutions

Expert Solution

Solution :

program for implementation of FCFS scheduling


def findWaitingTime(processes, n,
                   bt, wt):

   # waiting time for
   # first process is 0
   wt[0] = 0

   # calculating waiting time
   for i in range(1, n ):
       wt[i] = bt[i - 1] + wt[i - 1]

# Function to calculate turn
# around time
def findTurnAroundTime(processes, n,
                   bt, wt, tat):

   # calculating turnaround
   # time by adding bt[i] + wt[i]
   for i in range(n):
       tat[i] = bt[i] + wt[i]

# Function to calculate
# average time
def findavgTime( processes, n, bt):

   wt = [0] * n
   tat = [0] * 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
   print( "Processes Burst time " +
               " Waiting time " +
               " Turn around time")

   # Calculate total waiting time
   # and total turn around time
   for i in range(n):
  
       total_wt = total_wt + wt[i]
       total_tat = total_tat + tat[i]
       print(" " + str(i + 1) + "\t\t" +
                   str(bt[i]) + "\t " +
                   str(wt[i]) + "\t\t " +
                   str(tat[i]))

   print( "Average waiting time = "+
               str(total_wt / n))
   print("Average turn around time = "+
                   str(total_tat / n))

# Driver code
if __name__ =="__main__":
  
   processes = [ 1, 2, 3]
   n = len(processes)

   # Burst time of all processes
   burst_time = [10, 5, 8]

   findavgTime(processes, n, burst_time)


Related Solutions

Implement the CPU scheduling algorithm SJF non-preemptive in python. Have the program answer the table. Simulate...
Implement the CPU scheduling algorithm SJF non-preemptive in python. Have the program answer the table. Simulate and evaluate with the set of eight processes below. Assumptions: All processes are activated at time 0 Assume that no process waits on I/O devices. After completing an I/O event, a process is transferred to the ready queue. Waiting time is accumulated while a process waits in the ready queue. Turnaround time is a total of (Waiting time) + (CPU burst time) + (I/O...
Implement the CPU scheduling algorithm MLFQ in python. Have the program answer the table. Multilevel Feedback...
Implement the CPU scheduling algorithm MLFQ in python. Have the program answer the table. Multilevel Feedback Queue (absolute priority in higher queues)             Queue 1 uses RR scheduling with Tq = 5             Queue 2 uses RR scheduling with Tq = 10             Queue 3 uses FCFS All processes enter first queue 1. If time quantum (Tq) expires before CPU burst is complete, the process is downgraded to next lower priority queue. Processes are not downgraded when preempted by a...
Develop an algorithm and implement a Preemptive Priority scheduling algorithm using C++ and using bubble sorting...
Develop an algorithm and implement a Preemptive Priority scheduling algorithm using C++ and using bubble sorting .Arrival time, burst time and priority values.The code should also display: (i) Gantt chart and determine the following: (ii) Determine the Turnaround time(TAT), waiting time(WT) of each process (iii) Determine the Average Waiting Time (AWT) and Average Turnaround Time (ATAT) of all processes. please write the comments
An operating system uses the First-Come, First-Served (FCFS) CPU scheduling algorithm. Consider the following set of...
An operating system uses the First-Come, First-Served (FCFS) CPU scheduling algorithm. Consider the following set of processes in this OS, with the length of the CPU burst time given in milliseconds, and the shown priority. A larger priority number implies a higher priority. There is no pre-emption. The processes are assumed to have arrived in the order P1, P2, P3, P4, P5, all at time 0. Process Burst Time Priority P1 2 2 P2 1 5 P3 4 1 P4...
In a few words, explain how a preemptive scheduling policy differs from a non-preemptive scheduling policy.
In a few words, explain how a preemptive scheduling policy differs from a non-preemptive scheduling policy.
Solve the the process scheduling problem using the round robin FCFS algorithm studied in assignment 7....
Solve the the process scheduling problem using the round robin FCFS algorithm studied in assignment 7. The program will show the order of execution of the processing and will provide the average waiting time for the following scenarios: a) Time quantum =1 b) Time Quantum=3 Use the table below to draw the Gantt Chart (Spread sheet or by hand). Process ID Arrival Time Burst Time 1 0 4 2 1 5 3 2 2 4 3 1 5 4 6...
Describe how the Round Robin Scheduling algorithm works. Explain the differences of working procedure between preemptive...
Describe how the Round Robin Scheduling algorithm works. Explain the differences of working procedure between preemptive and non-preemptive version of this algorithm.
Hi Guys, The assignment in Process Scheduling Operating System to write C code that implement FCFS...
Hi Guys, The assignment in Process Scheduling Operating System to write C code that implement FCFS & Round-Robin ( Without using any array) but we can use linkedlist
Write a program in python programming language to implement/simulate a finite automaton that accepts (only): odd...
Write a program in python programming language to implement/simulate a finite automaton that accepts (only): odd Binary numbers // 00000000, 0101, 111111, etc. Show: Finite Automaton Definition, Graph, Table
Write a program in python programming language to implement/simulate a finite automaton that accepts (only): unsigned...
Write a program in python programming language to implement/simulate a finite automaton that accepts (only): unsigned integer numbers // 123, 007, 4567890, etc. Show: Finite Automaton Definition, Graph, Table.
ADVERTISEMENT
ADVERTISEMENT
ADVERTISEMENT