#!/bin/bash 
# Author: Job Jonkergouw
# october 2008
#
# this script runs the different options of the scheduler

# variables for schedule execution
CPUvar=0.7
IOvar=0.7
MEMvar=0.7
PROCvar=1000
# types of scheduling
SCHEDvar=0
ENQUEvar=0

touch temp.txt # create temporary file to save schedule output
echo "Start calclulating:"

# loop over front queueing (1) and back queueing (0)
for ENQUEvar in 0 1
do
	for SCHEDvar in 0 1 2 3 4 # the different scheduling modes
	do
		# choose a filename
		if [ $ENQUEvar -eq 0 ] # if we use back queueing
		then
			case  $SCHEDvar in
				0) FILE=typeFCFSback.dat;;
				1) FILE=typeFFFSback.dat;;
				2) FILE=typeJFSback.dat;;
				3) FILE=typeMONTECARLOback.dat;;
				4) FILE=typeMIXback.dat;;
			esac
		else
			case  $SCHEDvar in
				0) FILE=typeFCFSfront.dat;;
				1) FILE=typeFFFSfront.dat;;
				2) FILE=typeJFSfront.dat;;
				3) FILE=typeMONTECARLOfront.dat;;
				4) FILE=typeMIXfront.dat;;
			esac	
		fi

		# clear the .dat file
		echo -e "vars \t procdone \t average \t spread" > $FILE

		for i in CPUvar IOvar MEMvar # PROCvar
		do

			#start loop over different vars
			echo -e "\n varieer $i belasting" >> $FILE
			for CPUvar in 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9
			do
				echo -n "."
				echo $CPUvar $IOvar $MEMvar $PROCvar $SCHEDvar $ENQUEvar | ./schedule > temp.txt
				STRING1=$(echo `grep 'Gemiddelde' temp.txt | tail -1 | awk '{gsub("Gemiddelde waarde: ", ""); gsub(", spreiding:", ""); print}'`)
				AVERAGE=${STRING1% *}
				SPREAD=${STRING1#* }
				NUMPROC=$(echo `grep 'over de' temp.txt | tail -1 | awk '{gsub("over de laatste ", ""); gsub(" beeindigde processen", ""); print}'`)
				echo -e "$CPUvar \t $NUMPROC \t $AVERAGE \t $SPREAD" >> $FILE
			done
			# put vars back
			CPUvar=0.7
			IOvar=0.7
			MEMvar=0.7
		done

		echo -e "\n varieer aantal processen" >> $FILE
		for ((i=100;i<1500;i+=100))
		do
			echo -n "."
			echo $CPUvar $IOvar $MEMvar $i $SCHEDvar $ENQUEvar | ./schedule > temp.txt
			STRING1=$(echo `grep 'Gemiddelde' temp.txt | tail -1 | awk '{gsub("Gemiddelde waarde: ", ""); gsub(", spreiding:", ""); print}'`)
			AVERAGE=${STRING1% *}
			SPREAD=${STRING1#* }
			NUMPROC=$(echo `grep 'over de' temp.txt | tail -1 | awk '{gsub("over de laatste ", ""); gsub(" beeindigde processen", ""); print}'`)
			echo -e "$i \t $NUMPROC \t $AVERAGE \t $SPREAD" >> $FILE
		done
		# reset PROCvar
		PROCvar=1000
		echo "" # newline
	done	
done

echo "done"
rm temp.txt
