1
S tr u ct u re d es S ys t S tr u ct u re d es S ys t èè m es d m es d ’’ E xp lo it at io n E xp lo it at io n
Auteur :Auteur :Luigi LogrippoLuigi Logrippo––http://w3.uqo.ca/http://w3.uqo.ca/luigiluigi Modifications :Modifications :Nicolas GorseNicolas Gorse––http://http://wwwwww--etud.iro.umontreal.caetud.iro.umontreal.ca/~/~gorsengorsenC o n ce p ts im p o rt an ts C o n ce p ts im p o rt an ts
Responsabilités et services d’un SE Le noyau Appels du système (system calls) Communication entre processus Messagerie et mémoire partagée Structure àcouches Machines virtuelles 3G es ti o n d e p ro ce ss u s et U C T G es ti o n d e p ro ce ss u s et U C T
Unprocessus=tâcheest un programme en exécution il a besoin deressourcespour exécuter (UCT, mémoire, unités E/S...) Le SE est responsable pour: allocation de ressourcesaux processus création, terminaisondes processus suspension, reprisedes processus synchronisation, communicationentre processusG es ti o n d e m G es ti o n d e m éé m o ir e p ri n ci p al e (R A M ) m o ir e p ri n ci p al e (R A M )
Le SE est responsable pour: savoir quels processus utilisent quelles parties de la mémoire savoir quels processus en demandent, et combien allouer la mémoire quand elle devient disponible libérer la mémoire5
G es ti o n d e m G es ti o n d e m éé m o ir e m o ir e vi rt u el le
virtuelle La mémoire principale est souvent trop petite pour contenir tous les processus en exécution La mémoire secondaire (disques, flash) est normalement utilisée pour contenir les parties d`un processus qui ne sont pas actives àl’instant La mémoire principale et la mémoire secondaire forment donc une unitélogique appeléemémoire virtuelle Pour implanter la mémoire virtuelle, le SE doit gérer de façon conjointe mémoire RAM et mémoire disque Mécanisme de va-et-vient (swap) magnetic tapesoptical diskmagnetic diskelectronic disk cache main memoryregisters Hiérarchie de mémoire!
S er vi ce s p ri m ai re s d es S ys t S er vi ce s p ri m ai re s d es S ys t èè m es d m es d ’’ ex p lo it at io n ex p lo it at io n
Exécution de programmes: chargement, exécution (load, run) Opérations E/S Manipulation fichiers Communication et synchronisation entre processus Détection et traitement d’erreurs 7A u tr es s er vi ce s im p o rt an ts A u tr es s er vi ce s im p o rt an ts
Allocation de ressources Protection de ressources ComptabilitéL e n o ya u ( L e n o ya u ( ke rn el ke rn el ) d u S E ) d u S E
La partie résidente (toujours en RAM) du SE est appelée Kernel= noyau Les autres parties sont amenées en RAM au besoin Contient les fonctionnalités critiques du SE: elles doivent toujours être prêtes àl’utilisation traitement d’interruptions gestion de UCT gestion mémoire communication entre processus etc. Àpart ça, quoi exactement mettre dans le kernelest une question pour les concepteurs des SE La plupart des fonctionnalités discutées dans ce cours sont normalement dans le kernel9
A p p el s d u s ys t A p p el s d u s ys t èè m e m e
L’interface entre un processus et le SE directement disponibles dans les langages de programmationbas niveau(assembleur, C, C++) ils sont cachés dans les langages a haut niveau (Java, Ada...) Utilisent des paramètre pour transmettre la définition exacte des besoins de l’usager le résultat de l’appel (successful, unsuccessful)In te rp r In te rp r éé te u r d e co m m an d es e n U N IX te u r d e co m m an d es e n U N IX
L’interpréteurde commande(shell) peut démarrer et charger différents processus en mémoire, exécutant desappels de systèmeappropriés 11D eu x m o d D eu x m o d èè le s d e co m m u n ic at io n e n tr e le s d e co m m u n ic at io n e n tr e p ro ce ss u s p ar a p p el s d e sy st p ro ce ss u s p ar a p p el s d e sy st èè m e m e
a)transfert de messages entre processus (message passing) -utilisant le service de messagerie offert par le noyau b) àtravers mémoire partagée entre processus (sharedmemory)M es sa g er ie e t m M es sa g er ie e t m éé m o ir e m o ir e p ar ta g p ar ta g éééé
Messagerie: il faut établir une connexion entre processus (appels de systèmeopen connection, acceptconnection, close connection, read/sendmessage) les processus s’envoient des messages en utilisant des identificateurs préalablement établis Mémoire partagée il est nécessaire d’établir une zone de communication entre processus les processus doivent mutuellement synchroniserleur accès a cette zone Pour ceci, il font appel au SE13
P ro g ra m m es s ys t P ro g ra m m es s ys t èè m e m e
Pas partie du kernel, en augmentent la fonctionnalité.P ar ta g e d e re sp o n sa b ili t P ar ta g e d e re sp o n sa b ili t éé s en tr e p ro g ra m m es s en tr e p ro g ra m m es d e sy st d e sy st èè m es e t n o ya u m es e t n o ya u
C’est en partie une décision de conception de SE de décider quelles fonctionnalités doivent être implémentées dans le kernel, et quelles dans les programmes de système. Dans l’évolution des SE il y a eu un transfert de fonctionnalités vers l’extérieur de la figure précédente Dans les SE modernes, les programmes de système sont l’interface entre usager et noyau 15S tr u ct u re S tr u ct u re en c o u ch es
en couchesd an s le s S E m o d er n es d an s le s S E m o d er n es
Un SE est divisédans un certain nombre deco u ch es
couches, bâties les unes sur les autres la couche la plus basse est le matériel la plus élevée est l’interface usagers Les couches supérieures utilisent les fonctionnalités fournies par les niveaux inférieursS tr u ct u re S tr u ct u re àà co u ch es co u ch es
opérations créées dans une couche pour les couches extérieures opérations fournies par une couche, utilisées par la prochaine couche, et cachées aux couches extérieures opérations d’une couche intérieure rendues disponibles àune couche extérieure àéviter en principe, mais…v. après17
S tr u ct u re S tr u ct u re
co u ch es d an s le s ys t m e T H E ( 19 68 ) àà co u ch es d an s le s ys t èè m e T H E ( 19 68 )
La structure àcouches fut inventée dans le système THE (E.W. Dijkstra) qui avait les couches suivantes: programmes usagers gestion E/S pilotage console opérateur gestion mémoire et tampons gestion UCT matérielInterface opérateur
LL ’’
au tr e p o ss ib ili t au tr e p o ss ib ili t éé se ra it la s tr u ct u re se ra it la s tr u ct u re
rréé
seauseau Plus difficile àgérer, àcause des nombreuses interfaces possibles ÀcouchesRéseau 19
A va n ta g es , d A va n ta g es , d éé sa va n ta g es sa va n ta g es
de suivre fidde suivre fidèèlement une lement une structure en couchesstructure en couches Avantages: Chaque couche ne doit connaître que les fonctionnalités fournies par la couche immédiatement sous-jacente Chaque couche ajoute ses propres contrôles Les erreurs peuvent plus facilement être isolés dans une couche spécifique Maison construite un étage àla fois…poser l’étage n seulement quand l’n-1 est solide Désavantages: Pas efficace car un appel des programmes usager à des ressources du matériel implique autant d’appels qu’il y a des couches intermédiaires Excellent principe, pas toujours fidèlement suivi Pour des raisons d’efficacitéS tr u ct u re d e sy st S tr u ct u re d e sy st èè m e m e -- A p p ro ch e si m p le A p p ro ch e si m p le
MS-DOS -cherchait àobtenir une fonctionnalitémaximale avec des ressources limitées mono-tâche, mono-usager pas très modularisé manque de séparation claire entre couches accès direct aux périphériques (écran, etc.) permis aux programmes d`application manque de contrôles, vulnerabilité malheureusement, il fut adaptéàdes fonctionnalités plus complexes...21