Systèmes d'expoloitations
Younes CHIHAB
Ecole Supérieure de Technologie- Kénitra
Année 2020-2021
Réflexions?
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?
1
Systèmes d'exploitations
angl. « Operating System (OS) »
Qu'est-ce que c'est?
« un ensemble de programmes assurant la gestion de l'ordinateur et de
ses périphériques »
A quoi ca sert?
à gèrer les ressources matérielles d’un ordinateur et qui endent ces
ressources disponibles à l’usager de telle sorte que l’usager peut utiliser
efficacement son ordinateur.
à simplifier la vie des utilisateurs et des programmeurs.
à gérer les ressources de la machine d'une manière efficace.
Systèmes d'exploitations
2
Exigences à un Système d'exploitation
Généralités
Satisfaire les utilisateurs et les programmeurs
Gérer 2D, 3D, vidéo, audio, réseau, CD, DVD, clé USB, ...
Plusieurs utilisateurs (itinérants) --> multi-utilisateurs
être extensible
De plus en plus gros et complexe :
Efficace, évolutif, maintenable
Exigences de l'utilisateur
« Faut que ça marche ! »
(comme j'en ai envie ...)
« Ça imprime pas ... »
= Machine utilisable (machine étendu)
3
Exigences du programmeur
Simplifier l'accès aux ressources de la machine :
Mémoire, processeur, périphériques, fichiers,
programmes, réseaux, communication interne
Modèle de programmation simple et unifié
Efficacité dans tous les cas
= Machine étendue
Les services d’un OS
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.
4
Historique (avant les Systèmes d'Exploitations)
1945 - 55 : tubes et interrupteurs
• Pas de système d'exploitation
• volumineuses, très fragiles et très lentes
• Calculs simples (tables des sinus et cosinus)
• Programmation en langage machine
• Construction, programmation et maintenance effectuées
par un seul groupe
• Système mono-usager (réservation)
• Mauvaise utilisation de la CPU
Historique
1955 - 65 : Systèmes de traitement
par lots
• Machines à transistors fiables mais coûteuses
• Programmation en Fortran et Assembleur
• Premiers logiciels de base : chargeur et compilateur
Fortran
• Distinction entre opérateurs, constructeurs,
• programmeurs et utilisateurs
• Soumission des travaux
• Enchaînement des travaux par l'opérateur
5
Historique
1965 - 80 : circuits intégrés, disques
• Multiprogrammation, temps-partagé, entrées/sorties
• Unix, version BSD (Berkeley Software Distribution), AT&T,
• interface POSIX (Portable Operating System Interface uniX)
1980 : ordinateurs personnels (PC)
• Interface graphique (concept crée vers 1960, Stanford)
• Réseaux et systèmes distribués
--> Système d'exploitation nécéssaire
Systèmes d'exploitations
CP/M (depuis 1974), Digital Research
UNIX (depuis 1969-1979), premier par AT&T
MS-DOS (depuis 1981), Microsoft
MacOS (depuis 1984), Apple
Windows (depuis 1991), Microsoft
Linux (depuis 1992), OpenSource
6
Systèmes d'exploitations
CP/M (depuis 1974), Digital Research
Gestion de disque dur, mais pas d'arborescence
Pas de graphisme
Exemple:
CPU 8088, 2 MHz
64 KO de RAM
5 MO de disque dur
Systèmes d'exploitations
UNIX (depuis 1969-1979), AT&T
a servi de modèle pour MS-DOS, Windows, ..
Multi-tâche et Multi-utilisateurs
accès simultané aux fichiers, péripheriques, mémoire, processeurs, ..
Protection mémoire : aucun programme ne peut faire planter le
système
systèmes de fichiers hiérarchique
GUI X-Windows (graphical user interface)
7
Systèmes d'exploitations
MS-DOS (depuis 1981), Microsoft
Linux (depuis 1992), OpenSource
finlandais Linus Thorwald
Licence GPL (General Public Licence) – OpenSource
Multi-tâche et Multi-utilisateurs
Distributions
Red Hat
Fedore
S.u.S.e
Debian
Mandrake..
Systèmes d’exploitations
8
Quelques définitions
Processus
Traitement par lots
Systèmes Multi-tache
Systèmes Multi-utilisateurs
Systèmes Multi-processeurs
Systèmes temps réel
Systèmes distribués
Définitions: Processus
Un processus est un programme lors de l'éxécution
Processus=programme en cours d'exécution
Un processus est exécuté par un processeur
Plusieurs processus peuvent être associés à un programme
Chaque processus possède un espace de travail en mémoire, son
compteur ordinal et ses registres
9
Définitions: Processus
Actif (élu): s'il est en cours d'exécution par le processeur
Prêt: s'il est en attente du processeur pour s'exécuter
Bloqué: s'il est en attente d'un événement extérieur
(lecture disque/clavier, données d’un autre processus…)
Définitions:
Traitement par lots (Batch processing)
Un utilisateur donne plusieurs commandes (« Jobs ») dans une
queue d'éxécution de programmes
Entièrement séquentielle
p.ex. pour faire plusieurs calculs pendant la nuit
10
Définitions:
Systèmes Multi-tache (Multitasking)
Assurer l'éxécution de plusieurs programmes en meme
temps (c-à-d. plusieurs processus)
Chaque processus a besoin du processeur
situation concurrente
solution: « scheduling »
Définitions:
Systèmes Multi-processeurs
système avec plusieurs processeurs
parallèle
vrai multi-tache
doit assurer qu'il y a l'éxecution d'autant de processus que
processeurs en meme temps
contrairement: système avec un seul processeur
quasi-parallèle
arreter et reprendre les différentes processus
Gestion avec le « scheduler » (ordonnancement des processus)
11
Définitions:
Systèmes Multi-utilisateurs (« time-sharing »)
permettre a différentes personnes de travailler
avec un ordinateur en même temps
connexion par
via le terminal de l'ordinateur lui-même
à distance (telnet, ssh, ftp, ...)
donner l'impression à chaque utilisateur qu'il est
seul
exige une gestion des droits
de fichiers (pour éviter la destruction des fichiers etc.)
de processus
Définitions:
Multi-utilisateurs
Login
Type:
Administrateur (« root »)
Groupes
Utilisateurs
pour gérer les droits
12
Définitions:
Systèmes Temps réels
Sert pour le pilotage et le contrôle des déroulements
externes (p.ex. centrale électrique)
doit garantir des temps de réactions données pour
des signaux extérieur urgents
plusieurs systèmes d'exploitations n'y arrivent pas car
l'interruption de certaines activités met le système
dans un état instable
Définitions:
Systèmes distribués
doit permettre l'éxecution d'un seul programme
sur plusieurs machines
distribuer les processus et les remettre ensemble
pour gros calculs, p.ex. inversion de grandes
matrices
13
SE: Modèle en couches
Application (Logiciel, p.ex. Microsoft Word)
Gestion des fichiers
Gestion des périphériques (entrées/sorties)
Gestion des processus
Gestion de la mémoire
Noyau du Système d’exploitation
Pilote Pilote Pilote
Matériel
14