1INTRODUCTION
2 BIBLIOGRAPHIE
3 LORDINATEUR
3.1 LA CARTE MERE
3.2 LE MICROPROCESSEUR
3.3 LA MEMOIRE CACHE
3.4 LA MEMOIRE VIVE
3.5 LA MEMOIRE MORTE (ROM)
3.6 LES FENTES D’EXTENSION
3.7 LE DISQUE DUR
3.7.1 Le fonctionnement interne
3.7.2 La lecture et l’écriture
3.8 LA DISQUETTE
3.9 LE CD-ROM
3.9.1 La composition d’un CD-ROM
3.9.2 Le lecteur de CD-ROM
3.9.3 Ses caractéristiques
3.10 LE DVD-ROM
3.10.2 Les zones
3.11 LE MODEM
3.12 LA CARTE RESEAU
3.12.1 La préparation des données
3.12.2 Le rôle d’identificateur
3.12.3 Les autres fonctions de la carte réseau
3.12.4 Envoi et contrôle des données
3.13 PERIPHERIQUES DENTREE
3.13.1 Le clavier
3.13.2 La souris
3.13.3 Le numériseur
3.13.4 La caméra numérique
3.14 PERIPHERIQUES DE SORTIE
3.14.1 L’écran ou le moniteur
3.14.2 Le moniteur couleur
3.14.3 Les moniteurs à cristaux liquides
3.14.4 Les caractéristiques
3.14.5 L’imprimante
3.14.6 L’imprimante à marguerite
3.14.7 L’imprimante matricielle
3.14.8 L’imprimante à jet d’encre
3.14.9 L’imprimante laser
3.15 PROGRAMMES INFORMATIQUES
3.16 LES LIAISONS
3.17 LA CONNEXION PAR LA LIGNE TELEPHONIQUE
3.17.1 Les modems à 56 Kbit/s
3.17.2 Présentation du RNIS
3.17.3 Fonctionnement du RNIS
3.18 LES LIGNES SPECIALISEES
3.18.1 Quel est le besoin d’une ligne spécialisée?
3.18.2 Le prix d’une ligne spécialisée
3.18.3 La liaison Internet par câble
3.18.4 Les avantages
3.18.5 Le matériel nécessaire à une liaison par câble
3.18.6 L’ADSL
3.18.7 ADSL
3.18.8 La fibre optique
3.18.9 Le satellite
3.18.10 Les ondes hertziennes
3.18.11 Le réseau électrique
3.18.12 Le réseau Ethernet
4 LES PROCESSUS
4.1 STRUCTURE DES PROCESSUS
4.1.1 Généralités
4.1.2 Les processus sous Unix
4.2 COMMUNICATION ENTRE LES PROCESSUS
4.2.1 Les tubes de communication avec Unix
4.2.2 Les messages
4.2.3 La mémoire partagée
4.3 ORDONNANCEMENT
4.3.1 Le tourniquet
4.3.2 Les priorités
4.3.3 Le tourniquet avec priorités
4.3.4 Lordonnancement des fils dexécution
5 LA MEMOIRE
5.1 INTRODUCTION
5.1.1 La multiprogrammation
5.1.2 Les registres matériels
5.2 CONCEPTS FONDAMENTAUX
5.2.1 Production dun programme
5.2.2 Principes de gestion
5.3 LALLOCATION
5.3.1 État de la mémoire
5.3.2 Politiques dallocation
5.3.3 Libération
5.3.4 La récupération de mémoire
5.4 LE VA-ET-VIENT
5.5 LA PAGINATION
5.6 LA SEGMENTATION
5.7 LA MEMOIRE VIRTUELLE
5.7.1 Présentation
5.7.2 Algorithmes de remplacement de pages
5.7.3 Autres considérations
6 LE SYSTEME DE FICHIERS
6.1 QUEST CE QUUN FICHIER?
6.1.1 Une définition
6.1.2 La structure dun système de fichiers
6.1.3 Accès aux éléments dun fichier
6.2 LES BLOCS DU DISQUE
6.3 LA REPARTITION PHYSIQUE DES FICHIERS EN BLOCS
6.3.1 La liste chaînée
6.3.2 La table dindex
6.4 LES DOSSIERS OU LES « REPERTOIRES »
6.4.1 Les répertoires du système MS-DOS
6.4.2 Les répertoires dUnix
6.4.3 Structure et manipulation des nud dindex
6.4.4 Le partage de fichiers par liens avec Unix
6.5 LA MEMOIRE CACHE
6.6 LA STRUCTURE PHYSIQUE DUN DISQUE UNIX
6.7 LA STRUCTURE LOGIQUE DUN DISQUE UNIX
6.8 REPARER LE SYSTEME DE FICHIER
7 LES ENTREES-SORTIES
7.1 COMMENT LE PROCESSEUR COMMUNIQUE AVEC LEXTERIEUR ?
7.1.1 Généralités
7.1.2 Les contrôleurs
7.1.3 Un exemple simple de fonctionnement : écrire sur un disque
7.1.4 Laccès direct à la mémoire
7.2 LES FONCTIONS UNIX
1 Introduction
Ce cours présente les principaux points théoriques du fonctionnement des systèmes d’exploitation. Il les illustre par un certain nombre d’exemples de mise en œuvre qu’il tire essentiellement du système Unix et accessoirement de Windows.
L’histoire de l’informatique est très brève – les ordinateurs sont nés avec la seconde guerre mondiale – et pourtant, elle a connu des grandes évolutions. À leur apparition, les ordinateurs étaient très coûteux et réservés aux grandes entreprises; celles-ci n’en possédaient au départ que quelques exemplaires. Ces ordinateurs « centraux » sont rapidement devenu un auxiliaire d’administration et ils se sont diffusés dans les différents services (departments en anglais) : financier, comptabilité, etc. Pour rendre l’informatique plus adaptée et plus abordable, des fabricants se sont alors mis à produire des mini-ordinateurs « départementaux ». Ces ordinateurs fonctionnaient avec des systèmes d’exploitation qui leur étaient propres, à chaque machine ou à chaque constructeur, par exemple, MVS pour IBM ou VMS pour DEC.
Les systèmes d’exploitation
Aujourd’hui, l’informatique, aussi bien dans les entreprises, que dans la recherche ou l’enseignement, utilise des machines plus petites, fonctionnant avec des systèmes d’exploitation à caractère universel. Parmi ces systèmes d’exploitation, deux se distinguent particulièrement, un système mono-utilisateur, Windows, et un autre multiutilisateurs et multitâches, Unix. D’une manière grossière–et contestable avec l’apparition des réseaux – on peut affirmer que le premier système est destiné à des ordinateurs individuels, tandis que l’autre est réservé au travail en groupe. Les systèmes actuels gèrent, par ailleurs une interface graphique, avec comme pionnier le Finder du Macintosh. Les systèmes d’exploitation actuels ont intégré de façon généralisée le multitâches et le service à plusieurs utilisateurs avec la généralisation des architectures client-serveur, par exemple avec OS/2 d’IBM et Windows/NT.
Parmi ces systèmes, Unix, qui est le plus ancien, est celui qui offre le plus de richesses, le plus d’homogénéité et le plus de souplesse; il dispose, dans les versions standards, d’extensions pour les réseaux et pour le graphique. Pour cette raison, nous l’avons choisi comme le centre de ce cours. Par ailleurs, le système MS-DOS puis Windows, en évoluant, ont incorporé beaucoup de caractéristiques de leur prédécesseur. Les noyaux de ces systèmes se modifieront certainement avec l’évolution des techniques. Cependant, les principes sur lesquels ils se fondent, et à plus forte raison, leur « décor », devraient rester relativement stables, au moins pour les quelques années à venir.
L’étude des systèmes d’exploitation forme une part très importante de l’informatique comme discipline et, à la différence des ses autres domaines, c’est une part qui lui est propre. Ceci au contraire de l’algorithmique ou de la logique, par exemple, qui se partagent avec les mathématiques. C’est aussi une discipline technique qui plus encore que les autres est sujette au renouvellement.
On peut diviser les systèmes d’exploitation classiques en quatre parties principales :
1. Les processus, qui correspondent à l’exécution des programmes. Ces processus pouvant s’exécuter simultanément dans un système multitâche. Le système a pour fonction de les créer, de les gérer, de les synchroniser, ainsi que de leur permettre de communiquer entre eux;
Les systèmes d’exploitation
2. La gestion de la mémoire, qui permet de transférer les programmes et les données nécessaires à la création des processus, d’un support secondaire, par exemple un disque, vers un support central, où a lieu l’exécution des processus. Le système devra garder la trace des parties utilisées et libres de la mémoire ainsi que gérer les transferts entre les mémoires principale et secondaire;
3. Le système de fichiers, qui offre à l’utilisateur une vision homogène et structurée des données et des ressources : disques, mémoires, périphériques. Le système gère la création des fichiers, leur destruction, leur correspondance avec les dispositifs physiques, ainsi qu’un certain nombre d’autres caractéristiques, telles que la protection. Il les organise enfin, en général, en une structure arborescente;
4. Les entrées-sorties, qui correspondent aux mécanismes qu’utilisent les processus pour communiquer avec l’extérieur. Ces entrées-sorties font largement appel aux couches les plus proches du matériel, et dont le système tente de masquer les particularités aux utilisateurs.
Les systèmes d’exploitation modernes intègrent par ailleurs d’autres caractéristiques.
Ces dernières concernent notamment deux évolutions majeures des systèmes informatiques. La première est l’interconnexion des différentes machines et des différents systèmes par des réseaux locaux ou étendus. La seconde est la disparition des écrans de textes et leur remplacement par des dispositifs à fenêtres multiples disposant de propriétés graphiques. Ces deux techniques sont, de plus, étroitement imbriquées. Les systèmes d’exploitation fonctionnent donc, ou vont fonctionner, en réseau et ils consacreront une part importante de leurs tâches à gérer le fenêtrage, le graphisme, et les interactions entre les différentes machines. Ce cours complète les 4 parties précédentes par des études sur :
5. Les réseaux d’ordinateurs, avec les protocoles de communication, d’interconnexion et d’application. Les réseaux permettent de mettre en œuvre une nouvelle architecture informatique fondée sur des clients et des serveurs;
6. Les systèmes répartis avec les protocoles d’appels de procédures à distance qui leur sont associés. Les systèmes répartis actuels trouvent des applications à des architectures clients-serveurs de fichiers ou d’applications, tels que des bases de données.
Les systèmes d’exploitation
7. Les systèmes de fenêtrage graphique, ainsi que le modèle de serveur d’écran.
Le système d’exploitation correspond à l’interface entre les applications et le matériel. Le programmeur d’applications n’aborde que rarement – sinon jamais – son code interne. Il l’utilise par l’intermédiaire d’« appels système ». Les appels systèmes sont souvent accessibles à partir d’un langage de programmation, notamment en C avec le système Unix. Ces appels permettent d’effectuer la plupart des opérations sur les entités du système d’exploitation et, par exemple, de créer et détruire des processus, des fichiers, de réaliser des entrées-sorties, etc. Une terminologie tend à s’imposer pour dénommer l’ensemble des appels système, qu’ils concernent un système d’exploitation ou n’importe quelle d’application informatique : les API (Application Programming Interface).
Les systèmes d’exploitation
Un utilisateur peut lui aussi – dans une certaine mesure – manipuler un système d’exploitation, sans pour autant avoir à créer un programme. Il le fait par l’intermédiaire d’un interprète de commandes (un « shell » en anglais) muni d’une syntaxe et éventuellement programmable. Cet interprète peut accepter les lignes de commandes comme sous MS-DOS ou sous Unix. Il peut aussi gérer les « métaphores » graphiques comme avec les Macintoshes, Windows ou X-Window.