12.07.2015 Views

Généralités sur les systèmes d'exploitation - Site personnel de ...

Généralités sur les systèmes d'exploitation - Site personnel de ...

Généralités sur les systèmes d'exploitation - Site personnel de ...

SHOW MORE
SHOW LESS
  • No tags were found...

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

LO14 : Université Technologique <strong>de</strong> TroyesThéorie <strong>de</strong> la localité : le fait que <strong>les</strong> instructions se déroulent <strong>les</strong> une après <strong>les</strong> autres (séquentiel) impliqueque <strong>les</strong> adresses ne varient pas beaucoup pour un programme et <strong>de</strong> même statistiquement pour <strong>les</strong>données (marche pour <strong>les</strong> caches)Une fois décidée le découpage en pages <strong>de</strong>ux problèmes sont à résoudre : la politique d'allocation <strong>de</strong> pagesaux processus et la politique <strong>de</strong> remplacement <strong>de</strong> pages.a) politique <strong>de</strong> remplacement <strong>de</strong> pageL'objectif <strong>de</strong> cette politique est <strong>de</strong> gérer une mémoire virtuelle. La pagination est un moyen qui permet eneffet d'avoir une mémoire logique plus gran<strong>de</strong> que la mémoire physique disponible réellement. Si unprocessus a une taille <strong>de</strong> co<strong>de</strong> plus gran<strong>de</strong> que la mémoire physique il pourra fonctionner (avec <strong>de</strong>s défauts<strong>de</strong> page bien sûr).Si un programme adresse une page non présente, une exception appelée erreur <strong>de</strong> page est générée et <strong>les</strong>ystème <strong>d'exploitation</strong> est responsable du chargement <strong>de</strong> cette page. Cette opération est lente car<strong>de</strong>man<strong>de</strong> <strong>de</strong>s accès disques.Politiques <strong>de</strong> chargement :- préchargement : amener avant d'y faire référence, c'est impossible car on ne sait pas qui sera adressédans le futur.- chargement à la <strong>de</strong>man<strong>de</strong> : la plus utilisée. VAX charge en même temps <strong>les</strong> pages contiguës.On dispose en mémoire <strong>de</strong> plusieurs pages ce qui implique au moment du chargement, laquelle effacer ?Politiques <strong>de</strong> remplacement :• algorithme aléatoire : simple mais peu efficace.• algorithme FIFO : marche très bien lorsque le système <strong>de</strong>vient chargé.• algorithme LRU : (Last Recently used) profite <strong>de</strong> la théorie <strong>de</strong> la localité.• algorithme LFU : (Last Frequently used) détecte donc <strong>les</strong> pages peu utilisées. mais si ce qui est peuutilisé est récent, cet algorithme ne donne pas un bon résultat.• algorithme <strong>de</strong> classes : on réserve 2 bits pour chaque page R est le bit <strong>de</strong> référence mis à 1 si la pageest référencée et M bit <strong>de</strong> modification est mis à 1 si la page est modifiée. On expulse dans l'ordre(R,M) (0,0) (1,0) (1,1) (0,1)• algorithme <strong>de</strong> la secon<strong>de</strong> chance : FIFO mais avant <strong>de</strong> retirer on regar<strong>de</strong> le bit R. S'il vaut 1, on le metà 0 et on insère la page en début <strong>de</strong> la liste FIFO (comme si elle venait d'arriver).b) politique d'allocation <strong>de</strong> pages aux processusComment répartir <strong>les</strong> pages <strong>sur</strong> <strong>les</strong> différents processus et le système ?Remplacement local : un processus se voit affecter un certain nombre <strong>de</strong> pages qu'il va utiliser <strong>de</strong> façonautonome, son temps d'exécution ne dépend que <strong>de</strong> son propre comportement.Remplacement global : le comportement d'allocation <strong>de</strong> pages aux processus dépend <strong>de</strong> la charge dusystème et du comportement <strong>de</strong>s différents processus.Problème d'écroulement : si le nombre <strong>de</strong> page alloué à un processus tombe en-<strong>de</strong>ssous <strong>de</strong> son minimumvital , ce processus sera constamment en erreur <strong>de</strong> page. Ce processus doit être éjecté en zone <strong>de</strong> swap etreviendra plus prioritaire quand il y aura <strong>de</strong> la place. Un exemple <strong>de</strong> bonne et mauvaise utilisation <strong>de</strong> pagesavec un tableau à <strong>de</strong>ux dimensions est donné :/* bonne utilisation */int m[2048][2048];main () {int i,j;for (i=0;i

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!