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 2 : Plan1. Introduction2. Le Système d’Exploitation3. Révision du Matériel4. Éléments de base d’un SEProcessus et threads Système de Fichiers Entrée/Sortie Plages d’adressage ProtectionL’interprète des commandes5. Appels SystèmeInterruptions6. Structure des SE7. Programmation de processus2
Page 3 : IntroductionIntroduction3
Page 4 : IntroductionMotivationSystè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 5 : IntroductionObjectifsConnaître les fonctionnalités des SEStructureGestion des ressources matériellesAdministration des programmesInterface avec l’utilisateurDu point de vue de l’utilisateur, de l’administrateur et aussi du designer.En mettant l’accent sur Linux/Unix.5
Page 6 : IntroductionThèmes à aborderProcessus et cycle de vie L’ordonnanceur d’un SE Gestion de la mémoireSystème des fichiersProcessus de démarrage d’un SEInstallation et configuration d’un SEDocker 6
Page 7 : IntroductionBibliographie7
Page 8 : IntroductionÉvaluationExamen final papier2 heuresCalculatrice autorisée8
Page 9 : Le Système d’ExploitationPlan1. Introduction2. Le Système d’Exploitation3. Révision du Matériel4. Éléments de base d’un SEProcessus et threads Système de Fichiers Entrée/Sortie Plages d’adressage ProtectionL’interprète des commandes5. Appels SystèmeInterruptions6. Structure des SE7. Programmation de processus9
Page 10 : Le Système d’ExploitationLe Système d’Exploitation10
Page 11 : Le Système d’ExploitationL’ordinateur moderne, un système complexeComposants :Un ou plusieurs microprocesseursMémoiresDisquesClavierSourisDisplays écranInterfaces réseauD’autres périphériques d’entrées / sortiesEtc.11
Page 12 : Le Système d’ExploitationL’ordinateur moderne, un système complexeComposants :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 13 : Le Système d’ExploitationL’ordinateur moderne, un système complexeProblème : L’administration et l’utilisation efficace deviennent difficileComment 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 14 : Le Système d’ExploitationFonctions du Système d’ExploitationPré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 15 : Le Système d’ExploitationFonctions du Système d’ExploitationGestion 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 16 : Le Système d’ExploitationLe "Zoo" des Systèmes d’ExploitationMainframe : 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 17 : Plan1. Introduction2. Le Système d’Exploitation3. Révision du Matériel4. Éléments de base d’un SEProcessus et threads Système de Fichiers Entrée/Sortie Plages d’adressage ProtectionL’interprète des commandes5. Appels SystèmeInterruptions6. Structure des SE7. Programmation de processusRévision du Matériel17
Page 18 : Révision du MatérielRévision du Matériel18
Page 19 : Révision du Matériel19
Page 20 : Révision du MatérielLe processeurCPU 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 21 : Révision du MatérielLe processeurQuelques 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 22 : Révision du MatérielLe processeurArchitecture du processeur Intel x8622MémoireProcesseur
Page 23 : Révision du MatérielLe processeurSystèmes multi-threadProgrammes 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 24 : Révision du MatérielLa MémoireLa 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 25 : Révision du MatérielLa MémoireMémoire secondaire disques dursDisque magnétique : dispositif mécanique, avecdesplateaux tournants 5400, 7200, 10.800 RPMsDispositifs d’état solide SSDs, Solid State Disks : Sans pièces mobiles.Données stockées en mémoire flash.25
Page 26 : Révision du MatérielDispositifs d’Entrée/SortieDeux 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 27 : Révision du MatérielBusesDispositif de communication de données partagés entre lesdifférents composants d’un système numérique. 27Small Computer System Interface
Page 28 : Plan1. Introduction2. Le Système d’Exploitation3. Révision du Matériel4. Éléments de base d’un SEProcessus et threads Système de Fichiers Entrée/Sortie Plages d’adressage ProtectionL’interprète des commandes5. Appels SystèmeInterruptions6. Structure des SE7. Programmation de processusÉléments de base d’un SE28
Page 29 : Éléments de base d’un SEÉléments de base d’un SE29
Page 30 : Éléments de base d’un SEÉléments de base d’un SEProcessusSystème de FichiersEntrée/SortieMémoireProtectionL’interprète des commandes30
Page 31 : Processus : Programme qui s’exécuteToute l’information nécessaire pour l’exécutionProgramme, données, pileCompteur ordinalPointeur de pile d’appel de fonctionÉtat des registresEtc.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 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 33 : Éléments de base d’un SEPlages d’adressagePlages d’adressageUn 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 virtuelleAdresses 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 34 : Éléments de base d’un SEProtectionProtectionLe SE gère la sécurité du systèmeExemple : fichiersCode de protection de 9 bits : 3 champs de 3 bits rwxUtilisateur propriétaire, groupe, autresExemple de code de protection : rwx r-x xReprésentation octale :rwx r-x - -x ⇒111 101 001bin ⇒751octal34
Page 35 : Éléments de base d’un SEL’interprète des commandesL’interprète des commandes ShellNe 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 36 : Plan1. Introduction2. Le Système d’Exploitation3. Révision du Matériel4. Éléments de base d’un SEProcessus et threads Système de Fichiers Entrée/Sortie Plages d’adressage ProtectionL’interprète des commandes5. Appels SystèmeInterruptions6. Structure des SE7. Programmation de processusAppels Système36
Page 37 : Appels SystèmeAppels Système37
Page 38 : Appels SystèmeAppels systèmeRappel : 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 fonctionsMé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 39 : Appels SystèmeAppels systèmeExemples d’actions possiblesCréation d’un processus fils par un processus actif : forkAttendre la fin d’un processus fils : waitDestruction d’un processus : killMise en attente, réveil d’un processus : sleep, waitSuspension et reprise d’un processus grâce à l’ordonnanceur de processus schedulerDemande 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 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 41 : Appels SystèmeInterruptionsPour 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 42 : Appels SystèmeInterruptionsGestion des interruptions12Dé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 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 44 : Appels SystèmeInterruptionsInterruptions 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 45 : Appels SystèmeInterruptionsTraitement effectif des interruptionsAffectation 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ésarmementMasquage 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 tempsDésarmement de signauxSupprimer la prise en compte du niveau d’interruptionReactivation : réarmement45
Page 46 : Plan1. Introduction2. Le Système d’Exploitation3. Révision du Matériel4. Éléments de base d’un SEProcessus et threads Système de Fichiers Entrée/Sortie Plages d’adressage ProtectionL’interprète des commandes5. Appels SystèmeInterruptions6. Structure des SE7. Programmation de processusStructure des SE46
Page 47 : Structure des SEStructure des SE47
Page 48 : Structure des SECatégories de SESystèmes monolithiquesMicro-noyauAutres48Source : Wikipédia
Page 49 : Structure des SESystèmes monolithiquesTout 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 50 : Structure des SESystèmes monolithiquesDé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.123456Peut inclure facilement des services spécifiques :Chargement de module dynamique Par exemple, pilotes.En Unix : librairies partagéesEn Windows : DLLs Dynamic-Link Libraries50
Page 51 : Structure des SEMicro-noyau MicrokernelsSystè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 52 : Structure des SEAutresSystèmes en couche, comme le THE OSTechnischeHogeschoolEindhoven/EindhovenUniversityofTechnology par DIJKSTRAModè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 53 : Plan1. Introduction2. Le Système d’Exploitation3. Révision du Matériel4. Éléments de base d’un SEProcessus et threads Système de Fichiers Entrée/Sortie Plages d’adressage ProtectionL’interprète des commandes5. Appels SystèmeInterruptions6. Structure des SE7. Programmation de processusProgrammation de processus53
Page 54 : Programmation de processusProgrammation de processus54
Page 55 : Programmation de processusLes processusInformations sur les processus UNIX / LinuxNotion de père/filspid : identifiant unique du processus. Chaque processus est identifié par son PID uniqueppid : identification du processus pèrePropriétairePrioritéetc.Hiérarchie des processusLorsqu’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 56 : Programmation de processusCréation d’un processusAppel à 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 voidProcessus 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 suspendAppelRetourne 0 au filsRetourne le PID du fils au père, ou -1 si échecUn processus avec tous ses descendants forment un groupede processus représenté par un arbre de processus.56
Page 57 : Programmation de processusCréation d’un processus57
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 59 : Programmation de processusSynchronisationexitint etatTermine 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 erreurConstantes stdlib.h : EXITSUCCESS, EXITFAILUREpidt waitint statuspidt 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 60 : Programmation de processusExemple : SynchronisationCompilation : gcc -o useofwait useofwait.c60
Page 61 : Code équipe TEAMS :lgjtyyj61
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




























































