Post

CM1 Intro

Télécharger le CM1 Intro en pdf

Pages : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61

Page 1 : Système d’ExploitationIntroduction aux SE Programmation de processusJuan Angel Lorenzo del CastilloContributions de : Thierry Garcia, Florent Devin et Taisa Guidini Gonçalves et Mariem ALLOUCH MAHDI2025-20261

page 1

Page 2 : Plan1. Introduction2. Le Système d’Exploitation3. Révision du Matériel4. Éléments de base d’un SEProcessus et threads Système de Fichiers Entrée/Sortie Plages d’adressage ProtectionL’interprète des commandes5. Appels SystèmeInterruptions6. Structure des SE7. Programmation de processus2

page 2

Page 3 : IntroductionIntroduction3

page 3

Page 4 : IntroductionMotivationSystème d’exploitation : lien entre le matériel, le logicielet l’utilisateur.Comment un programme i.e. du logiciel peut être transposé au planphysique?Comment utiliser un ordinateur de façon efficace?Disciplinefondamentaleettransversalepourl’IngénierieInformatique.Essentielle pour comprendre d’autres matières :▶Architecture des Ordinateurs ING1▶Programmation Système et Réseau ING2▶Architecture et Programmation Parallèle et Distribuée ING2▶Architecture réseau ING2▶Projets ING2▶etc.4

page 4

Page 5 : IntroductionObjectifsConnaître les fonctionnalités des SEStructureGestion des ressources matériellesAdministration des programmesInterface avec l’utilisateurDu point de vue de l’utilisateur, de l’administrateur et aussi du designer.En mettant l’accent sur Linux/Unix.5

page 5

Page 6 : IntroductionThèmes à aborderProcessus et cycle de vie L’ordonnanceur d’un SE Gestion de la mémoireSystème des fichiersProcessus de démarrage d’un SEInstallation et configuration d’un SEDocker 6

page 6

Page 7 : IntroductionBibliographie7

page 7

Page 8 : IntroductionÉvaluationExamen final papier2 heuresCalculatrice autorisée8

page 8

Page 9 : Le Système d’ExploitationPlan1. Introduction2. Le Système d’Exploitation3. Révision du Matériel4. Éléments de base d’un SEProcessus et threads Système de Fichiers Entrée/Sortie Plages d’adressage ProtectionL’interprète des commandes5. Appels SystèmeInterruptions6. Structure des SE7. Programmation de processus9

page 9

Page 10 : Le Système d’ExploitationLe Système d’Exploitation10

page 10

Page 11 : Le Système d’ExploitationL’ordinateur moderne, un système complexeComposants :Un ou plusieurs microprocesseursMémoiresDisquesClavierSourisDisplays écranInterfaces réseauD’autres périphériques d’entrées / sortiesEtc.11

page 11

Page 12 : Le Système d’ExploitationL’ordinateur moderne, un système complexeComposants :Programmessystèmesquipermettentlefonctionnementdel’ordinateur le système d’exploitationExécutés en mode kernel aussi appelé mode système ou superviseur :accès total au matériel et à toutes les instructions du processeur.Programmes d’application des utilisateursExécutés en mode utilisateur : restreint l’accès aux ressources del’ordinateur. Seulement un sous-ensemble des instructions du processeursontdisponibles Exemple : instructions d’E/S interdites et accèsmémoire protégé.Matériel Hardware12

page 12

Page 13 : Le Système d’ExploitationL’ordinateur moderne, un système complexeProblème : L’administration et l’utilisation efficace deviennent difficileComment un programme peut accéder aux périphériques?Ou à la mémoire physiquement ?Comment gérer des erreurs?Ces problèmes font partie du rôle d’un SESystème d’exploitationCouche logiciel qui s’occupe de :fournir aux programmes d’application un modèle plus simple et propre de l’ordinateur présentation.gérer l’utilisation de toutes les ressources de l’ordinateur gestion.13

page 13

Page 14 : Le Système d’ExploitationFonctions du Système d’ExploitationPrésentation : Fournirun ensemble abstraitdesressources aux programmes/développeurs.Les programmes d’application interagissent avec le SE.Les utilisateurs interagissent avec l’interface utilisateur Shell ou GUI- Graphical User Interface.Abstraction plus simple et plus agréable que le matériel.14

page 14

Page 15 : Le Système d’ExploitationFonctions du Système d’ExploitationGestion des ressources matérielles. Le SE doit connaître en détail le matériel de l’ordinateur.Ordonne et contrôle l’allocation des ressources aux programmes.Résolution des conflits entre programmes ou entre utilisateurs.Gestion des entrées/ sorties.Gestion des processus charger, exécuter, terminer.Gestion de la mémoire centrale.Utilisationpartagée multiplexing : entemps Ex. CPU - processeur et enspaceEx. mémoire.15

page 15

Page 16 : Le Système d’ExploitationLe "Zoo" des Systèmes d’ExploitationMainframe : Data centers de haute performance. Capacité E/S trèsélevée.UNIX/Linux.Serveur : Services à plusieurs utilisateurs. Partage des ressources matériels etlogiciels. Linux, Windows Server, Solaris, FreeBSD.Multiprocesseur:PlusieursCPUsconnectées.Ordinateurspersonnelsdeviennent multiprocesseurs. Linux, Windows.SE d’ordinateur personnel : Fournit un bon support à un seul utilisateur.Linux, Windows, Apple OS X.Mobile : Téléphones, appareils photo numériques. Android, Apple iOS.Embarqué : TVs, DVDs, voitures, reproducteurs MP3.Android, QNX,VxWorks.Noeud-capteur : Réseaux des capteurs minuscules. Météo, défense, etc. SEpetit et simple. TinyOS.Temps réel : Temps comme paramètre essentiel. Systèmes de contrôle,systèmes multimedia. RTLinux, eCos.16

page 16

Page 17 : Plan1. Introduction2. Le Système d’Exploitation3. Révision du Matériel4. Éléments de base d’un SEProcessus et threads Système de Fichiers Entrée/Sortie Plages d’adressage ProtectionL’interprète des commandes5. Appels SystèmeInterruptions6. Structure des SE7. Programmation de processusRévision du Matériel17

page 17

Page 18 : Révision du MatérielRévision du Matériel18

page 18

Page 19 : Révision du Matériel19

page 19

Page 20 : Révision du MatérielLe processeurCPU Central Processing Unit : Le “cerveau” de l’ordinateur.Exécute des instructions en langage assembleur des programmes placésen mémoire centrale.Répertoire fixé d’instructions, normalement incompatible avec celui d’autrefamille de processeurs Ex. Intel x86 vs. ARM.Registres pour stocker des variables ou des résultats temporaires accès àmémoire très long.20Source : https://www.napsis.fr/cloud-lexique/cpu-et-vcpu/

page 20

Page 21 : Révision du MatérielLe processeurQuelques registres sont accessibles aux programmeurs :Compteur ordinal PC : contient l’adresse en mémoire de laprochaine instruction à charger.Pointeur de pile : contient l’adresse supérieure de la pile de mémoire àrevoir plus tard.PSW Program Status Word : contient des informations-clés sur lefonctionnement du processeurValeur du compteur ordinalInformations sur les interruptions masquées ou nonMode du processeur user ou kernelPrioritésEtc. . .format spécifique à un processeur21

page 21

Page 22 : Révision du MatérielLe processeurArchitecture du processeur Intel x8622MémoireProcesseur

page 22

Page 23 : Révision du MatérielLe processeurSystèmes multi-threadProgrammes avec plusieurs fils/threads d’exécution processus “légers” qui partagent les ressources d’un unique Coeur.Multiplexage temporel des threads.Le SE verra plusieurs CPUs.Systèmes multi-noyau multi-core :Plusieurs coeurs physiques. Quad-core avec partage de mémoire cache L2 a vs. L2 intégrée b.Intel Xeon Phi 60 cores !!GPUs Graphics Processing Units.23

page 23

Page 24 : Révision du MatérielLa MémoireLa mémoire centrale contient les instructions et donnéesdes applications ou des programmes à exécuter.Avec le disque, la mémoire cache, elle constitue un systèmede hiérarchie de mémoire qui permet de rapprocher la vitesse de la mémoire centrale de celle du processeur.Conditions requises : rapide, grande et pas chère.Approche : hiérarchie des couches24

page 24

Page 25 : Révision du MatérielLa MémoireMémoire secondaire disques dursDisque magnétique : dispositif mécanique, avecdesplateaux tournants 5400, 7200, 10.800 RPMsDispositifs d’état solide SSDs, Solid State Disks : Sans pièces mobiles.Données stockées en mémoire flash.25

page 25

Page 26 : Révision du MatérielDispositifs d’Entrée/SortieDeux parties :Contrôleur : chip qui contrôle le dispositif et accepte les commandes du système d’exploitation.Dispositif d’E/S.Chaque contrôleur est different. Un logiciel différent pour chacun :pilote driver du dispositif.Exécutés en mode kernel.Peuvent être chargés dynamiquement Linux ou après le démarrage MS Windows.Trois manières de faire E/S exemple lecture données :Le SEappellele driver, qui requiert defaçon continue le dispositif pour vérifier s’il y a des nouvelles données polling.Le contrôleur génèreuneinterruption lorsqueil y ades nouvelles données à lire.En utilisant un matériel spécifique : le DMA Direct Memory Access.26

page 26

Page 27 : Révision du MatérielBusesDispositif de communication de données partagés entre lesdifférents composants d’un système numérique. 27Small Computer System Interface

page 27

Page 28 : Plan1. Introduction2. Le Système d’Exploitation3. Révision du Matériel4. Éléments de base d’un SEProcessus et threads Système de Fichiers Entrée/Sortie Plages d’adressage ProtectionL’interprète des commandes5. Appels SystèmeInterruptions6. Structure des SE7. Programmation de processusÉléments de base d’un SE28

page 28

Page 29 : Éléments de base d’un SEÉléments de base d’un SE29

page 29

Page 30 : Éléments de base d’un SEÉléments de base d’un SEProcessusSystème de FichiersEntrée/SortieMémoireProtectionL’interprète des commandes30

page 30

Page 31 : Processus : Programme qui s’exécuteToute l’information nécessaire pour l’exécutionProgramme, données, pileCompteur ordinalPointeur de pile d’appel de fonctionÉtat des registresEtc.Multiprogrammation : Exécution de plusieurs processus enmême temps.Arrêt/reprise des processus : sauvegarde de toute l’information surle processus.Table des processus.Plusieurs priorités.Éléments de base d’un SEProcessus et threadsProcessusAnneaux de privilèges pour les processeurs Intel x86disponibles en mode protégé source: Wikipedia.31

page 31

Page 32 : Éléments de base d’un SEProcessus et threadsProcessus vs codeATTENTIONNe pas confondre processus aspect dynamique avec code sourced’un programme aspect statique.32

page 32

Page 33 : Éléments de base d’un SEPlages d’adressagePlages d’adressageUn programme s’exécute en mémoire principale.Plusieurs programmes en mémoire en même temps.Interférences à éviter en utilisant des mécanismes de protection.Mémoire virtuelleAdresses mémoire d’un processus distribuées en mémoire et en disque.Découple la plage d’adressage du processus de la mémoire physique.Gérée par le SE.À voir plus tard…33

page 33

Page 34 : Éléments de base d’un SEProtectionProtectionLe SE gère la sécurité du systèmeExemple : fichiersCode de protection de 9 bits : 3 champs de 3 bits rwxUtilisateur propriétaire, groupe, autresExemple de code de protection : rwx r-x xReprésentation octale :rwx r-x - -x ⇒111 101 001bin ⇒751octal34

page 34

Page 35 : Éléments de base d’un SEL’interprète des commandesL’interprète des commandes ShellNe fait pas partie du SE.Plusieurs shells existent : sh, csh, bash, zsh, ksh... selon le SE.Exécution des commandes pour le SE.C’est un exemple d’utilisation des appels système.35

page 35

Page 36 : Plan1. Introduction2. Le Système d’Exploitation3. Révision du Matériel4. Éléments de base d’un SEProcessus et threads Système de Fichiers Entrée/Sortie Plages d’adressage ProtectionL’interprète des commandes5. Appels SystèmeInterruptions6. Structure des SE7. Programmation de processusAppels Système36

page 36

Page 37 : Appels SystèmeAppels Système37

page 37

Page 38 : Appels SystèmeAppels systèmeRappel : SE fournit abstractions aux programmes d’utilisateur etgère les ressources matérielles.▶Exemple : Lecture d’un fichier.count = readfd, buffer, nbytes;Similaire à un appel à une procédure, mais l’appel systèmeentre dans le kernel.Librairies avec plusieurs fonctionsMécanisme transparent à l’utilisateur.Ensemble d’instructions étendues, spécifiques d’un SE, quiconstitue l’interface entre un SE et les programmes utilisateurs.38

page 38

Page 39 : Appels SystèmeAppels systèmeExemples d’actions possiblesCréation d’un processus fils par un processus actif : forkAttendre la fin d’un processus fils : waitDestruction d’un processus : killMise en attente, réveil d’un processus : sleep, waitSuspension et reprise d’un processus grâce à l’ordonnanceur de processus schedulerDemande de mémoire supplémentaire ou restitution de mémoireinutilisée : allocation dynamique, malloc, free.etc.Ensemble d’instructions étendues, spécifiques d’un SE, quiconstitue l’interface entre un SE et les programmes utilisateurs.39

page 39

Page 40 : Appels SystèmeInterruptionsÉvènement extérieurs : Requête d’un périphérique, appui surun bouton poussoir, passage d’un objet devant un capteur, ...À chacun de ces événements correspond une tâche à exécuter parle processeur. Cette tâche est codée sous forme d’une procédureappel système.Puisque le processeur est en permanence prêt à exécuter desinstructions...Comment peut-il prendre en compte les évènements extérieurs?Interruptions40

page 40

Page 41 : Appels SystèmeInterruptionsPour pouvoir exécuter cette procédure il faut que se produise une rupture de séquence. Cette rupture doit avoir lieu dans un délaiassez court.Le processeur dispose d’une entrée spéciale, appelée IRQ InterruptReQuest, associée à un bit appelé bit d’interruption. Avant de passer à l’instruction suivante, le processeur teste l’état de ce bit.S’il est à 1 le processeur est informé d’une demande d’interruption.À voir plus tard … AdOPuisque le processeur est en permanence prêt à exécuter desinstructions...Comment peut-il prendre en compte les évènements extérieurs?Interruptions41

page 41

Page 42 : Appels SystèmeInterruptionsGestion des interruptions12Déroulement :1Arrêt du processus en cours à la fin de l’instruction courante. 2Sauvegarde de l’état présent du processeur : le contexte copie de l’état desregistres hardware au PCB Bloc de Contrôle de Processus, unestructure logicielle qui représente l’état courant du processus.3 Exécution d’un sous programme dépendant de la nature de l’interruption.4 Restauration du contexte ou état du processeur.Interruption 1 ⇒exécution d’un sous programme interruption handler ougestionnaire de l’interruption 2 42

page 42

Page 43 : Appels SystèmeInterruptionsGestion des interruptions1 L’UE unité d’échange envoieun signal d’interruption : INTR 2 La CPU acquitte avec le signal INTA3 L’UE transmet un numéro d’interruption IRQCe IRQ indexe en mémoire centrale le vecteur d’interruption,une table qui pour chaque numéro d’interruption donnel’adresse dela routine associéeen mémoire centrale.43INTA - Signal d'accusé de réception d'interruption. RESET IN est utilisé pour réinitialiser lemicroprocesseur en mettant le compteur de programme à zéro. RESET OUT est utilisé pourréinitialiser tous les périphériques connectés lorsque le microprocesseur est réinitialisé.

page 43

Page 44 : Appels SystèmeInterruptionsInterruptions externes :Matérielles : panne, intervention de l’opérateur, dues auxpériphériques ou à des dispositifs extérieurs, ...Logicielles : déclencher une interruption à l’aide d’une instructionspéciale.Interruptions internes :Déroutements qui proviennent d’une situation exceptionnelle ou d’uneerreur liée à l’instruction en cours d’exécution division par 0,débordement, dépassement de capacité, erreur d’adressage, ...Ces déroutements génèrent des interruptions TRAP pour passer demode utilisateur à mode kernel, normalement liées à des erreursirrécouvrables.Classification des Interruptions44

page 44

Page 45 : Appels SystèmeInterruptionsTraitement effectif des interruptionsAffectation d’un numéro de priorité par niveau d’interruption.Permet d’ordonner les traitements lors des cascadesd’interruptions.Nécessité de retarder ou d’annuler la prise en compte d’un signal.Techniques : masquage et désarmementMasquage de signauxIgnore temporairement la prise en compte des interruptions d’un niveauPour cela, on positionne un indicateur spécifique dans le PSWPossibilité de masquer d’autres niveauxDémasquage des signauxPrise en compte des interruptions survenues pendant ce tempsDésarmement de signauxSupprimer la prise en compte du niveau d’interruptionReactivation : réarmement45

page 45

Page 46 : Plan1. Introduction2. Le Système d’Exploitation3. Révision du Matériel4. Éléments de base d’un SEProcessus et threads Système de Fichiers Entrée/Sortie Plages d’adressage ProtectionL’interprète des commandes5. Appels SystèmeInterruptions6. Structure des SE7. Programmation de processusStructure des SE46

page 46

Page 47 : Structure des SEStructure des SE47

page 47

Page 48 : Structure des SECatégories de SESystèmes monolithiquesMicro-noyauAutres48Source : Wikipédia

page 48

Page 49 : Structure des SESystèmes monolithiquesTout le SE s’exécute comme un seul programme en modekernel.Le SE est un ensemble de procédures compilés dans unseule programme exécutable et assez grand.Chaque procédure dans le système peut appeler les autressans restrictions. Inconvénients :Système peu maniable, difficile à comprendre.Si une procédure s’écrase, cela écrasera tout le SE.Structure la plus commune.49

page 49

Page 50 : Structure des SESystèmes monolithiquesDémarche d’un appel à procédure dans un système monolithique :1 Appels systèmes : services offerts par le SE aux applicationsutilisateurs. 2 Les paramètres de l’appel son récupérés de la pile stack enanglais.3 Dépôts dans un registre les paramètres.4 Passage en mode kernel superviseur.5 SE analyse et exécute la procédure équivalente à l’appelsystème. 6 Commutation dans le mode utilisateur.123456Peut inclure facilement des services spécifiques :Chargement de module dynamique Par exemple, pilotes.En Unix : librairies partagéesEn Windows : DLLs Dynamic-Link Libraries50

page 50

Page 51 : Structure des SEMicro-noyau MicrokernelsSystèmes monolithiques : volumineux un service rare, doit être présent ⇒Source d’erreurs.Micro-noyau ⇒ Réduction du noyau aux procédures essentielles.Objectif : réduire la taille du noyauet obtenir unefiabilité plus grande.Services reportés dans des programmes externes modules.Services à l’extérieur du noyau dans l’espace utilisateur.Source : Wikipedia51

page 51

Page 52 : Structure des SEAutresSystèmes en couche, comme le THE OSTechnischeHogeschoolEindhoven/EindhovenUniversityofTechnology par DIJKSTRAModèle Client-Serveur :2 types de processus : clients et serveurs.Serveurs : dont chacun fournit un service.Clients : qui utilisent ces services.Communication par passage de messages.Virtual machines : à voir plus tard dans ce module.Exokernels :Chaque utilisateur reçoit un sous-ensemble des ressources disk,mémoire, etc.L’Exokernelestunprocessusqui,s’exécutantenmodesuperviseur, gère la répartition des ressources.52

page 52

Page 53 : Plan1. Introduction2. Le Système d’Exploitation3. Révision du Matériel4. Éléments de base d’un SEProcessus et threads Système de Fichiers Entrée/Sortie Plages d’adressage ProtectionL’interprète des commandes5. Appels SystèmeInterruptions6. Structure des SE7. Programmation de processusProgrammation de processus53

page 53

Page 54 : Programmation de processusProgrammation de processus54

page 54

Page 55 : Programmation de processusLes processusInformations sur les processus UNIX / LinuxNotion de père/filspid : identifiant unique du processus. Chaque processus est identifié par son PID uniqueppid : identification du processus pèrePropriétairePrioritéetc.Hiérarchie des processusLorsqu’un processus crée un autre processus, les processus père etfils continuent d’être associés d’une certaine manière. Chaque processus connaît le PPID de son parent.Le processus enfant peut lui même créer plusieurs processus,formant une hiérarchie de processus.Un processus a un seul parent mais peut avoir aucun ou plusieursfils.55

page 55

Page 56 : Programmation de processusCréation d’un processusAppel à l’appel système – fonction fork enlangage C. Créationpar clonage mitose : un processus le père demande, en appelant la primitive fork, la création dynamique d’un nouveau processus lefils. Le fils s’exécute ensuite de façon concurrente avec le père.pidt fork voidProcessus filspartage le segment de texte du pèredispose d’une copie de son segment de donnéeshérite du terminal de contrôlehérite d’une copie des file descriptor ouvertsn’hérite pas du temps d’exécution, ni de la prioritén’hérite pas des signaux en suspendAppelRetourne 0 au filsRetourne le PID du fils au père, ou -1 si échecUn processus avec tous ses descendants forment un groupede processus représenté par un arbre de processus.56

page 56

Page 57 : Programmation de processusCréation d’un processus57

page 57

Page 58 : Programmation de processusExemple1 include st dio . h2 include sys/ types . h3 include unist d . h 45 intmain 6 7pid t p; 89p = fork ;1011switch p12case 0 :13pr i nt f " J esuislef i l s: mon P IDest d et mon PPIDest d\n" , getpid , getppid ;14break ; 1516case 1 :17perror " E rreurdecreat iondeprocessus avec fork " ;18break ; 1920default:21pr i nt f " J esuislepere: mon P IDest d et mon PPIDest d\n" , getpid , getppid ;22break ;2324 ret urn0;25 Compilation : gcc -o useoffork useoffork.c58PPIDPID

page 58

Page 59 : Programmation de processusSynchronisationexitint etatTermine un processus normalement, etat est un octet donc valeurs possibles : 0 à 255 renvoyé dans une variable du type int au processus père.Usage de la variable etat : 0 →ok ; 0 →code erreurConstantes stdlib.h : EXITSUCCESS, EXITFAILUREpidt waitint statuspidt waitpid pidt pid, int status, int options▶Suspend le processus jusqu’à la terminaison de l’un de ses fils de fils▶Achèvement du père : fils pris en charge par le processus initprocessus de PID = 1▶status : valeur de exit ou autre dans le cas d’un signal▶wait attend la fin de n’importe quel fils et renvoie son PID ou -1 dans le cas où il n’y a pas ou plus de fils▶waitpid pour attendre un processus particulier dont on connaît son pid59

page 59

Page 60 : Programmation de processusExemple : SynchronisationCompilation : gcc -o useofwait useofwait.c60

page 60

Page 61 : Code équipe TEAMS :lgjtyyj61

page 61

Pages : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61

Le contenu de cet article est la propriété exclusive de son auteur.