Finalize paper

This commit is contained in:
Pavle Portic 2020-02-22 18:46:59 +01:00
parent db086982ae
commit 877f9a4465
Signed by: TheEdgeOfRage
GPG Key ID: 6758ACE46AA2A849
5 changed files with 22 additions and 15 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 59 KiB

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 58 KiB

BIN
images/natrium.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 60 KiB

After

Width:  |  Height:  |  Size: 56 KiB

View File

@ -203,10 +203,9 @@ Podaci se prikupljaju tako što se isti program koji poziva sistemske pozive pok
\subsection{Interno i eksterno prikupljanje podataka} \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. 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: Prikupljeni podaci prikazani su narednim tabelama. Merna jedinica svih vremenskih intervala je milisekunda:
% TODO Remove slab freelist randomization
\begin{figure}[H] \begin{figure}[H]
\includegraphics[width=\linewidth]{images/neon.png} \includegraphics[width=\linewidth]{images/neon.png}
\caption{AMD Ryzen 7 1700 @ 3.6 GHz} \caption{AMD Ryzen 7 1700 @ 3.6 GHz}
@ -218,10 +217,9 @@ Prikupljeni podaci prikazani su narednim tabelama. Merna jedinica svih vremenski
\end{figure} \end{figure}
\begin{figure}[H] \begin{figure}[H]
\includegraphics[width=\linewidth]{images/natrijum.png} \includegraphics[width=\linewidth]{images/natrium.png}
\caption{Intel Core i5--3320M @ 2.6 GHz} \caption{Intel Core i5--3320M @ 2.6 GHz}
\end{figure} \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. 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} \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} 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{samepage}
\begin{minted}{c} \textit{mmap}:
char* region = mmap( \begin{minted}{c}
(void*) pagesize, char* region = mmap(
pages* pagesize, (void*) pagesize,
PROT_READ|PROT_WRITE|PROT_EXEC, pages* pagesize,
MAP_ANON|MAP_PRIVATE, PROT_READ|PROT_WRITE|PROT_EXEC,
0, MAP_ANON|MAP_PRIVATE,
0 0,
); 0
\end{minted} );
\end{minted}
\end{samepage}
\textit{munmap}: \textit{munmap}:
\begin{minted}{c} \begin{minted}{c}
@ -384,6 +384,13 @@ pthread_join(thread_id, NULL);
\end{minted} \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. 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} \chapter{Literatura}
\sloppy \sloppy
\printbibliography[heading=none] \printbibliography[heading=none]