diff --git a/report/4.results.tex b/report/4.results.tex index c2c51a1..421c373 100644 --- a/report/4.results.tex +++ b/report/4.results.tex @@ -22,7 +22,7 @@ \begin{figure}[H] \centering - \resizebox{\textwidth}{!}{ + \resizebox{.9\textwidth}{!}{ \includegraphics[scale=1]{res/diagrams/graph_exp_12.eps} } \caption{Απόκλιση χρόνων δειγματοληψείας για τα πειράματα ένα και δύο} @@ -30,8 +30,18 @@ \begin{figure}[H] \centering - \resizebox{\textwidth}{!}{ + \resizebox{.9\textwidth}{!}{ \includegraphics[scale=1]{res/diagrams/graph_exp_34.eps} } \caption{Απόκλιση χρόνων δειγματοληψείας για τα πειράματα τρία και τέσσερα} \end{figure} + +Τέλος παρατηρώντας τη χρήση του επεξεργαστή κατά τη διάρκεια των πειραμάτων γίνεται εμφανές ότι η μέθοδος του τέταρτου πειράματος οδηγεί σε σαφώς μικρότερη χρήση επεξεργαστικών πόρων και άρα λιγότερη κατανάλωση ενέργειας. Το ίδιο μπορεί να παρατηρηθεί κάνοντας profiling του προγράμματος. Παρακάτω φαίνεται το ποσοστό χρήσης επεξεργαστικής ισχύος, επί της συνολικής ισχύς που χρησιμοποιήθηκε για μία εκτέλεση του προγράμματος, όπου παρατηρείται ότι η πλειοψηφία των υπολογισμών γίνεται στην επαναληπτική διαδικασί του τρίτου πειράματος. + +\begin{figure}[H] + \centering + \resizebox{.9\textwidth}{!}{ + \includegraphics{res/diagrams/profile.png} + } + \caption{Profile προγράμματος} +\end{figure} \ No newline at end of file diff --git a/report/report.pdf b/report/report.pdf index c7344b6..95414a1 100644 Binary files a/report/report.pdf and b/report/report.pdf differ diff --git a/report/res/diagrams/profile.png b/report/res/diagrams/profile.png new file mode 100644 index 0000000..1eb21ff Binary files /dev/null and b/report/res/diagrams/profile.png differ diff --git a/test_sample.c b/test_sample.c index b2bb134..17da057 100644 --- a/test_sample.c +++ b/test_sample.c @@ -3,8 +3,8 @@ int main(int argc, char **argv) { Parameters parameters; parseArguments(argc, argv, ¶meters); - //parameters.numberOfSamples = (parameters.time + parameters.delta - 1) / parameters.delta; - parameters.numberOfSamples = 1 + ((parameters.time - 1) / parameters.delta); + parameters.numberOfSamples = (parameters.time + parameters.delta - (parameters.delta / 10.)) + / parameters.delta; // Initialize a matrix to store the sample values double **samplesMatrix = (double **) malloc(parameters.numberOfSamples * sizeof(double *)); diff --git a/test_sample_functions.c b/test_sample_functions.c index fa6e1ff..389ab67 100644 --- a/test_sample_functions.c +++ b/test_sample_functions.c @@ -21,9 +21,10 @@ volatile sig_atomic_t sample_flag = false; /* ===== FUNCTIONS ===== */ /* - * testSampling implements the sampling experiment. Three different ways of sampling are + * testSampling implements the sampling experiment. Four different ways of sampling are * implemented. On the first one sleep is used. On the second sleep is used and the sleep times are - * corrected based on the previous error. On the third alarms are used. + * corrected based on the previous error. On the third interrupts are used. On the fourth interrupts + * are combined with sleep to minimize power consumption. */ void testSampling(double ***samplesMatrix, Parameters parameters) { printf(ANSI_COLOR_CYAN "----- RUNNING FIRST EXPERIMENT\n" ANSI_COLOR_RESET);