CSI3531 Module 1 -
Introduction/survol du SE
Lecture: Chapitre 1 et 2 (Silberchatz)
Objectif:
Faire un survol rapide l’organisation des
ordinateurs – le processeur (UCT), la mémoire,
et l’entrée/sortie, architecture et opérations
générales.
Introduire les système d’exploitations afin de
comprendre son rôle et ses fonctions
principales
1
Organisation
Système
informatique
Système d’exploitation
2
Contrôleurs
d’appareil
Mémoire UCT
Bus
Matériel
Organisation
Système
informatique
Système d’exploitation
3
Matériel principal
Processeur (UCT)
Mémoire principale (mémoire réelle, RAM)
Contient le code et les données
Modules E/S (Contrôleurs E/S, processeurs E/S...)
matériel (avec registres: ports E/S) pour transport des données
entre UCT et périphériques comme:
• mémoire secondaire (ex: disques rigides)
• clavier, écran...
• Équipement de communication
Interconnexion (ie: Bus)
pour
communication
entre processeur(s),
mémoire et
modules E/S
4
Contrôleurs
d’appareil
Mémoire UCT
Bus
Matériel
Structure
de mémoire Mémoire
secondaire
Organisation Mémoire
principale
Système
informatique
Système d’exploitation
5
Structure de mémoire
Mémoire principale
Accessible directement par l’UCT
Un programme doit être en mémoire principale pour
être exécuté par l’UCT
La mémoire principale n’est pas assez grande pour
contenir tous programmes et données
La mémoire principale est volatile – son contenu
change à la perte de puissance ou au redémarrage.
Mémoire secondaire
Contient de grandes quantités de données/fichiers, de
façon permanente.
En générale, un hiérarchie existe pour les
appareils de mémoire qui varie selon vitesse,
coût, grandeur et volatilité.
6
Hiérarchie des appareils de mémoire
7
Organisation hiérarchique de la mémoire
8
Contrôleurs
d’appareil
Mémoire UCT
Bus Par
Structure E/S interruption
Matériel
d’E/S direct
Structure DMA
de mémoire Mémoire
secondaire
Organisation Mémoire
principale
Système
informatique
Système d’exploitation
9
Structure du contrôleur E/S
Données du bus sont tamponnées dans le(s) registre(s) “data
register” (ports E/S)
Le registre “Status/Control” contient:
l’information sur le statut de l’opération E/S
l’information de contrôle venant de l’UCT
Le circuit “I/O logic” interagit avec l’UCT via le bus.
Contient la logique spécifique à l’interface de chaque dispositif
10
Techniques de communication pour E/S
3 techniques sont possibles:
E/S programmées
• N’utilise pas d’interruptions. L’UCT doit attendre
après chaque opération d’E/S
E/S déclenchées par interruptions
• L’UCT peut exécuter du code pendant
l’opération E/S: il est interrompu lorsque
l’opération est terminée.
Accès direct à la mémoire (DMA)
• Un block de données est transféré directement
à/de la mémoire sans passer par l’UCT
11
Interruption pour l’E/S
12
Fonctionnement de l’ordinateur moderne
13
Contrôleurs
d’appareil
Mémoire UCT
Bus Par
Structure E/S interruption
Un seul * Matériel
d’E/S direct
Multi processeur
Architecture Structure DMA
processeur Mémoire
de mémoire
secondaire
Grappes Organisation Mémoire
Distribués principale
Système
informatique
Système d’exploitation
14
Architecture de systèmes informatiques
Systèmes avec un seul processeur
Du PDA à l’ordinateur central
Presque tous on des processeurs spécialisé pour
graphiques, E/S
• Ceci n’est pas considéré comme multi-processeur
Systèmes multiprocesseurs
Débit de traitement accru
Économies d’échelle
Fiabilité accru
Multitraitement asymétrique
• Chaque processor est donné une tâche spécifique
Multitraitement symétrique (le plus commun)
• Tous processeurs accomplissent toutes tâche du SE
Grappes, systèmes distribués
15
Contrôleurs
d’appareil
Mémoire UCT
Bus Par
Structure E/S interruption
Un seul * Matériel
d’E/S direct
Multi processeur
Architecture Structure DMA
processeur Mémoire
de mémoire
secondaire
Grappes Organisation Mémoire
Distribués principale
Système Interface
Services d’utilisateur
informatique C’est GUI ou CLI
Système d’exploitation quoi?
Vue de
l’utilisateur
16
Vue abstraite des composantes d’un
système informatique
17
Perspectives de l’utilisateur d’un ordinateur
Ceci est mon système, il n’y a que moi qui l’utilise
i.e. PC dont un utilisateur monopolise
Le SE maximise le travail (ou le jeu) de l’utilisateur
Le SE conçu pour l’utilisation facile, non pas pour
l’utilisation de ressource.
Systems portatifs – petite demande au niveau matériel
Ceci est le grand ordinateur sacré, je suis chanceux d’avoir du
temps d’UCT
i.e l’ordinateur central ou le mini-ordinateur
L’ES est conçu pour maximiser l’utilisation des ressources
(UCT, mémoire, E/S)
Le partage des ordinateurs
i.e. les stations de travails branchés à un réseau de servers
Ressources dédiées et partagées
ES balance les besoins individuelles avec les besoins
d’utilisation des ressources
Quoi? Il y a un ordinateur à l’intérieur.
Systèmes imbriqués conçu pour rouler avec un minimum
18 d’intervention
Pourquoi des systèmes d’exploitation?
Quand il y a plusieurs utilisateurs/programmes
desservis:
i.e. Le grand ordinateur sacré
Qui obtient les ressources? quand?
Chaque utililisateur/application est permit de faire
quoi?
Comment facturer les utilisateurs?
Ok, ok, on doit gérer plusieurs utilisateurs/programme,
mais qu’arrive-t-il avec un seul utilisateur? (i.e. pour
mon PC)
Abstraction du matériel
Veut toujours pouvoir rouler plusieurs
programmes.
19
Que font les systèmes d’exploitations?
Donnez une ou deux phrase qui résume le role du
SE.
Le SE est le programme le plus impliqué avec le
matériel
• Abstraction du matériel
Le SE fait l’allocation des ressources
• Gère toutes les ressources
• Compose avec les conflits de demandes pour
l’utilisation efficace et juste des ressources
Le SE est un programme de contrôle
• Contrôle l’exécutions des programmes (i.e.
processus) pour éviter les erreurs et mauvaise
utilisation de l’ordinateur.
20
La définition du système
d’exploitation
Alors, c’est quoi le système d’exploitation?
Pas de définition universel accepté
“Tout ce que le fournisseur livre lors de la
commande d’un SE” est une première
approximation
Mais ceci varie beaucoup.
“Le programme qui roule tout le temps” est celui
utilisé dans ce cours
Ceci est le noyau
Tout autre programme est un programme système
(livré avec le SE) ou un programme d’application.
Que veut dire « rouler tout le temps »? Quand je
joue au Tetris, Tetris est exécuté par l’UCT – non?
21
Programmes systèmes
Font-ils partie du système d’exploitation
Tout ce qui n’est pas dans le noyau, mais livré avec le SE
Tous dépend du SE et du fournisseur
Peut donner plusieurs services systèmes, i.e. les
commandes UNIX (CLI) sont des programmes systèmes pour
accomplir des tâches systèmes.
La grande partie de la perspective du SE par l’utilisateur est
définie par les programmes systèmes, pas directement par
les appels systèmes au noyau.
22
Programme systèmes
Les programmes systèmes (aussi appelé
programmes utilitaires) donnent un environnement
pour le développement et l’exécution de
programme. Les services:
Gestions de fichiers – i.e. copy, rm, ls, mkdir
Information d’état – i.e. ps, who, regedit
Modification de fichiers - éditeurs
Service de langage de programmation – i.e. cc, javac
Chargement et exécution de programmes – loaders,
débuggeurs
Communications – ssh, ftp
Programmes d’application – fureteurs, pages
électroniques, jeux
23
Services offerts aux programmes d’utilisateurs
Opérations d’entrée/sortie
L’accès au matériel se fait par le noyau pour le
programme exécutant
Communications
Communication entre programmes d’un même
ordinateur ou avec ceux d’autres ordinateur
Peut se faire avec la mémoire partagée ou des
messages
Composer avec les erreurs
Détection
• Erreurs du matériel (internes ou externes): la mémoire,
défaillance d’un dispositif E/S
• Erreurs du logiciel: débordements, interdiction d’accès à
une case mémoire
• Impossibilité pour SE de satisfaire requête
Réaction: juste rapporter l’erreur à l’application,
24 essayer de nouveau l’opération, suspendre l’application
Services pour assurer efficacité et bon
fonctionnement
Allocation et gestion des ressources
Nécessaire pour desservir plusieurs utilisateurs et
plusieurs programmes
Certaines ressources ont leur code de gestion
spécifique:
• UCT, mémoire principale, système de fichier
D’autres sont gérés via un code général – E/S
Comptabilité
Statistiques sur l’usage des ressources par les
utilisateurs
Protection et sécurité
Empêcher les intrus (usagers non autorisés)
d’accéder au système
Empêcher les usagers d’accéder aux ressources qui
ne leur sont pas destinées
25
Interface pour utilisateurs - CLI
Interface de ligne de commande (CLI - Command Line
Interface) permet une entré de commande
directement du clavier
L’interpréteur de commande est un program qui lit
les commandes tapés par l’utilisateur
• Souvent appelé le « shell » (terminologie UNIX)
L’exécution d’une commande se fait une de deux
façon
• L’interpréteur exécute la commande
• Des instructions de programmation permettent à
l’interpréteur d’exécuter des programmes « shell »
• La command est utilisé pour démarrer un programme
séparé (e.g. un programme système)
26
Interface pour utilisateurs - GUI
Interface conviviale qui représente une surface de bureau
Avec souris, clavier, et moniteur
Icônes représentent fichiers, programmes, actions, etc.
Inventé au Xerox PARC
Beaucoup de systèmes comprennent des interfaces CLI et
GUI.
Microsoft Windows est GUI avec un CLI “command”
shell
Apple Mac OS X contient l’interface GUI “Aqua” et un
noyau UNIX et donc le “shell”
Solaris et Linux sont CLI avec des interfaces optionelles
GUI (Java Desktop, KDE)
Quelle interface préférez-vous?
27
Interfaces du SE
CLI et GUI – interfaces pour l’usager
Quelles sont les autres interfaces du système
d’exploitation?
Interface pour porgrammes qui roulent sur
l’ordinateur et font des demandes de services
du SE
• L’interface d’appel de système
Interface au matériel
• Interruptions, pilotes contrôleurs d’appareil
28
Contrôleurs
d’appareil
Mémoire UCT
Bus Par
Structure E/S interruption
Un seul * Matériel
d’E/S direct
Multi processeur
Architecture Structure DMA
processeur Mémoire
de mémoire
secondaire
Grappes Organisation Mémoire
Distribués principale
Système Interface
Services d’utilisateur
Gestion informatique C’est GUI ou CLI
E/S Gestion Système
quoi?
Processus d’exploitation
Gestion Vue de
mémoire Opération l’utilisateur
Mode
double
29
Opérations du système d’exploitation
Le SE fonctionne à base d’interruptions
Les interruptions proviennent du matériel ET du
logiciel
Clique de souris, division par zéro, demande de
service du SE
Interruption de minuterie (temps de processus fini),
erreur d’accès à la mémoire (processus veut en
modifier un autre ou le SE).
Certains opérations devront se faire seulement
par un programme fiable.
Accéder le matériel, registres de gestion de la
mémoire.
Un programme maléfique d’utilisateur pourrait
endommager d’autres processus, voler le système,
…
Solution: opération en mode double.
30
Le mode usager et le mode noyau
Opération en mode double permet au ES de se
protéger ainsi que d’autres composantes
Mode usager et mode noyau (ou supervision)
Bit mode se retrouve dans le matériel
• Distingue le mode (usager ou noyau)
• Certaines instructions sont privilégiées
• Appel au SE change le mode à noyau et le retour
de l’appel le rechange au mode usager.
31
Transition du mode usager au mode noyau
Minuterie empêche les processus de s’accaparer du
système
Un interruption après un délai de temps
SE décrémente un compteur
Lorsque le compteur est zéro, change de processus ou
termine le processus.
Configurer avant de donner le contrôle au processus
pour reprendre le contrôle ou terminé le programme.
32
L’appel système
L’interface qui offre les services du SE au
programmes
Control de processus:
• pour exécuter un programme.
Gestion de fichier:
• création/ouvrir/lire/écrire un fichier, liste d’un répertoire.
Gestion d’appareil:
• demande/relâche d’un appareil
Gestion d’information:
• gestion de l’heure, attributs des processus et fichiers
Communication:
• ouvrir/fermer un connexion, envoyer/recevoir des
messages
33
Appel système (suite)
Normalement écrit avec langage de programmation
haut niveau (par exemple le C).
Implémenter avec l’interruption logicielle
L’interruption logicielle change le bit mode au mode
noyau et fait appel au sous-programme approprié selon
un tableau d’appels systèmes et le numéro
d’interruption
• Exemple Linux:
http://docs.cs.up.ac.za/programming/asm/derick_tut/syscalls
.html
À la fin du sous-programme, le mode redevient le
mode usager et des valeurs sont retournées au
programme appelant.
34
API de l’appel système
35
Comment accéder aux appels systèmes
Accéder souvent par les programmes avec une interface de
programmation d’application (API) et non pas l’appel système
directement
APIs commun:
Win32 pour Windows
API POSIX pour systèmes POSIX
• UNIX, Linux et MAC OS X
API Java pour la machine virtuelle Java (JVM)
Le programme appelant ne connait rien au sujet le l’implémentation
de l’appel système.
Obéit tout simplement au normes de l’API: paramètres à fournir,
valeurs de retour, et opération désirée
Les détails de l’interface du SE sont cachés derrière l’API.
• Géré par la bibliothèque de l’API (ensemble de fonctions fournit avec
le compilateur)
36 Possible d’utiliser les appels système directement
Exemple de l’API standard en C
La fonction printf() qui fait un appel
système write()
37
Opérations principales du système d’exploitation (SE)
Gestion de processus
Un processus avec un fil d’exécution comprend un seul compteur de
programme
Le SE gère les ressouces requises par les processus
• UCT, mémoire, E/S, fichiers
• Données d’initialisation
Le SE gères les activités des processus: création et
destruction, interactions entre processus, etc.
Gestion de la mémoire
La gestion de mémoire détermine quel processus et à quel moment il
occupe la mémoire afin d’optimiser l’utilisation de l’UCT et la
réponse de l’ordinateur aux utilisateurs
Gestion de la mémoire secondaire
Le SE donne une vue uniforme et logique de l’information stocké en
mémoire secondaire
Système de fichier, mémoire de masse
Le sous-système E/S
Un rôle du SE est de cacher les différentes particularités des
appareils de l’utilisateur
38
Contrôleurs
d’appareil
Mémoire UCT
Bus Par
Structure E/S interruption
Un seul * Matériel
d’E/S direct
Multi processeur
Architecture Structure DMA
processeur Mémoire
de mémoire
secondaire
Grappes Organisation Mémoire
Distribués principale
Système Interface
Services d’utilisateur
Gestion informatique C’est GUI ou CLI
E/S Gestion Système
quoi?
Processus d’exploitation
Gestion Vue de
mémoire Opération l’utilisateur
Mode Machine
double Questions virtuelle Structure
conceptions
Saveurs
différentes
Micro Couche
39 Modules
noyau
Conception et réalisation des SEs
La conception du SE est principalement affecté par le choit
de matériel et du type de système
En lot, temps-partagé, un utilisateur, multi-utilisateurs,
distribués, temps-réel, usage général
Besoins d’utilisateurs versus besoins des système
Besoins d’utilisateurs – facile à utilisé, facile à
apprendre, fiable, et rapide
Besoins de système – facile à concevoir, simple à réalisé
et entretenir, ainsi que flexible, fiable, sans erreur, et
efficace.
Implémentation
Traditionnellement en assembleur
Aujourd’hui, surtout en C, avec des petites sections en
assembleur (pilotes, manipulation de registres)
40
Structure du système
Structure interne des SEs varient
Puisque les besoins varient
Matériel simple, fonctions simples
Structure monolithique simple
Plus de resources et fonctions complexes
Structure de courches
MS-DOS et UNIX traditionnel sont des SEs monolithiques qui
utilsent une structure de couches.
Encore plus de ressources et fonctions, avec un focus à la
conception flexible et élégante
Structure de micronoyau (micro-kernel) (MACH, QNX, Windows NT)
Flexibilité et efficacité
Structure modulaire (Solaris, Windows NT)
41
Structure UNIX: peu de couches
42
Machines virtuelles: le problème et la
solution
Comment permettre de rouler différents SE sur
une seule machine physique?
Pas évident, car chaque SE demande accès
direct au matériel
SOLUTION: Un programme qui crée une
couche qui met à disposition plusieurs
machines physiques virtuelles
Sur chacune, nous pouvons rouler un SE
différent
43
Modèle de système
(a) Une seule mach. réelle et un seul noyau
(b) plus. mach. virtuelles et plus. noyaux
44
Fonctionnement
Le système VM laisse exécuter normalement les
instructions non privilégiées
Les appels au système sont exécutés par le système
VM et les résultats sont passés à la machine virtuelle
sur laquelle le processus exécute
45
Avantages
Chaque machine virtuelle peut utiliser un SE
différent!
En théorie, on peut bâtir des machines
virtuelles sur des machines virtuelles!
Protection complète, car les machines
virtuelles sont complètement isolées les unes
des autres
Un nouveau SE peut être développé sur une
machine virtuelle sans déranger les autres
46
Implémentations
Le concept de VM est très utilisé pour
permettre de rouler un SE sur un autre
P.ex. SUN, Apple, Linux permettent de rouler
Windows sur leur plateforme,
Ils doivent fournir à Windows un
environnement que Windows reconnaît comme
son environnement Intel usuel
47
VMWARE sur Linux
48
Machine virtuelle de Java
49
Ce dont nous n’allons pas étudier
Système distribués
Systèmes en temps réel imbriqué
Systèmes multimédia
Ordinateurs de poche
Poste à poste (peer to peer)
Système d’exploitation WEB
50 Fall 2008
Contrôleurs
d’appareil
Mémoire UCT
Bus Par
Structure E/S interruption
Un seul * Matériel
d’E/S direct
Multi processeur
Architecture Structure DMA
processeur Mémoire
de mémoire
secondaire
Grappes Organisation Mémoire
Distribués principale
Système Interface
Services d’utilisateur
Gestion informatique C’est GUI ou CLI
E/S Gestion Système
quoi?
Processus d’exploitation
Gestion Vue de
mémoire Opération l’utilisateur
Mode Machine
double Questions virtuelle Structure
conceptions
Saveurs
différentes
Micro Couche
51 Modules
noyau