Evolutions des Systèmes d'exploitation Qu'est ce qu'un Système d'exploitation?? Histoire des Systèmes Architectures Tâches que les Systèmes d'exploitations réalisent Nouveautés
Qu'est ce qu'un Système d'exploitation?? C'est un programme ou ensemble de programmes Est exécuté avant toutes les autres tâches (excepté le contenu de la ROM BIOS) Gère les ressources du système informatique Offre des services via une interface homogène Abstraction, gestion et coordination des accès au matériel Bibliothèque de programmation (appels systèmes, exemple de la Win32..) OS!= mode noyau... l'os est plus large que cela
CTSS, Multics, Commodore, THE Operating System, FLEX9, Digital UNIX, HP UX, IRIX, NeXTSTEP, OSF/1, Plan 9, Inferno, SCO UNIX, System V, UNIXWARE, Ultrix, AmigaOS, MultiTOS, Liste de Systèmes d'exploitation Mac OS X, Darwin, BeOS, TENEX, VMS, OS/2, AIX, OS/400, DOS/360, MFT, MVT, MVS, CP/M, MP/M, PC DOS, MS DOS, Windows NT, FreeBSD, NetBSD, OpenBSD, NetWare, Xenix, Solaris, SunOS, Palm OS, Pocket PC, Windows CE, IOS, ecos, QNX, VxWorks, µclinux, Montavista Linux, Apple Lisa, GECOS...
Histoire des Systèmes 5000 à 1623 : cailloux, bouliers, Al Khorizmi 1942 : ENIAC 1956 : «ordinateur» par Jacques Perret 1961 : PDP 1, CTSS 1963 : Multics 1969 : UNIX 1973 : Langage C 1976 : VMS 1977 : UNIX 6 th, 1BSD 1983 : System V, 4.2BSD, NetWare 1 1985 : Windows 1.0 1988 : Sun et AT&T signe un accord, 4.3BSD 1990 : Windows 3.0 1991 : Linux 0.02 1992 : 4.4BSD 1993 : Windows NT 3.1, rachat d'unix 1994 : Linux 1.0, FreeBSD 2.0 1995 : NetWare 4.11 1996 : Windows NT 4, Linux 2.0 1999 : NetWare 5.1 2000 : Windows 2000, FreeBSD 4.0 2001 : Linux 2.4 2002 : NetWare 6.5 2003 : Windows Server 2003, FreeBSD 5.0 2004 : Linux 2.6, FreeBSD 5.3
Les différentes classes de Systèmes d'exploitation Monolithique Micro noyau Machine virtuelle Exo noyau Couches Hybride
Principales tâches du Système d'exploitation Gestion de processus Ordonnancement des tâches Gestion de la mémoire Gestion des périphériques Protection des programmes Sécurité Gestion des données Gestion des communications
Les Systèmes d'exploitation considérés Microsoft Windows NT 3.1 à 5.2 Linux 2.4 et 2.6 FreeBSD 4.x à 5.2 Novell NetWare 4.11 à 6.5 Tendance à la convergence.
Architecture des Windows NT
Architecture de 4.4BSD (Unix traditionnel) system calls interrupts and traps terminal handling cooked tty raw tty line discipline character devices sockets network protocols routing network device drivers file map faults naming file virtual systems memory buffer cache page cache disk device drivers signal handling process scheduling process dispatching process creation & termination hardware
Architecture de Linux (Unix moderne) ELF a.out translation fichiers processus NFS SMB ext3 translation périphériques translations anonymes mémoire virtuelle systèmes de fichiers XFS AFS services communs processus temps partagé disques durs périphériques blocs ordonnanceur pilote bande flux processus systèmes pilotes réseaux tty
Architecture des NetWare matériel pilotes réseaux pilotes disques, bandes NSS Volumes NLMs NLMs en espaces Protégés gestionnaire cache mémoire virtuelle NetWare Kernel Library Services noyau natif noyau multiprocesseur Module de Support de la Plateforme µp µp µp... µp mode noyau mode utilisateur
Gestion des processus Windows NT, Linux, FreeBSD, NetWare : création/destruction des processus diagramme d'états du processus unité de base de l'ordonnancement NetWare : notion de machine virtuelle distingue les threads applicatifs des threads anonymes
Ordonnancement Préemption et/ou Coopération Invocation de l'ordonnanceur Favoriser une courte latence ou le débit (low latency / high throughput) Quantum/Timeslice Types des files et gestion des priorités
Interruption matérielle Nécessité des interruptions matérielles Criticité Priorité Les «moitiés» Exécution différée Les Work Queues
Synchronisation Ressource critique Concurrence Systèmes Multiprocesseurs Attente Active contre Attente Passive Contention Dimensionnement Opérations atomiques Barrières Spin Locks Sémaphores Autres mécanismes
Mémoire virtuelle Type et taille de l'espace d'adressage d'un processus Pagination Swapping Algorithme de remplacement de page
Nouveautés Windows NT : diminution de temps de latence, amélioration du dimensionnement, NUMA, adressage étendu Linux : NUMA, subarchitecture, O(1), IRQ balancing, PAE, kernel preemption, I/O scheduler FreeBSD : SMPng, KSE/THR, busdma, ULE scheduler NetWare : Mémoire virtuelle, support multiprocesseur amélioré
Voilà