pita systèmes d’exploitationdidier/lectures/os_00_intro.pdfsystèmes d’exploitation didier...
TRANSCRIPT
Systèmesd’Exploitation
Didier VernaEPITA
Introduction
Préhistoire
Histoire
Aujourd’hui
Génie Logiciel
Systèmes d’ExploitationIntroduction
Didier Verna
[email protected]://www.lrde.epita.fr/˜didier
1/46
Systèmesd’Exploitation
Didier VernaEPITA
Introduction
Préhistoire
Histoire
Aujourd’hui
Génie Logiciel
Table des matières
1 Introduction
2 Préhistoire
3 Histoire
4 Autres Systèmes contemporains
5 Organisation des systèmes d’exploitation
2/46
Systèmesd’Exploitation
Didier VernaEPITA
Introduction
Préhistoire
Histoire
Aujourd’hui
Génie Logiciel
Qu’est-ce qu’un système d’exploitation ?
Ça ? Ça ?
Que dire de command.com, des shellutils, de X11. . . ?
4/46
Systèmesd’Exploitation
Didier VernaEPITA
Introduction
Préhistoire
Histoire
Aujourd’hui
Génie Logiciel
Définition pragmatique
Utilisateur OS Machine
Permettre une utilisationpratique de la machine
Utiliser efficacementles ressources matérielles
Fournir une indépendancevis−à−vis du matériel
1 3
2
5/46
Systèmesd’Exploitation
Didier VernaEPITA
Introduction
Préhistoire
Histoire
Aujourd’hui
Génie Logiciel
Définition(s) technique(s)
La plus répandue :I Allocateur de ressources
(CPU, mémoire, périphériques etc.)I Contrôleur de ressources
(gestion et contrôle dans le temps et dans l’espace)Autres :
I Première couche logicielle au dessus du matérielI Seul programme permanent dans une machineI Portion logicielle qui tourne en mode noyau
6/46
Systèmesd’Exploitation
Didier VernaEPITA
Introduction
Préhistoire
Histoire
Aujourd’hui
Génie Logiciel
1642 : Pascal
http://davidguy.brinkster.net/computer/
Machines Arithmétiques : calcul dirigé manuellement.
8/46
Systèmesd’Exploitation
Didier VernaEPITA
Introduction
Préhistoire
Histoire
Aujourd’hui
Génie Logiciel
1801 : Jacquard
http://lyc-jacquard.scola.ac-paris.fr/historique_1p.html
Automates : métier à tisser doté d’un programme sur unecarte en bois permettant de gérer le mouvement desengrenages.
9/46
Systèmesd’Exploitation
Didier VernaEPITA
Introduction
Préhistoire
Histoire
Aujourd’hui
Génie Logiciel
1843 : Charles Babbage / Ada Byron
http://www-gap.dcs.st-and.ac.uk/~history/
Automate pour le calcul arithmétique : programme sur unecarte en bois, « magasin » pour le stockage des résultatsintermédiaires, automate pour l’exécution du programme.
10/46
Systèmesd’Exploitation
Didier VernaEPITA
Introduction
Préhistoire
Histoire
Aujourd’hui
Génie Logiciel
1936 : Alan Turing
http://www-gap.dcs.st-and.ac.uk/~history/
Définition mathématique précise de la notion d’algorithme.Modèle abstrait pour le calcul informatique. « Machine deTuring ».
12/46
Systèmesd’Exploitation
Didier VernaEPITA
Introduction
Préhistoire
Histoire
Aujourd’hui
Génie Logiciel
1945 : Von Neumann
http://www-gap.dcs.st-and.ac.uk/~history/
Stockage du programme dans le « magasin » (la mémoire),codage de l’information en binaire. Seul le « logiciel » saitdistinguer les instructions et les données.
13/46
Systèmesd’Exploitation
Didier VernaEPITA
Introduction
Préhistoire
Histoire
Aujourd’hui
Génie Logiciel
1945 – 1955 : lampes et jacks
Machines énormesDizaines de milliers de relais mécaniquesprogressivement remplacés par des lampesUtilisation 100% manuelleDirectement en langage machine, panneaux decontrôle électriques.Pas de distinction entre concepteurs, administrateurs etutilisateurs1950 : apparition des cartes perforées
=⇒ Temps de préparation considérable, unité centrale peuactive.
14/46
Systèmesd’Exploitation
Didier VernaEPITA
Introduction
Préhistoire
Histoire
Aujourd’hui
Génie Logiciel
ENIAC (1)Electronic Numerical Integrator and Computer
http://www-gap.dcs.st-and.ac.uk/~history/
15/46
Systèmesd’Exploitation
Didier VernaEPITA
Introduction
Préhistoire
Histoire
Aujourd’hui
Génie Logiciel
ENIAC (2)
http://www-gap.dcs.st-and.ac.uk/~history/
16/46
Systèmesd’Exploitation
Didier VernaEPITA
Introduction
Préhistoire
Histoire
Aujourd’hui
Génie Logiciel
ENIAC (3)
http://www-gap.dcs.st-and.ac.uk/~history/
17/46
Systèmesd’Exploitation
Didier VernaEPITA
Introduction
Préhistoire
Histoire
Aujourd’hui
Génie Logiciel
ENIAC (4)
http://www-gap.dcs.st-and.ac.uk/~history/
18/46
Systèmesd’Exploitation
Didier VernaEPITA
Introduction
Préhistoire
Histoire
Aujourd’hui
Génie Logiciel
ENIAC (5)
http://www-gap.dcs.st-and.ac.uk/~history/
19/46
Systèmesd’Exploitation
Didier VernaEPITA
Introduction
Préhistoire
Histoire
Aujourd’hui
Génie Logiciel
1955 – 1965 : traitement par lots (batch)
Utilisation de transistorsMachines plus fiables (mainframes)Opérateur professionnel
I Engagé pour s’occuper du systèmeI Enchaînement des tâches, surveillance de leur
déroulement etc.I Le programmeur n’a plus accès à la console
Mise en commun des tâches similairesExemple : deux programmes FORTRAN utilisent lemême compilateur
=⇒ Toujours de longues périodes d’inactivité de l’unitécentrale.
20/46
Systèmesd’Exploitation
Didier VernaEPITA
Introduction
Préhistoire
Histoire
Aujourd’hui
Génie Logiciel
Traitement par lots (suite)
Traitement hors ligne (offline)Utilisation de bandes magnétiques comme buffers E/Sde l’unité centrale (IBM-7094). Conversion cartes ↔bandes sur des machines distinctes (IBM-1401).Moniteur résidentPremier système d’exploitation rudimentaire :programme d’enchaînement automatique des tâchescontrôlé par des cartes spéciales ($LOAD, $RUN etc.).
=⇒ Aucune interactivité dans le traitement des tâches.
21/46
Systèmesd’Exploitation
Didier VernaEPITA
Introduction
Préhistoire
Histoire
Aujourd’hui
Génie Logiciel
IBM–7094
http://www.columbia.edu/acis/history/
22/46
Systèmesd’Exploitation
Didier VernaEPITA
Introduction
Préhistoire
Histoire
Aujourd’hui
Génie Logiciel
Console 7094
http://www.columbia.edu/acis/history/
23/46
Systèmesd’Exploitation
Didier VernaEPITA
Introduction
Préhistoire
Histoire
Aujourd’hui
Génie Logiciel
IBM–1401
http://www.columbia.edu/acis/history/
24/46
Systèmesd’Exploitation
Didier VernaEPITA
Introduction
Préhistoire
Histoire
Aujourd’hui
Génie Logiciel
1965 : circuits intégrés
Offrir une gamme de machines compatiblesÉviter les machines dédiées (IBM-1401 vs. IBM-7094).Permettre la montée en puissance progressive.IBM System/360, 370, 4300 etc.Première famille d’ordinateurs dotés de circuitsintégrés. Rapport performance / coût cassé.OS/360 : des millions de lignes d’assembleur. Desmilliers de programmeurs. Autant de bugs.
25/46
Systèmesd’Exploitation
Didier VernaEPITA
Introduction
Préhistoire
Histoire
Aujourd’hui
Génie Logiciel
IBM–360/91
http://www.columbia.edu/acis/history/
26/46
Systèmesd’Exploitation
Didier VernaEPITA
Introduction
Préhistoire
Histoire
Aujourd’hui
Génie Logiciel
1965 – 1980 : multiprogrammation
Traitement par lots multiprogramméI Idée : 1960, mise en œuvre : 1970.I Problème : inactivité du CPU pendant les E/S.I Solution : faire coexister plusieurs travaux dans la
mémoire, et faire travailler celui qui peut.Spooling (Simultaneous Peripheral Operation Online)
I Utilisation de disques (accès direct) plutôt que debandes (accès séquentiel)
I Plus besoin de conversion cartes ↔ bandesForme rudimentaire d’ordonnancement
I Le système choisi un candidat parmi les travauxdisponibles (modification de l’ordre initial des travaux)
I Premier cas de prise de décision à la place desutilisateurs
27/46
Systèmesd’Exploitation
Didier VernaEPITA
Introduction
Préhistoire
Histoire
Aujourd’hui
Génie Logiciel
Disques magnétiques
http://davidguy.brinkster.net/computer/
28/46
Systèmesd’Exploitation
Didier VernaEPITA
Introduction
Préhistoire
Histoire
Aujourd’hui
Génie Logiciel
Temps partagé (multitâche / timesharing)Extension logique de la multiprogrammation
Plusieurs travaux sont lancés simultanément(multiprogrammation)Commutation très fréquente entre les différentsprogrammes en cours (illusion de parallélisme)Possibilité de dialogue avec le programmeur(celui-ci redevient le contrôleur de ses travaux)CTSS (Compatible Time Sharing System), MULTICS
(MULTiplexed Information and Computing Service).
=⇒ Un accès interactif aux données nécessite un systèmede fichiers, et pose donc les premiers problèmes desécurité.
29/46
Systèmesd’Exploitation
Didier VernaEPITA
Introduction
Préhistoire
Histoire
Aujourd’hui
Génie Logiciel
Pour la p’tite histoire. . .
Mini-ordinateurs : DEC PDP-1 (5% du prix d’un 7094)sorti en 1961. La famille s’agrandi jusqu’au PDP-11.Ken Thompson (Bell Labs) développa une versionsimplifiée de MULTICS sur un PDP-7. Ce travail est àl’origine d’UNIX.UNIX s’est développé en System V (AT&T) et BSD(Berkeley Software Distribution). POSIX est un effort denormalisation IEEE.1987 : Andrew Tanenbaum livre MINIX, un cloned’UNIX à vocation pédagogique.MINIX est à la base de LINUX (Linus Torvalds).
30/46
Systèmesd’Exploitation
Didier VernaEPITA
Introduction
Préhistoire
Histoire
Aujourd’hui
Génie Logiciel
PDP-11/50
http://www.columbia.edu/acis/history/
31/46
Systèmesd’Exploitation
Didier VernaEPITA
Introduction
Préhistoire
Histoire
Aujourd’hui
Génie Logiciel
Console PDP-11/50
http://www.columbia.edu/acis/history/
32/46
Systèmesd’Exploitation
Didier VernaEPITA
Introduction
Préhistoire
Histoire
Aujourd’hui
Génie Logiciel
1980 – ? : Ordinateurs personnels
LSI (Large Scale Integration)mini-ordinateurs → micro-ordinateurs1974 : CP/M (Control Program for Micro-computers).Premier système d’exploitation pour Intel (8080) parDigital Research. Basé sur floppy (8-pouces).1980 : IBM PC. Bill Gates fourni son interpréteur BASIC
(Beginners All-purpose Symbolic InstructionsLanguage). Digital Research refuse de fournir sonsystème d’exploitation. IBM se tourne vers Bill Gates:-(
MS-DOS (Microsoft Disk Operating System)Modification du DOS de Seattle Computer Products
33/46
Systèmesd’Exploitation
Didier VernaEPITA
Introduction
Préhistoire
Histoire
Aujourd’hui
Génie Logiciel
1980 – ? : Ordinateurs personnels (suite)
1985 : Macintosh / Windows : incorporation d’uneinterface graphique (Engelbart, Xerox PARC). Windowsn’est qu’une interface graphique au dessus deMS-DOS.Windows 95 / 98 / Me : ne retiennent MS-DOS quepour le boot et la compatibilité des applications. Encorebeaucoup de code assembleur Intel 16 bits.Window NT / 2000 : vrai 32 bits.Et bien sûr : LINUX (X11, KDE etc.), Mac OS X.
34/46
Systèmesd’Exploitation
Didier VernaEPITA
Introduction
Préhistoire
Histoire
Aujourd’hui
Génie Logiciel
Apple IIe
http://www.old-computers.com/museum/
35/46
Systèmesd’Exploitation
Didier VernaEPITA
Introduction
Préhistoire
Histoire
Aujourd’hui
Génie Logiciel
Commodore 64
http://www.old-computers.com/museum/
36/46
Systèmesd’Exploitation
Didier VernaEPITA
Introduction
Préhistoire
Histoire
Aujourd’hui
Génie Logiciel
ATARI 800 XL
http://www.old-computers.com/museum/
37/46
Systèmesd’Exploitation
Didier VernaEPITA
Introduction
Préhistoire
Histoire
Aujourd’hui
Génie Logiciel
Systèmes parallèles / multiprocesseurs :
Plusieurs processeurs partagent les mêmes ressourcesmatérielles (bus, mémoire, périphériques etc.)
I Plus grande capacité de traitement et meilleure fiabilité(« dégradation progressive »)
Multitraitement asymétriqueTâches prédéfinies pour chaque processeur,philosophie maître - esclave (ex. SunOS 4)Multitraitement symétriqueChaque processeur exécute une copie du systèmed’exploitation et communique avec les autres pourl’allocation des tâches (ex. SunOS 5 (Solaris 2) etLINUX)
39/46
Systèmesd’Exploitation
Didier VernaEPITA
Introduction
Préhistoire
Histoire
Aujourd’hui
Génie Logiciel
Systèmes répartis / distribués
Plusieurs processeurs ne partageant pas les mêmesressources matérielles (bus, mémoire, périphériquesetc.)
I Partage de ressources éloignées(imprimantes, fichiers etc.)
I Accélération du calcul (« répartition de charge »)I Fiabilité (nécessite une certaine redondance)I Communication (réseaux)
40/46
Systèmesd’Exploitation
Didier VernaEPITA
Introduction
Préhistoire
Histoire
Aujourd’hui
Génie Logiciel
Systèmes temps réel
Les systèmes temps réel sont principalement utilisés pourdes applications dédiées (ex. robotique industrielle). Ilsdoivent fournir les résultats attendus quelles que soient lescontraintes de temps imposées.
Temps réel rigideSystème garantissant que les tâches critiques finissentà temps. Caractéristique incompatible avec lessystèmes à temps partagé.Temps réel soupleSystème donnant la priorité aux tâches critiquesjusqu’à ce qu’elles se terminent. Cette fonctionnalité seretrouve de plus en plus dans les systèmes modernes(UNIX en particulier).
41/46
Systèmesd’Exploitation
Didier VernaEPITA
Introduction
Préhistoire
Histoire
Aujourd’hui
Génie Logiciel
Structure monolithiquePas (ou peu) de structure
MS-DOS : conçu initialement pour Intel 8088. Pas deprotection matérielle disponible, pas de contrôled’accès, accessibilité de toutes les fonctionnalités auxutilisateurs.UNIX : séparation du système en noyau et programmessystèmes, séparation du noyau en pilotes et interface.
43/46
Systèmesd’Exploitation
Didier VernaEPITA
Introduction
Préhistoire
Histoire
Aujourd’hui
Génie Logiciel
Approche en couches
Chaque couche du système ne peut utiliser que lesfonctionnalités fournies par les couches inférieures (ex.anneaux MULTICS).
Avantages : modularité, plus grande facilité dedébuggage.Inconvénients : difficulté de conception de chaquecouche, perte d’efficacité des appels système.
=⇒ Limiter le nombre de couches, étendre leursfonctionnalités, favoriser la modularité.
44/46
Systèmesd’Exploitation
Didier VernaEPITA
Introduction
Préhistoire
Histoire
Aujourd’hui
Génie Logiciel
Machines virtuellesSimulation logicielle d’une architecture matérielle
Idée d’origine : séparer lamultiprogrammation de la notion de« machine étendue ».
I Avantages : protection desressources, facilité dedéveloppement de nouveauxsystèmes, portabilité.
I Inconvénient : perte d’efficacité àcause de la couche logiciellesupplémentaire.
IBM 370 Hardware
VM/370
CMS CMS OS/360
Virtual 370
Concepts voisinI Mode 8086 virtuel du PentiumI Bytecode (ex. JVM)I Exo-kernels : clônage de machines avec restriction de
ressources
45/46
Systèmesd’Exploitation
Didier VernaEPITA
Introduction
Préhistoire
Histoire
Aujourd’hui
Génie Logiciel
Micro-noyaux
Le moins possible en mode noyauFonctionnalités système déplacées en espaceutilisateur (userland).Modèle client / serveurLes appels système deviennent des requêtes de clients(processus utilisateurs) vers des serveurs(fonctionnalités système en userland).Avantages :
I Tolérance aux pannesI Systèmes distribués
46/46