Introduction aux
Systèmes d’Exploitation
GIF-1001 Ordinateurs: Structure et Applications, Hiver 2015
Jean-François Lalonde
Bien que la majorité des slides proviennent de cette source, certains sont modifiés
http://wallpoper.com/wallpaper/happy-linux-409761
Rappel: Architecture von Neumann
Microprocesseur
Nous
Unité de calcul
(ALU)
Mémoire
Entrées
(données &
Sorties
instructions)
Unité de contrôle
(CCU)
Rappel: cycle d’instructions
Que fait le microprocesseur?
1. Lire: aller chercher la prochaine instruction
2. Décode: décode l’instruction (détermine ce qu’il y a à faire)
3. Exécute: exécuter l’instruction
2. DÉCODE
Décoder l’instruction
1. LIRE (FETCH)
3. EXÉCUTE
Aller chercher la prochaine
Exécuter l’instruction
instruction
Rappel: écriture et exécution d’un programme
Questions
• Comment le programme a-t-il été chargé en
mémoire?
• Comment faire pour dire à l’ordinateur de débuter
l’exécution d’un programme?
• Comment peut-on interagir avec un programme?
• Que doit-on faire quand un programme est terminé?
• Comment peut-on exécuter plus d’un programme?
ENIAC (Maulchy & Eckert,1946)
calculs de balistique durant la 2e Guerre Mondiale
les panneaux à gauche étaient les programmes: il fallait programmer
manuellement en branchant et débranchant ces connexions
18,000 tubes à vide, 15,000 pieds carrés, 30 tonnes, 140 kwatts puissance
Les premiers ordinateurs
• Les premiers ordinateurs avaient un microprocesseur, une
mémoire, un périphérique d'entrée, quelques voyants et une
imprimante.
Le programmeur devait charger manuellement le programme en
mémoire à l'aide du périphérique d'entrée (comme un lecteur de
cartes perforées). Pendant ce temps, le microprocesseur était
déconnecté.
Pour démarrer le programme, des interrupteurs étaient utilisés. Les
voyants indiquaient si le programme fonctionnait correctement ou s'il y
avait des erreurs.
Seul un programme pouvait être exécuté à la fois, et il fallait souvent
réserver son tour pour utiliser l'ordinateur.
Slide pas inclus dans la source
Les premiers ordinateurs
Comme nous venons de le voir, dans les premiers ordinateurs, tout devait être
fait manuellement. Les programmeurs devaient charger eux-mêmes les
programmes en mémoire, et le microprocesseur était déconnecté pendant ce
processus. Une fois le programme en cours d'exécution, il n'y avait pas vraiment
de gestion automatique des erreurs ni de moyens pour exécuter plusieurs
programmes en même temps.
C’est à ce moment-là que l'idée des systèmes d'exploitation a émergé. Avec
l'évolution des ordinateurs, il est devenu nécessaire de trouver un moyen plus efficace
de gérer toutes ces tâches. Les systèmes d'exploitation ont été développés pour
automatiser la gestion de la mémoire, permettre l'exécution de plusieurs programmes
en même temps, et améliorer l'interaction entre l'utilisateur et l'ordinateur.
Slide pas inclus dans la source
Système d’exploitation (SE) — définition générale
• Un système d’exploitation est
• un ensemble de programmes
• qui gèrent les ressources matérielles d’un ordinateur et
qui rendent ces ressources disponibles à l’usager,
• de telle sorte que l’usager peut utiliser efficacement son
ordinateur.
Système d’exploitation
Ordinateur
Nous
Micro-processeur
Système
Périphériques d’exploitation
Mémoire
Applications
Analogies
• Un illusionniste :
• Fait disparaître certaines limites du
matériels
• Donne l’illusion que la machine a une
mémoire infinie et une infinité de
processeurs
• Un gouvernement :
• Protège les utilisateurs les uns des autres
• Partage des ressources de façon efficace et
équitable
Crédit: P. Giguère
Restrictions vs. possibilités
• S.E. est l’équivalent de vivre en société
Crédit: P. Giguère
Restrictions vs. possibilités
Le système d'exploitation (S.E.) peut être comparé à la vie en
société. Comme dans une société, un système d'exploitation impose
des règles et gère la répartition des ressources.
1. Partage des ressources : Un système d'exploitation doit gérer les
ressources de l'ordinateur, comme le processeur (CPU), la
mémoire et les périphériques. Il permet à plusieurs programmes de
partager ces ressources matérielles de manière efficace.
2. Perte de liberté : En vivant dans une société, il faut respecter des
règles qui limitent la liberté individuelle. C'est pareil pour un
programme qui fonctionne dans un système d'exploitation. Chaque
programme doit respecter les règles établies par le système pour
éviter les conflits avec d'autres programmes.
3. Augmentation des possibilités : Bien que le système impose des
restrictions, il permet également de faire beaucoup plus de choses.
Par exemple, un programme peut fonctionner en parallèle avec
d'autres, bénéficier de la gestion automatique des ressources, et
avoir accès à plus de capacités matérielles.
Slide pas inclus dans la source
Crédit: P. Giguère
Rôles du système d’exploitation
• Les principaux rôles d’un système d’exploitation
sont:
• Fournir une interface usager conviviale.
• Gérer, lire et exécuter des programmes.
• Gérer les ressources matérielles de l’ordinateur.
• Le but d’un système d’exploitation est de faciliter
l’utilisation de l’ordinateur et de rendre son utilisation
efficace.
Le système d’exploitation: un programme
• Le système d’exploitation est un programme.
• Il occupe une partie de la mémoire de l’ordinateur.
• Il est chargé en mémoire par le BIOS (pendant le démarrage)
• Le rôle du système d’exploitation est de lancer d’autres
programmes. Il doit « abandonner » le contrôle du
microprocesseur aux autres programmes pour que ceux-
ci puissent être exécutés.
Vision simplifiée des services d’un SE
Vision simplifiée des services d’un SE
Vision simplifiée des services d’un SE
•Usager/Programmeur :
•Qui : Vous, l'utilisateur ou le programmeur, interagissez avec le
système d'exploitation.
•Comment : Vous utilisez une interface de commandes ou des
applications et utilitaires pour communiquer avec l'ordinateur.
•Interface de commandes :
•Fonction : C'est l'endroit où vous entrez des commandes pour
dire à l'ordinateur ce qu'il doit faire. Par exemple, dans un terminal
ou une ligne de commande (cmd).
•Lien avec l'usager : L'interface permet à l'utilisateur de
communiquer directement avec le système d'exploitation.
Slide pas inclus dans la source
Vision simplifiée des services d’un SE
•Applications et Utilitaires :
•Fonction : Ce sont des programmes que vous utilisez tous les
jours (comme un traitement de texte, un navigateur, etc.). Ces
applications utilisent le système d'exploitation pour fonctionner.
•Lien avec l'usager : L'utilisateur utilise ces applications, qui à
leur tour dépendent du système d'exploitation pour accéder aux
ressources matérielles.
•Gestion des fichiers :
•Fonction : Le système d'exploitation gère vos fichiers et
dossiers, permettant leur stockage, récupération, suppression, et
organisation sur des disques.
•Lien : C'est ici que toutes les opérations liées aux fichiers sont
traitées avant d'être envoyées au noyau pour accès au matériel.
Slide pas inclus dans la source
Vision simplifiée des services d’un SE
•Gestion du réseau :
•Fonction : Le système d'exploitation gère vos connexions
réseau, que ce soit pour accéder à Internet ou à d'autres
ordinateurs.
•Lien avec le matériel : La gestion du réseau permet au
matériel réseau, comme les cartes réseau, de communiquer
avec les autres machines.
•Gestion des Entrées/Sorties (E/S) :
•Fonction : Elle gère la communication entre l'ordinateur et
ses périphériques, comme les claviers, les écrans, les
imprimantes, etc.
•Lien avec le matériel : Cette partie du S.E. permet aux
périphériques d'envoyer ou de recevoir des informations.
Slide pas inclus dans la source
Vision simplifiée des services d’un SE
•Noyau du Système d'Exploitation (kernel) :
•Fonction : Le noyau est le cœur du système d'exploitation. Il
gère les ressources matérielles et exécute les instructions
données par les autres parties du système d'exploitation. Il
est responsable de la gestion de la mémoire, des processus
et de la communication avec le matériel.
•Lien avec tout : Il agit comme une passerelle entre toutes
les parties (fichiers, réseau, E/S) et le matériel de l'ordinateur.
•Réseau et Matériel :
•Réseau : Il représente les connexions extérieures de
l'ordinateur (Internet, autres ordinateurs, etc.).
•Matériel : Il s'agit des composants physiques de l'ordinateur
(CPU, mémoire, disques, etc.).
Slide pas inclus dans la source
Vision simplifiée: Résumé
• Un système d’exploitation doit fournir les services suivants:
• Une interface de commandes pour l’usager
• Un support pour la création de programmes
• Une gestion des fichiers
• Une gestion des programmes et applications
• Une façon de poursuivre le démarrage de l’ordinateur amorcé par le
BIOS
• Un service des interruptions (Software et Hardware)
• Une gestion des entrées/sortie et du matériel qui y est relié.
• Des services pour les réseaux et pour le matériel qui y est associé.
• Une mesure des statistiques et performances de l’ordinateur.
Processus
• E/S = entrée-sortie Exemple
•Processus 1 : Le traitement de texte (une tâche).
•Processus 2 : La calculatrice (une autre tâche). pas inclus dans la source
Crédit: P. Giguère
SE “mono-tâche” (e.g. MS.DOS)
• Un seul programme peut être exécuté à la fois
• Tout de même pas si simple! Il peut:
• gèrer des périphériques.
• traiter les interruptions du système.
• fournir un interpréteur de commandes pour traiter les requêtes de l’usager
• charger un programme en mémoire, puis de l’exécuter
• fournir un ensemble de routines disponible pour la création de programmes.
• gèrer les fichiers et les accès disques.
Crédit image: P. Giguère
SE “multi-tâches” (e.g. UNIX ou
windows 10)
• détermine la séquence de programmes à exécuter selon
plusieurs facteurs (priorité, utilisation d’entrées/sorties,
conflit de ressources, etc.)
• offre des protections et des niveaux de sécurité pour les
accès aux ressources de l’ordinateur.
• gère une mémoire et des ressources pouvant être
communes à plusieurs processus.
• gère la communication avec d’autres ordinateurs.
Crédit image: P. Giguère
Type: SE dans les PCs
• Certainement les plus familiers
• Monotâche (expel/MS-DOS) — multitâches
• Importance d’une GUI conviviale
(graphical user interface)
• Support pour nombreux périphériques
• Nombreux logiciels disponibles
• Exemples:
• Windows XP/Vista/7/8/10..
• MacOS
• Ubuntu (Linux)
Crédit: P. Giguère
Type: SE dans les Serveurs
• 1. Solaris :
• Utilisé principalement pour des serveurs d'entreprise dans
les environnements de haute disponibilité.
• Systèmes critiques, comme ceux des entreprises financières
ou des télécommunications.
• Prisé pour sa gestion de gros volumes de données et sa
stabilité dans les systèmes de production.
• 2. FreeBSD (Berkeley Software Distribution) :
• Utilisé dans les serveurs web, les serveurs de fichiers et
dans les systèmes de réseau.
• Apprécié pour sa stabilité, sa sécurité, et son efficacité dans
la gestion des ressources, notamment dans les infrastructures
réseau.
• Utilisé par des entreprises comme Netflix pour diffuser du
contenu multimédia.
Crédit: P. Giguère
Type: SE dans les Serveurs
• 3. Linux :
• Employé dans une variété de serveurs, y compris les serveurs web,
serveurs de bases de données, serveurs de fichiers, etc.
• Utilisé pour les supercalculateurs, les serveurs cloud et les systèmes
embarqués.
• Distribution comme Ubuntu Server, CentOS, et Red Hat sont largement
utilisées dans des environnements professionnels.
• 4. Windows Server 20xx :
• Utilisé dans les infrastructures d'entreprise, notamment pour gérer des
réseaux d'entreprise, des serveurs de fichiers, des serveurs de bases
de données, des services web, etc.
• Permet de déployer des services Active Directory, des serveurs
Exchange, et des environnements de virtualisation avec Hyper-V.
• Populaire dans les environnements professionnels qui utilisent des
services Windows pour la gestion de leur infrastructure.
Crédit: P. Giguère
Type: SE dans les Serveurs à grande
echelle (solutions basées sur Linux )
• Google: >450,000 serveurs (BORG, Kubernetes)
• Facebook: >60,000 serveurs (CentOS)
• Utilisent souvent des versions propriétaires comme S.E. (développent
leurs propres S.E.)
• 1.3% de l’électricité mondiale est utilisée pour les “data centers”
Crédit: P. Giguère
Type: SE pour les Super-calculateurs
La majorité des supercalculateurs dans le monde, y compris ceux dans le Top500, fonctionnent
sur des versions modifiées ou spécialisées de Linux. Les raisons sont nombreuses : Linux est
open source, hautement personnalisable, et performant dans les environnements
massivement parallèles.
• Grosses tâches
• calcul scientifiques: météo, séquençage de génôme, etc.
Crédit: P. Giguère
Type: SE dans les Systèmes embarqués
• S.E. simplifiés
• peu ou pas d’interface usager
• taille mémoire + CPU réduite
• Peuvent être mono-tâches
• Pas de démarrage de nouveaux
processus par l’usager : statique
• Exemples :
• QNX, VxWorks,
• Kernel Linux + Busybox
Crédit: P. Giguère
Type: SE dans les Systèmes à temps-
réel
• Met l’accent sur la prédictibilité des temps
d’exécution
• e.g. exécuter tâche exactement à chaque
milliseconde
• Exemples:
• QNX
• VxWorks
• FreeRTOS
• Real Time Linux
Crédit: P. Giguère
Type: SE dans les Systèmes mobiles
• Systèmes fermés (l’accés aux composants matériels ou logiciels est limité ou
restreint)
• Petit / CPU limitée / téléphonie / réseau / GPS
• Faible consommation électricité
• Emphase sur l’interface graphique, pas la performance calcul
• Démarrage rapide, utilisation courte
Apple iOS Android OS Windows Phone OS
Crédit: P. Giguère
Références et exercices
• Références
• Englander: Section 15.1, 15.2 (début) et 15.8
• Exercices
• http://vision.gel.ulaval.ca/~jflalonde/cours/1001/h15/index
.html#ressources