diff --git a/images/jelena.png b/images/jelena.png index e7215d4..f4483b1 100644 Binary files a/images/jelena.png and b/images/jelena.png differ diff --git a/images/natrijum.png b/images/natrijum.png deleted file mode 100644 index 3cc763b..0000000 Binary files a/images/natrijum.png and /dev/null differ diff --git a/images/natrium.png b/images/natrium.png new file mode 100644 index 0000000..67ce6c2 Binary files /dev/null and b/images/natrium.png differ diff --git a/images/neon.png b/images/neon.png index f2c53a7..5077129 100644 Binary files a/images/neon.png and b/images/neon.png differ diff --git a/seminarski.tex b/seminarski.tex index 02ed9de..fd2364d 100644 --- a/seminarski.tex +++ b/seminarski.tex @@ -203,10 +203,9 @@ Podaci se prikupljaju tako što se isti program koji poziva sistemske pozive pok \subsection{Interno i eksterno prikupljanje podataka} Prikupljanje podataka izvršeno je na način koji je naveden u procesu planiranja. Detalji arhitekture sistema i programa koji su pokretani opisani su u naredna dva poglavlja. -\subsection{Merenje i poređenje performansi sistema} +\subsection{Merenje i poređenje performansi sistema}\label{benchmark} Prikupljeni podaci prikazani su narednim tabelama. Merna jedinica svih vremenskih intervala je milisekunda: -% TODO Remove slab freelist randomization \begin{figure}[H] \includegraphics[width=\linewidth]{images/neon.png} \caption{AMD Ryzen 7 1700 @ 3.6 GHz} @@ -218,10 +217,9 @@ Prikupljeni podaci prikazani su narednim tabelama. Merna jedinica svih vremenski \end{figure} \begin{figure}[H] - \includegraphics[width=\linewidth]{images/natrijum.png} + \includegraphics[width=\linewidth]{images/natrium.png} \caption{Intel Core i5--3320M @ 2.6 GHz} \end{figure} -% TODO analiza rezultata Iz priloženog se primećuje da različite konfiguracije Linux jezgra znatno utiču na vreme izvršavanja pojedinih sistemskih poziva. Pošto je uzrok promene u vremenu paljenje i gašenje pojedinih funkcionalnosti jezgra, nije potrebno ispitivanje razloga koji dovodi do promene performansi. @@ -317,17 +315,19 @@ Povratna vrednost sistemskog poziva write je broj upisanih bajtova ako je pisanj \section{Mmap i munmap} \textit{Mmap} povezuje adresni prostor procesa sa objektom u RAM memoriji. \textit{Munmap} sistemski poziv je zadužen da ukloni vezu koju \textit{mmap} kreira. Pošto su operacije usko povezane, njihovo vreme izvršavanja se meri zajedno. Program kao argument komandne linije prima broj izvršavanja sistemskih poziva \textit{mmap} i \textit{munmap}, $ n $ i broj memorijskih stranica koje se mapiraju, \texttt{pages}. Svaki od $ n $ poziva prvo izvršava \textit{mmap}, pa nakon njega \textit{munmap} sistemski poziv. -\textit{mmap}: -\begin{minted}{c} - char* region = mmap( - (void*) pagesize, - pages* pagesize, - PROT_READ|PROT_WRITE|PROT_EXEC, - MAP_ANON|MAP_PRIVATE, - 0, - 0 - ); -\end{minted} +\begin{samepage} + \textit{mmap}: + \begin{minted}{c} + char* region = mmap( + (void*) pagesize, + pages* pagesize, + PROT_READ|PROT_WRITE|PROT_EXEC, + MAP_ANON|MAP_PRIVATE, + 0, + 0 + ); + \end{minted} +\end{samepage} \textit{munmap}: \begin{minted}{c} @@ -384,6 +384,13 @@ pthread_join(thread_id, NULL); \end{minted} i meri vreme koje je potrebno da se kod izvrši. Prva komanda kreira nit i identifikator niti sačuva u promenjivoj \texttt{thread\_id}. Nakon toga pozove funkciju \texttt{threadFun()} bez parametara. Druga komanda čeka da se izvrši funkcija \texttt{threadFun()} bez da sačuva povratnu vrednost i nakon toga uništi nit. +\chapter{Zaključak} +Iz izmerenih vremena izvršavanja u~\hyperref[benchmark]{sekciji 3.2.2} se prvobitno vidi razlika između Intel i AMD sistema. Kod Intel sistema izolacija jezgarne tabele stranica ima značjano veći uticaj na performanse nego kod AMD sistema. Obrnuto od toga, gašenje \textit{Spectre} mitigacije, daje značajniji porast performansama na AMD sistemima. + +Za ostale parametre se u većini slučajeva dobijaju bolje performanse ako su ugašeni (podrazumevano su upaljeni), sem kod nekih izuzetaka kao npr.\ \textit{fork} sistemski poziv uz \texttt{PAGE\_TABLE\_ISOLATION} parametar ugašen. Pretpostavka je da sa spojenim tabelama stranica, operativni sistem mora da prođe kroz više stranica i napravi njihove kopije prilikom kreiranja novog procesa. + +Dalje ispitivanje bi moglo da se radi nad različitim kombinacijama parametara što zahteva znatno veće vreme prevođenja jezgra i pokretanja merenja vremena izvršavanja, pošto broj kombinacija raste eksponencijalno sa svakim parametrom. + \chapter{Literatura} \sloppy \printbibliography[heading=none]