\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}