Vous êtes sur la page 1sur 51

Structure des Systmes Informatiques

Chapitre 3
Beaucoup de choses dans ce chap. du manuel sont
faciles lire et ne je les discuterai pas en classe.
Nous reviendrons sur plusieurs de ces concepts.
Section 3.8 sera discute dans les sessions exercices.

http://w3.uqo.ca/luigi/
1

Concepts importants du Chapitre 3

Responsabilits et services dun SE


Le noyau
Appels du systme (system calls)
Communication entre processus

Ch.3

Messagerie et mmoire partage

Structure couches
Machines virtuelles

Gestion de processus et UCT

Un processus=tche est un programme en


excution

Le SE est responsable pour:

Ch.3

il a besoin de ressources pour excuter (UCT, mmoire,


units E/S...)
allocation de ressources aux processus
cration, terminaison des processus
suspension, reprise des processus
synchronisation, communication entre processus

Le SE intervient pour chacun de ces besoins

Gestion de mmoire principale (RAM)

Le SE est responsable pour:


savoir quels processus utilisent quelles parties
de la mmoire
allouer la mmoire quand elle est demande si
elle est disponible
librer la mmoire quand le processus se
termine

Ch.3

Parfois cest le systme dexcution des langages de


programmation qui gre la mmoire en dtail (Ex.: Java)

Services primaires des Systmes dexploitation

Excution de programmes: chargement,


excution (load, run)
Oprations E/S

Ch.3

Manipulation fichiers

Communication et synchronisation entre


processus
Dtection et traitement derreurs

Autres services importants

Ch.3

Protection de ressources

Comptabilit, p.ex. pour charger les


usagers payants

Noyau (kernel) et appels de systme

Ch.3

Le noyau (kernel) du SE

Ch.3

La partie rsidente (toujours en mm. principale) du SE est


appele Kernel = noyau
Les autres parties sont amenes en mm. principale au
besoin
Kernel contient les fonctionnalits critiques du SE: elles
doivent toujours tre prtes lutilisation
traitement dinterruptions
gestion de UCT
gestion mmoire principale
communication entre processus
etc., nous verrons
part a, quoi exactement mettre dans le kernel est une
question pour les concepteurs des SE
Presque toutes les fonctionnalits discutes dans ce cours
sont dans le kernel
8

Appels du systme

Linterface entre un processus et le SE


directement disponibles dans un shell UNIX ou
dans un command prompt MS-Windows
aussi dans les langages de programmation
`bas niveau` (assembleur)
ils sont cachs dans les langages de haut
niveau (C, Java...)

Ch.3

Appels de systmes pour interprter le


commandes (Unix, Linux ou MS-Windows)

En Unix, le command interpreter (shell) peut dmarrer et charger


diffrents processus en mmoire, excutant des appels de systme
appropris (fork, exec).
Ch.3Dtails dans sessions exercices.

10

Deux modles de communication entre


processus par appels de systme

transfert de messages entre processus (message passing)


- utilisant le service de messagerie offert par le noyau
b) travers mmoire partage entre processus (shared memory)
a)

Ch.3

11

Messagerie et mmoire partage

Messagerie:
Les processus doivent tablir une connexion entre processus

appels de systme open connection, accept connection, close connection,


read/send message

les processus senvoient des messages utilisant des


identificateurs de machine ou de processus
pralablement tablis
Mmoire partage
les processus doivent tablir des zones de communication
entre eux
les processus doivent mutuellement synchroniser leur accs
a cette zone

Ch.3

Pour ceci, il font appel au SE (Chap. 7)

12

Programmes systme

kernel

Ch.3

Pas partie du kernel, en augmentent la fonctionnalit.


Voir discussion et exemples dans le manuel

13

Partage de responsabilits entre programmes


de systmes et noyau

Ch.3

Cest une dcision de conception de SE de dcider quelles


fonctionnalits doivent tre implmentes dans le kernel, et
quelles dans les programmes de systme.

14

Concept de Microkernel: le plus petit possible


(Linux, mais pas Windows)

Wikipedia: "OS-structure" by Wooptoo


Ch.3

15

Fonctionnalits qui doivent forcment tre dans le noyau

Elles sont les fonctionnalits dont tout


processus a besoin, inclus les processus
du noyau!

Ch.3

traitement dinterruptions, inclus E/S


gestion de UCT
gestion mmoire principale
communication entre processus

16

Structure couches

Ch.3

17

Structure couches dans les SE modernes

Ch.3

Un SE est divis dans un certain nombre de


couches, bties les unes sur les autres
la couche la plus basse communique avec le
matriel
la plus leve est linterface usagers
Les couches suprieures utilisent les
fonctionnalits fournies par les niveaux infrieurs

18

Ch.3

19

Structure couches

Ch.3

oprations cres dans une couche pour les couches extrieures


oprations fournies par une couche, utilises par la prochaine couche, et
caches aux couches extrieures
oprations d une couche intrieure rendues disponibles une couche extrieure
viter en principe, mais v. aprs

20

Lautre possibilit serait la structure rseau

Plus difficile grer, cause des nombreuses


interfaces et relations possibles

couches
Ch.3

Rseau
21

Avantages, dsavantages de suivre fidlement une


structure en couches

Avantages:

Chaque couche ne doit connatre que les fonctionnalits


fournies par la couche sous-jacente
Chaque couche ajoute ses propres fonctionnalits
Les erreurs peuvent plus facilement tre isols dans une
couche spcifique

Dsavantages:

Pas efficace car un appel des programmes usager des


ressources du matriel implique autant dappels quil y a
des couches intermdiaires

Excellent principe, pas toujours fidlement suivi

Ch.3

Maison construite un tage la fois poser ltage n


seulement quand ln-1 est solide

Pour des raisons defficacit


22

Structure de systme - Approche simple

MS-DOS (1982) - cherchait obtenir une fonctionnalit


maximale avec des ressources limites

pas bien modularis

accs direct aux priphriques (cran, etc.) permis aux


programmes d`application

manque de contrles, vulnrabilit

malheureusement, il fut adapt des fonctionnalits plus


complexes... Systmes trs instables

Ch.3

manque de sparation claire entre couches

DOS fut la premire base de Windows et une grande partie


de lhistoire de Windows a t un effort de dpasser les
limitations de MS-DOS
Jusqu Windows NT Windows XP
Enfin, des systmes plus fiables

23

Couches du MS-DOS (premiers systmes Microsoft)

Ch.3

24

Structure UNIX LINUX (1970 1991 )

Multi-tches, multi-usagers depuis le dbut


Distinction claire entre:

programmes du systme
noyau

Ch.3

tout ce quil y a entre linterface des appels de systme et


le matriel.

Plus modulaire et protg que MS-DOS


Plus tard, volution vers le concept de microkernel (Linux)

25

noyau

Structure UNIX: trois couches principales

Ch.3

26

Autre figure pour Linux

A. Rubini and J. Corbet. Linux Device Drivers.


Sebastopol, CA: O'Reilly & Associates, 2d ed., 2001.
Online version at http://www.oreilly.com/catalog/linuxdrive2/index.html.
Ch.3

27

Systmes dexcution de langages

Chaque langage de programmation repose sur


Des compilateurs
Des systmes dexcution (run-time systems) qui
rendent possible lexcution de programmes aprs
compilation

Les systmes dexcution ne sont pas partie du SE

Ch.3

P.ex. le systme dexcution Java se proccupe de grer la


mmoire pour les programmes Java
Grer les appels de sous-programmes ou mthodes, etc.

Mais en utilisent les fonctionnalits, qui donc sont


caches aux usagers

28

Machines Virtuelles

Ch.3

29

Machines virtuelles: le problme et la solution

Ch.3

Comment permettre de rouler diffrents SE


sur une seule machine physique?
Pas vident, car chaque SE demande
accs direct au matriel
SOLUTION: Un programme qui cre une
couche qui met disposition plusieurs
machines virtuelles
Chaque machine virtuelle se comporte
comme une machine physique spare
Sur chacune, nous pouvons rouler un SE
diffrent
30

Machines Virtuelles

Virtuel en informatique dnote quelque chose qui


n est pas rel, nest pas du matriel: il est
construit par le logiciel sur la base des
ressources fournies par le matriel
Une machine virtuelle est une machine cre par
des couche de logiciel
Elle peut avoir des caractristiques identiques la
machine physique du systme:

Ou elle peut simuler une autre machine physique

Ch.3

mmes instructions, etc.


p.ex.pour excuter Microsoft sur Apple

Plusieurs machines virtuelles peuvent tre cres


sur une machine physique donne!
31

(a) Une seule mach. relle et un seul noyau


(b) plus. mach. virtuelles et plus. noyaux

Ch.3

32

Fonctionnement typique

Ch.3

Le systme VM laisse excuter normalement les instructions


non privilgies
Mais les adresses des instructions doivent tre modifies
pour les renvoyer la zone de mmoire de la VM approprie
Les appels au systme sont excuts par le systme VM et
les rsultats sont passs la machine virtuelle sur laquelle
le processus excute

33

Modification dadresses

Dans lUCT il y a un registre qui renvoie de fois en


fois les adresses de chaque instruction de
programme la machine virtuelle pour laquelle
lUCT est en train dexcuter

OP REG

ADR

VM1
+

REGISTRE
VM2

Ch.3

De cette manire, un programme peut


tre excut par plus. machines
virtuelles

34

Avantages

Plusieurs machines virtuelles peuvent tre obtenues partir dune


seule machine physique:

Chaque machine virtuelle peut utiliser un SE diffrent


Utile fins dexprimentation:

Ch.3

Des nouvelles machines virtuelles peuvent tre crs sur requte dusagers

Un nouveau SE ou une nouvelle application peuvent tre dvelopps sur une


machine virtuelle sans affecter les autres

Protection complte, car les machines virtuelles sont isoles les


unes des autres (thoriquement)

35

Architecture VMWare: ici le virtualisateur nes pas directement


sur le matriel, il est sur Linux

Ch.3

36

Implmentations

MAC, LINUX et autres permettent de rouler


Windows sur leur plateforme
Ils doivent fournir Windows un
environnement que Windows reconnat
comme son environnement matriel usuel

Ch.3

Normalement, environnement INTEL

Pareillement, Windows peut supporter


dautres SE

37

Simulateur: un concept diffrent


Applications
Windows
Applications
MAC

Windows
Simul. Intel

MAC OS
PC SUN Microsystems
Contrairement au cas prcdent, les instructions Intel doivent tre
interprtes une par une dans lenvironnement Apple-MAC
Ch.3

38

Diffrence entre virtualisateur et simulateur

Un virtualisateur permet de rouler


plusieurs SE diffrents sur une seule
machine physique

Ch.3

Mais toutes les SE se basent sur le mme


matriel

Un simulateur permet de rouler


programmes conus pour matriels
diffrents sur une seule machine physique

39

Linfonuagique (cloud computing)

Ch.3

Dans linfonuagique lusager utilise les services


offerts par un nuage dordinateurs travers
connexions internet
Au lieu dutiliser simplement son propre ordi ou le
serveur local
Loffre de puissance de calcul et stockage du
nuage doit tre lastique pour suivre les besoins
des usagers
Plus ou moins de serveurs UCT selon la demande
La cration et destruction dynamique dordis
virtuels en est un des mcanismes de base

40

Infonuagique

Chaque ordi peut tre subdivis en ordis virtuels


Pour une offre lastique de puissance de calcul et stockage
Pour chaque usager sparment et selon la demande
Ch.3

41

Concepts importants du Chapitre 3

Responsabilits et services dun SE


Le noyau
Appels du systme (system calls)
Communication entre processus

Ch.3

Messagerie et mmoire partage

Structure couches
Machines virtuelles

42

Par rapport au manuel

Ch.3

tudier sections 3.1 jusqu 3.7.


La section 3.8 na pas t discute en
classe mais elle contient des concepts
importants concernant Java donc cest une
excellente ide de la lire
Les sections 3.9, 3.10, 3.11 ne sont pas
sujet dexamen cependant il est utile de les
lire.

43

Structure couches dans le systme THE


(1968)

La structure couches fut invente dans le systme THE


(E.W. Dijkstra) qui avait les couches suivantes:

Interface usager
programmes usagers
gestion E/S
pilotage console oprateur
gestion mmoire et tampons

gestion UCT
matriel
Ch.3

44

Diffrentes visions du nom: UNIX

Ch.3

Originairement, UNIX tait un SE spcifique


Il est devenu plus tard un nom pour une famille de
SE ayant la structure mentionne avant dans ce
chapitre
Parfois, le nom UNIX est compris comme une
simple interface:
Sont UNIX les systmes qui fournissent les
instructions shell et API de lUNIX
La structure interne du systme pourrait tre trs
diffrente (cest le cas dans QNX)

45

POSIX

POSIX est le nom d'une famille de standards


dfinie depuis 1988 par IEEE.

POSIX = Portable Operating System Interface,

X exprime l'hritage UNIX de l'Interface de


programmation

Essentiellement POSIX a cherch normaliser


linterface typique des systmes UNIX

Ch.3

Rsultat d'un projet de standardisation des API des


logiciels destins fonctionner sur des variantes du
systmes dexploitation UNIX.

Instructions shell, API

46

QNX: Un succs dans notre rgion

QNX est un SE pour les applications temps-rel et


les systme embarqus

Dvelopp dans la rgion ( Kanata) partir de


1980
A t utilis dans un grand nombre dapplications
temps-rel et embarques, par un grand nombre de
compagnies
La compagnie a t achete par Research in
Motion (RIM) qui utilise QNX dans ses produits

Ch.3

Il est essentiellement Unix


Offre linterface POSIX

Playbook, BlackBerry, etc


47

Note historique-thorique

Ch.3

Le concept dordinateur universel qui peut


simuler nimporte quel ordinateur, inclus soimme, fut conu par Alan Turing dans les
annes 1930
La machine de Turing
Bien avant les premiers ordinateurs
lectroniques
Ce concept est la base du concept de
machine virtuelle
Il est aussi la base de nombreux concepts
informatiques, pratiques et thoriques
48

Questions pour rvision 1

Ch.3

Expliquer la diffrence: processus,


processeur, programme
Que cest que le noyau du SE? Expliquer la
diffrence essentielle entre le noyau et autres
composants du SE.
Expliquer pourquoi chacun des suivants doit
tre dans le noyau:
traitement dinterruptions
gestion de lUCT
gestion mmoire principale
communication entre processus
49

Questions pour rvision 2

Ch.3

Quelle est la relation entre appels du systme


et interruptions?
Quels sont les avantages et les dsavantages
de structurer un SE en couches plutt que
dune autre manire, p.ex. en rseaux de
composantes
Quelle est la diffrence entre systmes
dexploitation et systmes dexcution de
langages?
La gestion de la mmoire en Java, appartientelle au SE ou au systme dexcution Java?
50

Questions pour rvision 3

Ch.3

Quels sont les avantages principaux des


machines virtuelles?
Quelle est la diffrence entre une machine
virtuelle et un simulateur dun autre
matriel?
Dfinir le concept de base de
linfonuagique

51