#!/bin/bash
echo "Enter the process number"
read n
declare -a pid at bt ct tat wt rt vis srt
for((i=1;i<=n;i++))
do
pid[i]=$i
read at[i]
read bt[i]
vis[i]=0
done
time=0
cc=0;
while((cc<n))
do
mn=1000
ind=-1
for((i=1;i<=n;i++))
do
if(( vis[i]==0 && at[i]<=time))
then
if (( bt[i] < mn || (bt[i] == mn && at[i] < at[ind]) ))
then
mn=${bt[i]}
ind=$i
fi
fi
done
if((ind==-1))
then
((time++))
else
srt[ind]=$time
time=$((time+bt[ind]))
ct[ind]=$time
tat[ind]=$((ct[ind]-at[ind]))
wt[ind]=$((tat[ind]-bt[ind]))
rt[ind]=$((srt[ind]-at[ind]))
vis[ind]=1
((cc++))
fi
done
#print all
echo -e "\nPID\tAT\tBT\tCT\tTAT\tWT\tRT"
for (( i=1; i<=n; i++ ))
do
echo -e "P${pid[i]}\t${at[i]}\t${bt[i]}\t${ct[i]}\t${tat[i]}\t${wt[i]}\t${rt[i]}"
done
IyEvYmluL2Jhc2gKCmVjaG8gIkVudGVyIHRoZSBwcm9jZXNzIG51bWJlciIKcmVhZCBuCmRlY2xhcmUgLWEgcGlkIGF0IGJ0IGN0IHRhdCB3dCBydCB2aXMgc3J0Cgpmb3IoKGk9MTtpPD1uO2krKykpCmRvCiAgIHBpZFtpXT0kaQogICByZWFkIGF0W2ldCiAgIHJlYWQgYnRbaV0KICAgdmlzW2ldPTAKZG9uZQogICAKICAgdGltZT0wCiAgIGNjPTA7CiAgIHdoaWxlKChjYzxuKSkKICAgZG8gCiAgIG1uPTEwMDAKICAgaW5kPS0xCiAgIGZvcigoaT0xO2k8PW47aSsrKSkKICAgZG8gCiAgIGlmKCggdmlzW2ldPT0wICYmIGF0W2ldPD10aW1lKSkKICAgdGhlbiAKICAgaWYgKCggYnRbaV0gPCBtbiB8fCAoYnRbaV0gPT0gbW4gJiYgYXRbaV0gPCBhdFtpbmRdKSApKQogICB0aGVuCiAgICAgIG1uPSR7YnRbaV19CiAgICAgIGluZD0kaQogICAgIGZpCiAgIGZpCiAgIGRvbmUKICAgaWYoKGluZD09LTEpKQogICB0aGVuIAogICAoKHRpbWUrKykpCiAgIGVsc2UKICAgICBzcnRbaW5kXT0kdGltZQogICAgIHRpbWU9JCgodGltZStidFtpbmRdKSkKICAgICBjdFtpbmRdPSR0aW1lCiAgICAgdGF0W2luZF09JCgoY3RbaW5kXS1hdFtpbmRdKSkKICAgICB3dFtpbmRdPSQoKHRhdFtpbmRdLWJ0W2luZF0pKQogICAgIHJ0W2luZF09JCgoc3J0W2luZF0tYXRbaW5kXSkpCiAgICAgdmlzW2luZF09MQogICAgICgoY2MrKykpCiAgICAgZmkKICAgZG9uZQogI3ByaW50IGFsbAogZWNobyAtZSAiXG5QSURcdEFUXHRCVFx0Q1RcdFRBVFx0V1RcdFJUIgpmb3IgKCggaT0xOyBpPD1uOyBpKysgKSkKZG8KICAgIGVjaG8gLWUgIlAke3BpZFtpXX1cdCR7YXRbaV19XHQke2J0W2ldfVx0JHtjdFtpXX1cdCR7dGF0W2ldfVx0JHt3dFtpXX1cdCR7cnRbaV19Igpkb25lCiAgIAogICAKICAg