UNIX : Programmation Système Responsable : Edith GUESNE L'objectif de ce cours est de présenter les fonctionnalités et les mécanismes internes d'un système d'exploitation multi-tâches, au travers du développement d'applications susceptibles de fonctionner dans un système distribué (selon une architecture client-serveur), en utilisant l'interface du système (API) avec un langage de haut niveau (langage C). 1. Fonctionnalités et composants d'un système: - Architecture du système UNIX (noyau, shells, commandes externes, utilitaires, librairies, API,.) - Architecture du noyau UNIX (module de gestion des processus, module de gestion des entrées-sorties, module de gestion de fichiers, module de gestion de la mémoire). 2. Bases du fonctionnement multitâches: - Notion de processus, attributs d'un processus; - Table des descripteurs de processus;? - Espace mémoire d'un processus; - Appels système de création et de gestion des processus (fork, getpid, getuid, wait, exec, exit, ..); - Etats d'un processus (prêt, actif, endormi, zombi,..); - Ordonnancement des processus par le scheduler. 3. Système de gestion de fichiers: - Notion de fichier, sous UNIX: - fichiers réguliers sur disque, répertoires, terminaux, tubes de communication, sockets; - Tables du système de gestion de fichiers: table des i-nœuds sur disque et tables du système en mémoire;? - Appels système open, close, read, write et mécanismes sous-jacents; - Mécanisme de redirection des entrées/sorties par duplication de descripteur. 4. Gestion de la mémoire: - Mémoire hiérarchique, notion de cache; application à l'optimisation des opérations d'entrée/sortie (rôle des caches système lors des lecture/écriture sur disque; rôle des caches utilisateurs lors des lectures/écritures par l'intermédiaire des fonctions de la bibliothèque d'entrée/sortie standard du langage C);? - Mémoire virtuelle et pagination. 5. Outils de communication de données entre processus: - Les tubes (tubes nommés, tubes anonymes du système de fichiers); - Les files de messages (IPC); - Les segments de mémoire partagée (IPC); - Les sockets du système de fichiers ( communication locale du domaine UNIX, communication réseau du domaine INTERNET; mode connecté, mode datagrammes ). 6. Outils de synchronisation des processus: - Les signaux (appels système de la norme POSIX; mécanismes et éléments des tables du système permettant d'assurer la gestion des signaux); - Les sémaphores (IPC). Programmation par objets et langage JAVA Responsable : V. SPATHIS L'approche objet : abstraction, encapsulation, modularité, réutilisabilité, fiabilité, maintenabilité L'objet : comportement et état La classe et l'objet L'héritage, le polymorphisme Opérateurs, expressions, instructions Les classes : les données et les méthodes, les droits d'accès, les instances Les constructeurs Les classes imbriquées les classes anonymes L'héritage et le polymorphisme Les interfaces Les paquetages Les exceptions Les interfaces graphiques Les applets Les événements et leur gestion Les threads Réseaux informatiques Responsable : A. FLADENMULLER Ce module constitue le noyau des connaissances " réseaux ", au confluent des télécommunications et de l'informatique. La compréhension des mécanismes présentés est essentielle car ils sont utilisés dans les réseaux actuels et futurs. Les objectifs de ce module sont les suivants : - familiarisation de l'étudiant avec le vocabulaire " réseaux " ; - compréhension des concepts fondamentaux : structuration en couches d'une architecture de communication, notions de protocoles et d'encapsulation des données ; - mécanismes de communication : adressage, routage, commutation, contrôle d'erreur; - initiation aux protocoles courants (notamment Ethernet, IP, TCP et UDP, DHCP) ; · familiarisation avec l'installation et la configuration de réseau (grâce à l'application pratique de certaines notions théoriques présentées en cours et travaux dirigés) Nous insistons sur les infrastructures de transport de l'information utilisées aussi bien par les opérateurs que par les fournisseurs d'accès à l'Internet. À la fin du module, des séances de TD sur machine permettent de mettre en pratique les notions vues et d'effectuer une synthèse des connaissances acquises. · Qu'est-ce qu'un réseau ? Définitions, historique, classifications, architectures · Transmission physique de l'information : traitement du signal, signal numérique/analogique, codage, circuit de données, différents supports de communication (câblages existants, air, fibre optique) · Réseaux d'accès : se connecter à l'Internet via le réseau téléphonique (modem, modem ADSL, modem câble), commutation de circuits versus commutation de paquets, protocole de communication en point à point (PPP) · Réseaux locaux : plan de câblage, topologie, méthodes d'accès au support de communication ; illustration avec Ethernet et Token Ring · Réseaux grande distance Internet : mécanismes d'adressage, allocation d'adresses IP (DHCP), mécanismes de routage (création des tables de routage), interconnexion de réseaux (hubs, ponts, commutateurs, routeurs). · Communications de bout en bout : adressage des applications (numéros de ports), fiabilisation, segmentation, contrôle d'erreur, contrôle de flux ; illustration avec les protocoles TCP et UDP (mode connecté, mode non connecté), notions de sockets · Applications : gestion de réseau (SNMP), Serveurs de noms (Domain Name Server), Serveur web · Travaux dirigés sur machine : v Commandes Unix pour configurer et administrer un réseau v Configuration et installation de serveurs DNS et DHCP. v Installation et configuration d'un serveur web et d'un " web cache "