0% found this document useful (0 votes)
13 views4 pages

Osy 14

Uploaded by

shashank220906
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
13 views4 pages

Osy 14

Uploaded by

shashank220906
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 4

Experiment 14

Q1

echo "First-Come, First-Served (FCFS) Scheduling Algorithm"

echo "-----------------------------------------------"

echo "Enter the number of processes:"

read num_processes

declare -a arrival_time

declare -a burst_time

declare -a completion_time

declare -a turnaround_time

declare -a waiting_time

total_turnaround_time=0

total_waiting_time=0

for (( i=0; i<num_processes; i++ ))

do

echo "Process $(( i + 1 ))"

echo -n "Arrival Time: "

read arrival_time[$i]

echo -n "Burst Time: "

read burst_time[$i]
done

completion_time[0]=$((arrival_time[0] + burst_time[0]))

for (( i=1; i<num_processes; i++ ))

do

if [ ${arrival_time[$i]} -gt ${completion_time[$((i - 1))]} ]; then

completion_time[$i]=$((arrival_time[$i] + burst_time[$i]))

else

completion_time[$i]=$((completion_time[$((i - 1))] + burst_time[$i]))

fi

done

for (( i=0; i<num_processes; i++ ))

do

turnaround_time[$i]=$((completion_time[$i] - arrival_time[$i]))

waiting_time[$i]=$((turnaround_time[$i] - burst_time[$i]))

total_turnaround_time=$((total_turnaround_time + turnaround_time[$i]))

total_waiting_time=$((total_waiting_time + waiting_time[$i]))

done

average_turnaround_time=$(bc <<< "scale=2; $total_turnaround_time / $num_processes")

average_waiting_time=$(bc <<< "scale=2; $total_waiting_time / $num_processes")

echo "-----------------------------------------------"
echo "Process | Arrival Time | Burst Time | Completion Time | Turnaround Time | Waiting Time"

for (( i=0; i<num_processes; i++ ))

do

echo "P$((i+1)) | ${arrival_time[$i]} | ${burst_time[$i]} | ${completion_time[$i]}


| ${turnaround_time[$i]} | ${waiting_time[$i]}"

done

echo "-----------------------------------------------"

echo "Average Turnaround Time: $average_turnaround_time"

echo "Average Waiting Time: $average_waiting_time"

Output :-

First-Come, First-Served (FCFS) Scheduling Algorithm

-----------------------------------------------

Enter the number of processes:

Process 1

Arrival Time: 45

Burst Time: 2

Process 2

Arrival Time: 22

Burst Time: 3

Process 3

Arrival Time: 34

Burst Time: 3

Process 4
Arrival Time: 44

Burst Time: 4

Process 5

Arrival Time: 44

Burst Time: 4

-----------------------------------------------

Process | Arrival Time | Burst Time | Completion Time | Turnaround Time | Waiting Time

P1 | 45 |2 | 47 |2 |0

P2 | 22 |3 | 50 | 28 | 25

P3 | 34 |3 | 53 | 19 | 16

P4 | 44 |4 | 57 | 13 |9

P5 | 44 |4 | 61 | 17 | 13

-----------------------------------------------

Average Turnaround Time: 15.80

Average Waiting Time: 12.60

You might also like