Cours n n 1 Introduction au Noyau 1
PLAN DU MODULE Objectifs Mécanismes internes du noyau (UNIX) Processus, Ordonnancement Fichiers, Mémoire virtuelle 2
PLAN DU MODULE Organisation Sur 10 semaines Début TD/TME : La semaine du 24 septembre Note finale = 40 % CC + 60 % Examen Equipe enseignante Cours : Pierre Sens Pierre.Sens@lip6.fr TD/TME :Emmanuelle Encrenaz, Sebastien Monnet, Gael Thomas {Nom.Prenom}@lip6.fr 3
1 INTRODUCTION Bibliographie Programmation système J.M. Rifflet, «La Programmation sous UNIX», J.M. Rifflet, «Les communications sous UNIX», C. Blaess, «Programmation système en C sous Linux» Mécanismes internes du noyau UNIX M.J. Bach, «Conception du système UNIX», S.J Leffler & al., «Conception et implémentation du système 4.4 BSD», U. Vahalia, «Unix internals --the new frontiers» Noyau Linux : D. P. Bovet, M. Cesari, «Le noyau Linux» R. Love, «Linux Kernel Development» R. Card & al., «Programmation Linux 2.0» Linux Magazine Sept./Octobre 2003 - «Voyage au centre du noyau Mécanismes internes Windows Inside Windows 2000, 3rd Edition Liens web : voir sur la page du module http://www.infop6.jussieu.fr/lmd/2004/master/ue/noyau-2004oct 4
1 INTRODUCTION Vue d une d machine Ensembles de composants organisées autours de bus Composants de base: mémoire, CPU, I/O, bus système MÉMOIRE CPU IO IO IO IO IO IO BUS SYSTÈME I/Os standard : cartes SCSI et/ou IDE, clavier, souris, hautparleurs, etc. La vitesse du bus système devient le facteur prédominant pour la performance d un ordinateur. 5
1 INTRODUCTION Vue d une d machine : Accès s aux périphp riphériquesriques Bus dédié (isolated I/O) CPU mémoire système I/O Adresses partagés (shared I/O) CPU mémoire système I/O 6 E/S mappée en mémoire (memory-mapped I/O) CPU bus d adresses bus de données bus de contrôle mémoire système I/O
1 INTRODUCTION Vue d une d machine : E/S mappées en mémoirem moire bus d adresses bus de données bus de contrôle CPU CPU ROM1 RAM RAM port I/O I/O port I/O I/O espace des adresses physiques périphérique 7
1 INTRODUCTION Vue d une d machine : Les niveaux de caches Processeur registres Temps accès < 1ns Cache L1 Inst / donnée Temps accès ~1ns Cache L2 Temps accès 2-3 ns Mémoire RAM Temps accès 10-50 ns Disque : 10 ms (x10 6 RAM!) 8
1 INTRODUCTION Vue d une d machine : Multi-processeur SMP Processeur 1 registres Cache L1 Inst / donnée Cache L2 Processeur 2 registres Cache L1 Inst / donnée Cache L2 Architecture Symmetric Multiprocessor (SMP) Processeurs distincts, pas de partage de caches Partage de la RAM + Gestion de flux indépendants - Maintien de la cohérence des caches - Conflit d accès au bus mémoire (nb de processeurs limités) 9 Mémoire RAM
1 INTRODUCTION Vue d une d machine : Multi-core Processeur 1 registres Cache L1 Inst / donnée Processeur 2 registres Cache L1 Inst / donnée Architecture Multi-core (ex. Intel Dual/Quad core, Cell) Deux cœurs de processeurs distincts sur un même support, partage de cache possible (L2 ou L3) Cache L2 Partage de la RAM 10 Mémoire RAM + Gestion de flux indépendants + Moins coûteux que SMP + Moins de pb de cohérence - Moins de cache disponible
1 INTRODUCTION Vue d une d machine MÉMOIRE PRINCIPALE IO IO IO IO IO IO BUS SYSTÈME Cache instructions MMU TLB Unité de de contrôle Unité de de traitement Cache données Décodeur PC ALU Unité flottante CPU Registres 11
1 INTRODUCTION Vue du système : architectures classiques Interface Services Noyau Interface Programmation Système de Fichiers Gestion du cache disque Gestion des Communications Gestion des Processus Pilotes de périphériques (drivers) Périphériques MACHINE 12
1 INTRODUCTION Vue du système : architectures modulaire (Windows NT) 13
1 INTRODUCTION AU SYSTEME UNIX Généralités s (1) Interface utilisateur Utilisateurs Interface bibliothèque Programmes Utilitaires Standard shell,vi,cc Interface appels système Bibliothèque Standard open, read, fork Système d'exploitation UNIX SG process,sgf,sg E/S Matériel UC, Mémoire,Disques, 14
1 INTRODUCTION AU SYSTEME UNIX Généralités s (2) Système interactif en temps partagé, Multi- Utilisateurs et Multi-Tâches Principes Système de gestion de fichiers hiérarchisé Entrées/Sorties Création dynamique de processus (Père / Fils ) Communication inter-processus (Pipes, Sockets) Langage de commande extensible (Shell) Noyau monolithique portable Le noyau est écrit en C à 95%. UNIX existe sur de nombreuses machines (PC, Stations RISC, CRAY- YMP, Hypercubes,...) 15
1 INTRODUCTION AU SYSTEME UNIX Les objectifs Simplicité et efficacité (par opposition aux gros systèmes MULTICS...): Efficacité dans la gestion des ressources Fournir des services d exécution de programmes Charger, Exécuter, Gérer les erreurs, Terminaison Entrées / Sorties à partir de périphériques (Créer, Lire. Ecrire,...). Détecter les erreurs (CPU, mémoire, E/S,...). Fournir des services d administration Allocation des ressources système. Gestion des utilisateurs. Comptabilité et statistiques (accounting) Configuration. Protection des ressources. Ajout et retrait de gestionnaires de périphériques (drivers). 16
1 INTRODUCTION AU SYSTEME UNIX Tentatives de Normalisation POSIX : Compromis entre BSD et Systeme V Proche de V7 de Bell Labs + signaux + gestion des terminaux O.S.F (Open Software Fundation) : IBM, DEC, HP, Conforme aux normes IEEE + outils X11 MOTIF : système de fenêtrage, DCE : calcul réparti DME : gestion répartie : interface utilisateur U.I (UNIX International) : AT&T, Sun, Système V release 4.0 mais aussi... AIX (IBM), Spix (Bull), Ultrix (Digital), HP-UX (HP), SCO-UNIX (SCO), SunOS & Solaris(Sun Microsystems), LINUX, FreeBSD,... 17
1 INTRODUCTION AU SYSTEME UNIX Historique (1) A l origine UNICS (UNIplexed information and Computing System) 1969 UNIX/PDP-7 Ecrit en assembleur sur un PDP-7 pour développer un traitement de texte aux Bell Labs 1973 UNIX V5 Langage C (90%) 1976 UNIX V 6 (coopération de Bell Labs/universités américaines) Berkeley Bell Labs AT&T 1977 1.0 BSD - - 1978 2.0 BSD V7-1979 3.0 BSD - - 1980 4.0 BSD - - 1981 4.1 BSD - - 1982 - - System III 1984 4.2 BSD V8 System VR2 1986 4.3 BSD - - 1989 - V 10-1993 4.4 BSD - System VR4 1991 Linux 18
1 INTRODUCTION AU SYSTEME UNIX Historique (2) 19
1 INTRODUCTION AU SYSTEME UNIX Historique (3) POSIX (Portable Open System Interface exchange) 1993 - Compromis entre BSD et Systeme V 1003.0 Guide et présentation 1003.1 Appels Systèmes 1003.2 Shell et Utilitaires 1003.3 Méthodes de tests et conformité 1003.4 Extensions temps réel 1003.6 Sécurité 1003.7 Administration système 1003.8 Accès commun aux fichiers 1003.9 Appels Fortran-77 1003.10 Interface pour les supercalculateurs 1003.11 Extensions pour le transactionnel 1003.12 Extensions communications inter processus... 20
1 INTRODUCTION AU SYSTEME UNIX Types d APId Contrôler l'exécution d'un processus, Faire des accès et de la gestion sur le système de fichiers, Faire et contrôler des accès réseau, Créer et gérer de l'espace mémoire, Envoyer et recevoir des messages entre les processus, Gérer ou s'informer sur l'état du système, Contrôler des permissions d'accès, Allouer et gérer des ressources diverses 21
1 INTRODUCTION AU SYSTEME UNIX Limites d Unixd Complexité de certaines versions => problèmes de robustesse Interface utilisateur Prolifération des versions => situation chaotique Approche monolythique => difficilement extensible 22