Systèmes d’exploitation I
Module: M3 - INF-S3 & IAP-S3
Prof. R. HANNANE
[Link]@[Link]
Faculté des Sciences Semlalia, Marrakech
Université Cadi Ayyad
Prof. R. HANNANE (FSSM) Systèmes d’exploitation I 1/29 1 / 29
Systèmes d’exploitation I
Objectif du cours
I Présentation des systèmes d’exploitation
I Comprendre le rôle et les objectifs d’un sysètme d’exploitation
I Maı̂triser les commandes de base de Linux
I Maı̂triser la programmation shell
Organisation
I 20h de cours : Concepts de base des systèmes d’exploitation
I 26h de TP/TD : Les commandes de base d’Unix, la
programmation shell....
Évaluation
I Contrôle final * 3
4
+ Contrôle continue (TP/TD rendus +
assiduité) * 14
Prof. R. HANNANE (FSSM) Systèmes d’exploitation I 2/29 2 / 29
Systèmes d’exploitation I
Plan Général
1 Notions de base en systèmes d’exploitation
2 Système d’exploitation Unix/Linux
3 Systèmes de fichiers
4 L’interpréteur de commandes
5 Les commandes de manipulation des fichiers
6 Redirection et les expressions régulières
7 L’archivage et la compression
8 Protection des fichiers
9 Programmation Shell
Prof. R. HANNANE (FSSM) Systèmes d’exploitation I 3/29 3 / 29
Notions de base en systèmes d’exploitation
Notions de base en systèmes d’exploitation
Prof. R. HANNANE (FSSM) Systèmes d’exploitation I 4/29 4 / 29
Notions de base en systèmes d’exploitation
Qu’est-ce qu’un système d’exploitation ?
Pour qu’un ordinateur soit capable de faire fonctionner un
programme informatique (appelé parfois application ou
logiciel), la machine doit être en mesure d’effectuer un
certain nombre d’opérations préparatoires afin d’assurer
les échanges entre le processeur, la mémoire, et les ressources
physiques(périphériques)
⇒ Un système d’exploitation (SE) (en anglais Operating System
(OS)) est un programme qui doit permettre aux
utilisateurs d’utiliser les fonctionnalités d’un ordinateur
→ C’est l’intermédiaire entre un ordinateur (ou en général un
appareil muni d’un processeur) et les applications qui
utilisent cet ordinateur
Prof. R. HANNANE (FSSM) Systèmes d’exploitation I 5/29 5 / 29
Notions de base en systèmes d’exploitation
Qu’est-ce qu’un système d’exploitation ?
Le système d’exploitation doit aussi aider le programmeur à
développer des logiciels de la façon la plus efficace
possible
⇒Le système constitue donc une interface entre l’utilisateur
et la machine physique
⇒ Il est chargé d’assurer la liaison entre les
ressources matérielles, l’utilisateur et les applications
(traitement de texte, jeu vidéo, ...)
Prof. R. HANNANE (FSSM) Systèmes d’exploitation I 6/29 6 / 29
Notions de base en systèmes d’exploitation
Qu’est-ce qu’un système d’exploitation ?
Bref:
Le système d’exploitation est le logiciel qui prend en charge les
fonctionnalités élémentaires du matériel et qui propose
une plateforme plus efficace en vue de l’exécution des
programmes
Il gère les ressources matérielles, offre des services pour
accéder à ces ressources et crée des éléments abstraits de
niveau supérieur, tels que des fichiers, des répertoires et des
processus
Prof. R. HANNANE (FSSM) Systèmes d’exploitation I 7/29 7 / 29
Notions de base en systèmes d’exploitation
Système informatique vs. Système d’exploitation
Système d’exploitation : est un programme système
fondamental
I Contrôle toutes les ressources de l’ordinateur
I La base sur laquelle les programmes d’application sont
écrits
Système informatique peut être défini comme un ensemble
de moyens matériels et logiciels nécessaire pour satisfaire
les besoins en traitement, conservation et restitution des
données des utilisateurs
⇒ Exemple : Un ordinateur est une machine électronique ayant
des composants matériels et logiciels
Prof. R. HANNANE (FSSM) Systèmes d’exploitation I 8/29 8 / 29
Notions de base en systèmes d’exploitation
Système informatique vs. Système d’exploitation
La partie matérielle est composé de :
I Processeurs qui exécutent les instructions
I Mémoire centrale qui contient les données et les instructions
à exécuter
I Mémoire secondaire qui sauvegarde les informations
I Périphériques d’Entrées/Sorties (clavier, souris, écran,
modem, etc.) pour introduire ou récupérer des informations
La partie logicielle comporte des logiciels qui sont classés en
deux catégories :
I Programmes d’application qui exécute le travail demandé
par les utilisateurs
I Programmes système qui permettent le fonctionnement de
l’ordinateur (le système d’exploitation et les utilitaires
(compilateurs, éditeurs, interpréteurs de commandes, etc.))
Prof. R. HANNANE (FSSM) Systèmes d’exploitation I 9/29 9 / 29
Notions de base en systèmes d’exploitation
Structure d’un système informatique
Système informatique peut être vu comme quatre couches:
I Utilisation de services inférieurs pour en offrir des services
supérieurs
Prof. R. HANNANE (FSSM) Systèmes d’exploitation I 10/29 10 / 29
Notions de base en systèmes d’exploitation
Structure d’un système informatique
Le matériel fournit les ressources de calcul
I Processeur (CPU), mémoire, périphériques d’entrée-sortie (E/S)
Le système d’exploitation coordonne l’utilisation du
matériel
I Gestion utilisateurs, SGF, ressources (accès, partage,
distribution, échange...)
Les applications résoudrent les problèmes des utilisateurs
I Traitement de texte, compilateur, jeux vidéos, navigateurs web...
Les utilisateurs utilisent le système informatique
I Personnes, machines, autres ordinateurs
Prof. R. HANNANE (FSSM) Systèmes d’exploitation I 11/29 11 / 29
Notions de base en systèmes d’exploitation
Rôle d’un système d’exploitation
Le rôle d’un système d’exploitation peut être vu sous deux
aspects complémentaires:
1. Adaptation d’interface:
Le système fournit à ses utilisateurs une interface plus
commode à utiliser que celle du matériel :
o Il dissimule les détails de mise en œuvre (plus haut niveau
d’abstraction): Il propose à l’utilisateur une abstraction plus
simple et plus agréable que le matériel
o Il dissimule les limitations physiques (taille de mémoire,
nombre de processeurs) et le partage des ressources entre
plusieurs utilisateurs
⇒ On dit parfois que le système réalise une ”machine virtuelle”
permettant l’interaction avec les utilisateurs en leur présentant
une machine plus simple à exploiter que la machine réelle
Prof. R. HANNANE (FSSM) Systèmes d’exploitation I 12/29 12 / 29
Notions de base en systèmes d’exploitation
Rôle d’un système d’exploitation
2. Gestion de ressources:
Le système gère les ressources matérielles et logicielles:
mémoire, processeurs, programmes, communications
Cette gestion comprend :
o L’allocation : Il ordonne et contrôle l’allocation des
processeurs, des mémoires, des périphériques, des réseaux entre
les programmes qui les utilisent
o Le partage : Il assiste les programmes utilisateurs
o La protection : Il protège les utilisateurs dans le cas d’usage
partagé
Prof. R. HANNANE (FSSM) Systèmes d’exploitation I 13/29 13 / 29
Notions de base en systèmes d’exploitation
Historique des systèmes d’exploitation
La première génération (1945-1955) : Prototypes d’ordinateurs à base de
tubes électroniques à vide
I Le plus connu des ordinateurs non mécaniques est l’ENIAC (Electronic Numerical
Integrator And Computer)
I Il pèse 30 tonnes, occupe quelques dizaines de m2 , comporte 18 000 tubes à vide,
et nécessite 140 KW d’énergie
I Il est capable d’effectuer 5000 additions à la seconde
I Toute la préparation se faisait manuellement
I Concepteur = constructeur = programmeur = opérateur
Prof. R. HANNANE (FSSM) Systèmes d’exploitation I 14/29 14 / 29
Notions de base en systèmes d’exploitation
Historique des systèmes d’exploitation
La deuxième génération (1955-1960): Les transistors et le traitement
par lots
I Les transistors remplacent progressivement les tubes à vide
I Apparition des cartes perforées
I Séparation des rôles : le programmeur n’est pas l’opérateur
I Enchaı̂nement automatique des travaux (”jobs” ), c’est le traitement par lots
(” batch processing ”)
I Sous-programmes d’E/S (chargement et déchargement des cartes)
I Apparition des assembleurs et la notion d’ordonnancement
I Le système d’exploitation gère la mémoire, les processus et les E/S
I Apparition des systèmes d’exploitation (SE) FMS (Fortran Monitor System)
et IBSYS (IBM 7094)
I Les utilisations principales étaient le calcul scientifique et l’ingénierie
(équations différentielles)
Prof. R. HANNANE (FSSM) Systèmes d’exploitation I 15/29 15 / 29
Notions de base en systèmes d’exploitation
Historique des systèmes d’exploitation
La troisième génération (1960-1970) : Les circuits intégrés et la
multiprogrammation
I Apparition des circuits intégrés et des disques magnétiques
I Notion de familles d’ordinateurs compatibles (IBM System/360)
I La création de la société Intel et la naissance du système Unix
I Multiprogrammation : pendant qu’un processus effectue ses E/S, le
processeur est inactif, il peut donc travailler sur un autre processus
Prof. R. HANNANE (FSSM) Systèmes d’exploitation I 16/29 16 / 29
Notions de base en systèmes d’exploitation
Historique des systèmes d’exploitation
La quatrième génération (1971-1990) : Explosion de la
micro-informatique
I Apparition des micro-ordinateurs grand public (IBM PC) de MS-DOS, des
consoles de jeu, Motorola 68000, Internet, Applications multimédia
I Apparition de SunOS (développé par Sun Microsystems et dérivé de UNIX),
AmigaOS (développé pour les ordinateurs Commodore Amiga), Mac OS
(système d’ordinateurs Macintosh développé par Apple Inc)
I Commercialisation de PC Macintosh
I Maturation des systèmes d’exploitation vers ceux que l’on connaı̂t
aujourd’hui
Prof. R. HANNANE (FSSM) Systèmes d’exploitation I 17/29 17 / 29
Notions de base en systèmes d’exploitation
Historique des systèmes d’exploitation
La cinquième génération (début des années 90) : Ordinateur
personnel et les systèmes multiprocesseurs
I Réseaux et machines individuelles
• Appareils personnels remplacent les terminaux
• Interconnexion de systèmes hétérogènes
• Développement des réseaux locaux haute performance et Internet
• Partage des ressources et des fichiers entre machines de divers types
I Systèmes multiprocesseurs
• Plusieurs processeurs sur un même appareil
• Plusieurs processeurs disponibles sur des appareils différents pour un
même programme
• Plusieurs ” cores ” sur un même processeur
• Systèmes client/serveur
• Connectivité inter-serveurs
I Exemple: GNU/Linux (développé sur La base d’UNIX), Solaris
(également développé sur la base UNIX par Sun Microsystems pour les
serveurs et les postes de travail) , Microsoft Windows...
Prof. R. HANNANE (FSSM) Systèmes d’exploitation I 18/29 18 / 29
Notions de base en systèmes d’exploitation
Historique des systèmes d’exploitation
Dans la première décennie du siècle actuel: de nouveaux
systèmes d’exploitation continuent de se produire,
peut-être pas avec plus d’impact que ceux qui ont émergé dans
la décennie précédente, mais qui trouvent leur propre place
I Exemple: SymbOS, MorphOS, Darwin, Mac OS X, Haiku
ou OpenSolaris
Dans les années 10 de ce siècle: la montée des appareils
mobiles donne accès à certains systèmes d’exploitation
très populaires, parmi lesquels sont Android (un système
d’exploitation mobile fondé sur le noyau Linux et développé par
des informaticiens sponsorisés par Google) ou iOS (un système
d’exploitation mobile créé et développé par la société américaine
Apple exclusivement pour ses produits)
Prof. R. HANNANE (FSSM) Systèmes d’exploitation I 19/29 19 / 29
Notions de base en systèmes d’exploitation
Classes de systèmes d’exploitation
Selon les services rendus (1/4)
Mono-tâche
I A tout instant, un seul programme est exécuté tandis qu’un
autre programme ne démarrera que lorsque le premier sera
terminé
I Quand le programme est lancé, il utilise seul les ressources de la
machine et ne rend la main au système d’exploitation qu’en fin
d’exécution, ou en cas d’erreur
I En cas de blocage du programme, tout le système est arrêté : il
faut redémarrer l’ordinateur
I Exemple : MS-DOS
Prof. R. HANNANE (FSSM) Systèmes d’exploitation I 20/29 20 / 29
Notions de base en systèmes d’exploitation
Classes de systèmes d’exploitation
Selon les services rendus (2/4)
Multi-tâches
I Partager le temps du processeur entre plusieurs
programmes (tâches)
I Plusieurs tâches peuvent s’exécuter simultanément
I Le passage de l’exécution d’un programme à un autre peut être
initié:
→ Par le système d’exploitation (préemptif): ici, un module du
SE se charge de partager de façon équilibrée le temps de calcul
entre les différents programmes actifs. Une notion de priorité lui
permet de hiérarchiser les programmes
→ Par les programmes eux-mêmes (coopératif): ici, il revient
aux applications actives de se répartir elles-mêmes le temps
de calcul. Il n’existe alors aucune hiérarchie entre les différentes
applications
I Exemple : Windows 95, 98, Xp, Vista, Ubuntu, Suse,
Debian, ...
Prof. R. HANNANE (FSSM) Systèmes d’exploitation I 21/29 21 / 29
Notions de base en systèmes d’exploitation
Classes de systèmes d’exploitation
Selon les services rendus (3/4)
Mono-utilisateur
I Ne peut gérer qu’un seul utilisateur à la fois
I On peut trouver un système mono-utilisateur mono-tâche
ou multitâches
I Exemple : MS-DOS, Unix,...
Prof. R. HANNANE (FSSM) Systèmes d’exploitation I 22/29 22 / 29
Notions de base en systèmes d’exploitation
Classes de systèmes d’exploitation
Selon les services rendus (4/4)
Multi-utilisateurs (temps partagé)
I Plusieurs utilisateurs peuvent utiliser simultanément une
même machine pour des applications similaires ou
différentes
I Pour des raisons de sécurité (afin de garantir l’intégrité de leurs
données), tous les utilisateurs n’ont pas les mêmes droits
sur le système
I Exemple : Windows 95, 98, Xp, Vista,Ubuntu, Suse,
Debian,...
Prof. R. HANNANE (FSSM) Systèmes d’exploitation I 23/29 23 / 29
Notions de base en systèmes d’exploitation
Classes de systèmes d’exploitation
Selon l’architecture matrielle qui les supporte
Mono-processeur
I Ne peut effectuer qu’un seul calcul à la fois, donc ne peut
travailler, à un instant donné, que pour un seul processus
I Pour donner l’impression de simultanéité, le processeur doit
s’intéresser tour à tour à chaque processus très rapidement
Multi-processeur (parallèles)
I Un processeur central (maı̂tre) peut coordonner une série
de tâches sur plusieurs autres processeurs (esclaves)
I Permet une simultanéité complète
I Une communication proche : les processeurs peuvent partager
le bus, parfois horloge, mémoire et périphériques E/S
Prof. R. HANNANE (FSSM) Systèmes d’exploitation I 24/29 24 / 29
Notions de base en systèmes d’exploitation
Classes de systèmes d’exploitation
Selon architectures (1/2)
Systèmes centralisés
I Rassemble les ressources nécessaires à un
traitement sur un hôte central
⇒ L’interaction généralement se fait à l’aide
de terminaux qui sont connectés à un
ordinateur central
I L’ensemble du système est entièrement
présent sur la machine considérée
I Les machines éventuellement reliées sont vues
comme des entités étrangères disposant elle
aussi d’un système centralisé
I Le système ne gère que les ressources de la
machine sur laquelle il est présent
Prof. R. HANNANE (FSSM) Systèmes d’exploitation I 25/29 25 / 29
Notions de base en systèmes d’exploitation
Classes de systèmes d’exploitation
Selon architectures (2/2)
Système répartis (distributed systems)
I Doivent permettre l’exécution d’un seul programme sur
plusieurs machines
I Distribuer les tâches et les remettre ensemble
I Contrairement aux multiprocesseurs, ici la
communication faiblement couplé : Ex : via le réseau
local (LAN)
I Avec un système réparti, l’utilisateur n’a pas à se
soucier de la localisation des ressources. Quand il
lance un programme, il n’a pas à connaitre la machine de
domaine qui l’exécutera
I Ils offrent des solutions aux problèmes de la
résistance aux pannes
I Principaux avantages : calcul de haute performance :
partage de charge, fiabilité
I Exemple: Plan 9 , Inferno, ...
Prof. R. HANNANE (FSSM) Systèmes d’exploitation I 26/29 26 / 29
Notions de base en systèmes d’exploitation
Classes de systèmes d’exploitation
Selon leur capacité à evoluer
Systèmes ouverts
I Le code source (le programme) est public, accessible à tous,
modifiable, peut être enrichi / amélioré par les utilisateurs
(exemple: Linux)
I Son objectif est de rendre service au moindre coût (le cas
échéant gratuitement) au plus grand nombre de personnes
Systèmes fermés
I Le code est la propriété d’une société commerciale (exemple:
Microsoft)
I Seules des personnes employées ou accréditées par cette
société peuvent en prendre connaissance
Prof. R. HANNANE (FSSM) Systèmes d’exploitation I 27/29 27 / 29
Notions de base en systèmes d’exploitation
Classes de systèmes d’exploitation
Cas particulier : systèmes embarqué
Systèmes embarqué
I Défini comme un système électronique et informatique autonome
I Ses ressources sont généralement limitées spatialement
(encombrement réduit) et énergétiquement (consommation
restreinte)
I Optimisé (processeurs moins puissants, contraintes
temps-réel)
I Les systèmes embarqués électriques sont très utilisés en
aéronautique et dans l’industrie automobile (avions, fusées,
voitures)
Prof. R. HANNANE (FSSM) Systèmes d’exploitation I 28/29 28 / 29
Notions de base en systèmes d’exploitation
Classes de systèmes d’exploitation
Cas particulier : systèmes temps réel
Systèmes temps-réel
I Typiquement utilisé dans des applications de contrôle des
déroulements externes (e.g. centrales électriques, centrales
nucléaires)
I Contrainte forte en hard real-time : le temps de réaction est
fixé
I Fonctionnement en continu sans réduire le débit du flot
d’informations traité
I Le système ne doit pas simplement délivrer des résultats
exacts, il doit les délivrer dans des délais imposés
Prof. R. HANNANE (FSSM) Systèmes d’exploitation I 29/29 29 / 29