Ce cours est une introduction aux principes des systèmes
d'exploitation, des réseaux et des applications réparties.
L'objectif est de présenter les principaux concepts, sans développements
techniques détaillés, et de mettre en évidence leur
interaction et leur utilisation concrète par les applications.
La partie pratique comporte deux aspects : (i) Introduction
aux principales fonctions du langage de commande d'Unix, et en particulier
la manipulation des processus (création, rendez-vous) et des fichiers
(y compris verrouillage). (ii) Introduction aux principes de la programmation
distribuée (au travers des extensions réparties de Tcl/TK)
et programmation d'une petite application répartie (un tableur réparti).
Introduction aux systèmes d'exploitation : fonctions d'un système et qualité requises, historique et évolution. Principaux composants d'un système, interfaces d'un système, langage de commande et appels système. Introduction aux processus. Relations entre programme et processus ; notions de base : parallélisme, pseudo-parallélisme.
Transparents cours 1 [PostScript] [Pdf]Cours 2
Interaction entre processus, compétition et coopération. Introduction aux processus dans Unix. Structure d'un processus, hiérarchie de processus, interactions entre processus. Exclusion mutuelle, notion d'opération atomique. Mise en oeuvre de l'exclusion mutuelle par attente active.
Transparents cours 2 [PostScript] [Pdf]Cours 3
Mise en oeuvre de l'exclusion mutuelle au moyen de verrous. Problèmes de l'exclusion mutuelle, interblocage. Synchronisation entre processus : notions de base.
Transparents cours 3 [PostScript] [Pdf]Cours 4
Introduction aux fichiers. Premiers éléments sur la désignation et la liaison. Fonctions d'un système de gestion de fichiers. Opérations sur les fichiers. Illustration avec Unix.
Transparents cours 4 [PostScript] [Pdf]Cours 5
Schémas d'exécution d'un programme par une "machine" (réelle ou virtuelle) ; interprétation et compilation, schémas mixtes ("bytecodes"). Vie d'un programme, notion de liaison. Chaîne de production pour un langage compilé : compilateur, éditeur de liens, chargeur. Illustration avec Unix.
Transparents cours 5 [PostScript] [Pdf]Cours 6
Introduction aux réseaux et applications réparties. Performances d'un réseau (latence, débit ; qualité de service) ; classification (LAN, MAN, WAN) ; notion de protocole et d'interface, protocoles en couches.
Transparents cours 6 [PostScript] [Pdf]Cours 7
Exemples de réseaux et protocoles : Ethernet (CSMA/CD), FDDI (anneau à jeton). Couche physique, protocoles de réseau local ; interconnexion de réseaux locaux par ponts.
Transparents cours 7 [PostScript] [Pdf]Cours 8
Introduction au fonctionnement de l'Internet : protocole IP, adresses IP. Notions sur le routage dans l'Internet ; fonctions d'un routeur, algorithmes de routage
Transparents cours 8 [PostScript] [Pdf]Cours 9
Services de transport, fonctions des protocoles TCP et UDP. Utilisation du service de transport par les applications ; introduction aux systèmes client-serveur et à l'appel de procédure à distance
Transparents cours 9 [PostScript] [Pdf]Cours 10
Construction d'applications réparties avec Tcl-DP. Réalisation de l'appel de procédure à distance au moyen de Tcl-DP. Introduction aux objets répartis : réalisation au moyen de Tcl-DP, exemples.
Services et protocoles usuels sur l'Internet : telnet, ftp, mail, news, Web. Désignation symbolique, services de noms. Fonctionnement schématique de DNS, comme illustration du schéma client-serveur. Introduction au fonctionnement du World Wide Web
Fonctionnement du World Wide Web (suite). Réalisation d'applications réparties sur le Web.