INF3600 Syst¨mes d'exploitation

  • View
    257

  • Download
    13

Embed Size (px)

Text of INF3600 Syst¨mes d'exploitation

  • INF3600Systmes dexploitation

    Hanifa Boucheneb et Juan Manuel Torres-Moreno

    Dpartement de gnie informatiquecole Polytechnique de Montral

    version 3.90

    16 avril 2003

  • 2

  • Prface

    CE document reprsente la formalisation des notes de cours INF3600-Systmes dexploitation, enseign au Dpartement de gnie informa-tique de lcole Polytechnique de Montral.

    Ce texte et les nombreuses applications quil contient visent donner ltudiant 1 une ide, la fois, assez claire que vaste de ce que sont lessystmes dexploitation, notamment leur importance dans toute formationen informatique. Il sadresse indistinctement aux tudiants en gnie infor-matique, informatique, gnie lectrique ou sciences.

    Le document aborde lensemble des thmes lis aux systmes dexploi-tation rels. Les aspects thoriques prsents dans ce document constituentune synthse des nombreux ouvrages qui existent dans la littrature. Parcontre, les aspects pratiques ont systmatiquement fait lobjet dun dve-loppement privilgi bien adapt au matriel utilis dans nos laboratoires.En effet, ce document est compos de nombreux exemples de programmesqui contribuent mieux comprendre les fonctionnalits des systmes dex-ploitation. Pour des raisons strictement pdagogiques, et eu gard lacomplexit de la matire (limportance de linformation, la multitude deconcepts. . . ) nous avons privilgi une approche de type didactique. Cestainsi que nous prsentons :

    Les concepts principaux et les techniques fondamentales des systmesdexploitation.

    Les modules de base dun systme dexploitation moderne.

    Les interactions entre ces modules et les problmes lis leurs im-plantations ainsi que les solutions adoptes dans les systmes mo-dernes.

    1. Afin de simplifier le texte, seul le masculin a t utilis pour dsigner toute personnesans distinction du genre.

    3

  • 4

    Nous avons utilis les systmes dexploitation Unix et GNU/Linux pourillustrer nos exemples. Nous suggrons aussi de lectures qui pourront en-richir la matire vue.

    Ce document est un support pdagogique vivant aussi bien pourles enseignants que pour les tudiants. Il est, en effet, appel faire lobjetdune actualisation permanente tant par les suggestions attendues des unset des autres la fois, pour les amliorations apporter et les exercices que de la prise en compte de nouvelles ralits.

    Il va de soi quun texte nest jamais exempt derreurs, quand bien mmeon sentoure de toutes les prcautions pour les viter. Nous serions donctrs reconnaissants aux lecteurs de nous signaler toute erreur.

    Montral, automne 2002 | hiver 2003Hanifa Boucheneb et Juan Manuel Torres-Moreno

    {hanifa.boucheneb,juan-manuel.torres}@polymtl.ca

  • Contenu

    LE matriel est divis en plusieurs chapitres et sections. Tout au longdu document, nous prsentons des nombreux exemples clairs sur lesapplications et consquences de chaque concept.

    Le Chapitre 1 prsente un aperu rtrospectif des concepts et fonction-nalits des systmes dexploitation. Un systme dexploitation est un pro-gramme qui doit permettre aux utilisateurs dutiliser les fonctionnalitsdun ordinateur. Il doit aussi aider le programmeur dvelopper des lo-giciels de la faon la plus efficace possible. Dans les grosses machines, ilest toujours en excution. Le systme constitue donc une interface entrelutilisateur et la machine physique.

    Le Chapitre 2 introduit le systme dexploitation Unix et plus particu-lirement son clone Linux. Le standard Posix est aussi introduit. La pr-sentation des commandes, processus et fichiers est faite en utilisant desexemples de programmation shell.

    Le Chapitre 3 dfini le concept de processus, puisque tout le logicieldun ordinateur est organis en un certain nombre de processus squen-tiels. Les threads ou processus lgers sont aussi introduits. De nombreuxexemples sont prsents et programms sous le standard Posix.

    Le Chapitre 4 prsente lordonnancement ou planification des proces-sus. Dans un systme multi-utilisateurs temps partag, plusieurs proces-sus peuvent tre prsents en mmoire centrale en attente dexcution. Siplusieurs processus sont prts, le systme dexploitation doit grer lalloca-tion du processeur aux diffrents processus excuter. On verra donc quecest lordonnanceur qui sacquitte de cette tche.

    Le Chapitre 5 traite sur les processus coopratifs pour rsoudre un mmeproblme. Ces processus sexcutent en parallle sur un ordinateur (mo-noprocesseur ou multiprocesseurs) ou sur des ordinateurs diffrents. Ilsdoivent schanger des informations en tablissant une vraie communica-tion interprocessus. Nous tudierons les plusieurs moyens de cette com-

    5

  • 6

    munication : les variables communes, les fichiers communs, les signaux, lesmessages et les tubes de communication.

    Dans un systme dexploitation multiprogramm en temps partag, plu-sieurs processus sexcutent en parallle et partagent des objets comme lammoire, les imprimantes, et dautres. Le partage dobjets sans prcautionparticulire peut conduire des rsultats imprvisibles. La solution au pro-blme sappelle synchronisation des processus, thme qui sera abord auChapitre 6.

    Les paquets de communication entre processus (Inter Process Commu-nication) IPC qui offre le System V sont composs de trois mcanismes fon-damentaux : les smaphores, la mmoire partage et les files de messages.Bien que la communication IPC ne soit pas fonde sur les descripteurs defichiers, il existe de nombreuses applications quen utilisent ces techniquespuissantes. Le Chapitre 7 est donc consacr la communication IPC.

    Lexcution dun processus ncessite un ensemble de ressources quilui sont attribues par le systme dexploitation. Lutilisation dune res-source passe par les tapes : demande, utilisation et libration. Des pro-blmes peuvent survenir lorsque les processus obtiennent des accs exclu-sifs aux ressources. Par exemple, un processus dtient une ressource et attend une autre ressource, utilise dj par un autre processus, quidtient la ressource et attend la ressource . On a une situation dinter-blocage car attend qui attend . Les deux processus vont attendreindfiniment. Ce thme sera trait au Chapitre 8.

    La mmoire principale est le lieu o se trouvent les programmes et lesdonnes quand le processeur les excute. On loppose au concept de m-moire secondaire, reprsente par les disques, de plus grande capacit, oles processus peuvent sjourner avant dtre excuts. La ncessit de g-rer la mmoire de manire optimale est toujours fondamentale, car en d-pit de sa grande disponibilit, elle nest, en gnral, jamais suffisante. Cecien raison de la taille continuellement grandissante des programmes. Nousverrons dans le Le Chapitre 9 quil y a plusieurs schmas pour la gestion dela mmoire, avec leurs avantages et inconvnients. Dun autre ct, la m-moire virtuelle est une technique qui permet dexcuter des programmesdont la taille excde la taille de la mmoire relle. Avec des techniques ad-quates, comme on verra dans le Chapitre 10, sa taille peut tre trs sup-rieure celle de la mmoire physique.

    Un fichier dsigne un ensemble dinformations stockes sur le disque.Le systme de fichiers est la partie du systme dexploitation qui se chargede grer les fichiers. La gestion consiste en la cration, la suppression, lesaccs en lecture et en criture, le partage de fichiers et leur protection en

  • 7

    contrlant les accs. Ce thme sera consacre au Chapitre 11.Les fichiers de donnes sur les disques se rpartissent dans des blocs

    de taille fixe. La lecture ou lcriture dun lment dun fichier impliqueradonc le transfert du bloc entier qui contient cet lment. Pour un accs ra-pide, on aura donc intrt implanter des techniques adquates de sto-ckage et le partage de fichiers. Le Chapitre 12 traite ces questions.

    Nous verrons dans le Chapitre 13, que les ordinateurs disposent de p-riphriques dEntres/Sorties (terminaux, disques, imprimantes, quipe-ments de communication, etc.). Le systme dexploitation peut considrerles priphriques comme des fichiers spciaux, et donc intgre leur gestionau cur du systme de fichiers.

    Finalement, le Chapitre 14 se veut un aperu la rponse de pourquoiles systmes dexploitation distribus ? Nous verrons que le dveloppe-ment de microprocesseurs puissants et linvention des rseaux locaux haut dbit ont permis de connecter des plusieurs ordinateurs pour chan-ger de de linformation. Ces ordinateurs connects par un rseau de com-munication constituent un systme distribu. Ainsi, des concepts logiciel etmatriel seront prsents. La programmation des sockets sera prsente endtail comme brique de base de la communication distribue.

  • 8

  • Table des matires

    1 Introduction 251.1 Quest ce quun systme dexploitation? . . . . . . . . . . . . 25

    1.1.1 Le systme dexploitation . . . . . . . . . . . . . . . . 261.2 volution des systmes dexploitation . . . . . . . . . . . . . 271.3 Interactions utilisateur/systme . . . . . . . . . . . . . . . . . 321.4 Appels systme . . . . . . . . . . . . . . . . . . . . . . . . . . 33

    1.4.1 Les processus . . . . . . . . . . . . . . . . . . . . . . . 331.4.2 Les fichiers . . . . . . . . . . . . . . . . . . . . . . . . . 34

    1.5 Structure dun systme dexploitation . . . . . . . . . . . . . 351.5.1 Structure en couches . . . . . . . . . . . . . . . . . . . 351.5.2 Structure monolithique . . . . . . . . . . . . . . . . . 361.5.3 Micro-kernel . . . . . . . . . . . . . . . . . . . . . . . . 371.5.4 Le modle client/serveur . . . . . . . . . . . . . . . . 371.5.5 Machines virtuelles . . . . . . . . . . . . . . . . . . . . 38

    1.6 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

    2 Introduction au systme Unix/Linux 432.1 Bref historique . . . . . . . . . . . . . . . . . . . . . . . . . . . 432.2 Caractristiques . . . . . . . . . . . . . . . . . . . . . . . . . . 44

    2.2.1 Structure