Cours copiés au premier semestre
This commit is contained in:
commit
96e4f76a9c
6 changed files with 1135 additions and 0 deletions
63
OS/7-memoirevirtuelle.tex
Normal file
63
OS/7-memoirevirtuelle.tex
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
\subsection{Algorithme de l'ensemble de travail (WS), 1970}
|
||||
|
||||
\textbf{Phénomène de localisation~:} l'ensemble des pages référencées
|
||||
dépend de \og phases\fg{} dans l'exécution.
|
||||
|
||||
\subsection{Bufferisation}
|
||||
|
||||
Maintenir un ensemble de cadres de pages libres en permanance.
|
||||
Lorsqu'un processus demande un nouveau cadre, on sélectionne une
|
||||
victime, mais on ne la supprime pas tout de suite.
|
||||
|
||||
On attend que le MMU soit inactif pour le faire.\\
|
||||
|
||||
Implémentation grâce à un \og paging daemon\fg.
|
||||
|
||||
\section{Problèmes liés à la conception}
|
||||
|
||||
\subsection{Politiques de sélection des pages}
|
||||
|
||||
Deux politiques sont possibles~:
|
||||
\begin{itemize}
|
||||
\item \textbf{Allocation globale~:} considérer toutes les pages
|
||||
actuellement en mémoire.
|
||||
\item \textbf{Allocation locale~:} lorsque l'on choisit une
|
||||
victime, on va chercher a supprimer une page du processus
|
||||
courant.
|
||||
\end{itemize}
|
||||
|
||||
\subsection{Répartition des cadres de page}
|
||||
|
||||
\begin{itemize}
|
||||
\item \textbf{Allocation équitable~:} chaque processus a un nombre
|
||||
de cadres de pages identiques aux autres processus.
|
||||
\item \textbf{Allocation proportionnelle~:} on alloue un nombre de
|
||||
cadre de page en fonction de la taille du processus.
|
||||
\item \textbf{Allocation mixte~:} on effectue une allocation
|
||||
proportionelle, en regardant aussi la priorité du processus.
|
||||
\item \textbf{Prépagination~:} on commence a allouer les premières
|
||||
pages du processus (_start, main, ...) pour éviter le grand nombre
|
||||
de défaut de page au lancement.
|
||||
\end{itemize}
|
||||
|
||||
\subsection{Autres}
|
||||
|
||||
\textbf{Contrôle de charge~:} gérer \og l'écroulement\fg{} (la somme
|
||||
des ensembles de travail dépasse la capacité
|
||||
mémoire). Swapping/refuser d'en faire plus...\\
|
||||
|
||||
\paragraph{Pages partagées~:} en allocation locale, on peut supprimer une
|
||||
page partagée non utilisé dans un processus donné, mais très utilisée
|
||||
par d'autres processus.
|
||||
|
||||
\paragraph{Structure des programmes~:} la manière dont on organise le
|
||||
code a une incidence sur le pagineur.
|
||||
|
||||
\paragraph{Vérouillage des E/S~:} il faut a tout prix éviter
|
||||
l'éviction d'une page qui est en attente d'une E/S. Pour cela, on
|
||||
utilise le bit verrou.\\
|
||||
On peut aussi utiliser ce bit pour vérouiller les pages d'un programme
|
||||
nouvellement chargé en mémoire.
|
||||
|
||||
\section{Problèmes liés à l'implémentation}
|
||||
|
||||
Reference in a new issue