Licence d'Informatique L3 - année 2006-2007

Unité d'Enseignement : Introduction aux Systèmes et aux Réseaux
 
Semestre d'ouverture : S6 (mi-janvier-fin avril)
Volume horaire en présence d'enseignants : 30 h
Répartition :
13 h 30 C, 16 h 30 TD dont 9 h sur machine
Volume horaire estimé de travail personnel : 30 h (dont 3 "Apnées")


Équipe pédagogique : Sacha Krakowiak (responsable), Sara Bouchenak, Denis Bouhineau

Pré-requis :
  • Bases de l'algorithmique et de la programmation
  • Pratique du langage C
Co-requis :
  • Architecture des machines, logiciel de base (contenu du cours de L3 : "Architecture Logicielle et Matérielle " (ALM)).

Voir le programme détaillé

Objectifs :

Donner une première introduction aux systèmes d'exploitation et réseaux, en privilégiant le point de vue de l'utilisateur , mais en montrant aussi les liens avec les concepts d'architecture matérielle et logicielle.
Mettre en évidence le rôle complémentaire et l'interaction des systèmes et des réseaux.

A l'issue du cours doivent être acquis la connaissance des fonctions générales d'un système d'exploitation et d'un réseau, le principe de leur utilisation (s'appuyant sur une expérience pratique), leur organisation d'ensemble, et une idée sommaire de certains aspects de leur mise en œuvre, notamment en relation avec le cours ALM.

Programme :
1. Introduction aux systèmes.
Fonctions d'un système d'exploitation, divers usages : système d'exploitation "classique" (ex. Unix), noyau de système embarqué, gestion d'appareils spécialisés. Utilisation des fonctions d'un système, vue à deux niveaux : à travers un langage de commande ; à travers l'interface plus basse des appels système.
Introduction à la vie d'un programme : liaison, chargement, exécution ; schémas de compilation ou d'interprétation.
Illustration de l'utilisation et du fonctionnement de quelques mécanismes de base d'un système : processus (utilisation, principe de mise en œuvre, synchronisation élémentaire) accès à l'information (fichiers, mémoire virtuelle).

    2. Introduction aux réseaux.

    Applications réparties : exemple du Web, principe élémentaire de sa mise en œuvre. Notions de protocoles et interface, protocoles en couches.

    Les services réseau , leur  utilisation, le principe de leur fonctionnement : DNS, FTP, telnet, mail, ...
    Fonctions de la couche transport. Exemple des sockets, mais utilisés à travers fonctions de plus haut niveau (bibliothèque, langage).

Ouvrages de référence :

Référence principale (disponible en plusieurs exemplaires à la Bibliothèque Interuniversitaire) :
  • R. Bryant, D. O'Hallaron, Computer Systems: A Programmer's Perspective, Prentice Hall, 2003 (chapitres 8, 10, 11, 12)
Autres références utiles :
  • J.-M. Rifflet,  R. Yunès, Unix : programmation et communication, Dunod, 2003 (chapitres 11, 13, 14, 15, 18, 19, pour des détails sur l'utilisation d'Unix)
  • J. Kurose, K. Ross, Computer Networking, Addison-Wesley, 2000 (les premiers chapitres, pour l'introduction aux réseaux)
  • W. R. Stevens, B. Fenner, A. M. Rudoff, Unix Network Programming, vol. 1 et 2., Addison-Wesley, 2004 (facultatif, pour approfondir la communication par pipes et sockets)

Programme détaillé 2006-2007

Semaine
Cours TD
TP
Apnées
1 (22/1/07) C1 TD1 (1h30)


2 (29/1/07) C2
TP1 (1h30)
3 (5/2/07)
TD2 (1h30)

4 (12/2/07) C3
TP2 (1h30)

vacances



blanc (26/2/07) C4 TD3 (1h30)

5 (5/3/07) C5
TP3 (1h30) +
Apnée-1
6 (12/3/07) C6 TD4 (1h30)

7 (19/3/07) C7
TP4 (1h30)
blanc (26/3/07)
C8
TP5 (1h30) + Apnée-2
8 (2/4/07)
C9


vacances



9 (16/4/07)
TD5 (1h30)

10 (23/4/07)


TP6 (1h30) + Apnée-3

Les textes des TD et TP et les documents complémentaires sont dans le placard électronique (L3/SR). Les corrigés des TD y seront placés après chaque TD.

Les cours ont lieu dans l'amphi Vauquois (F018) le lundi de 15h15 à 16h45.
Les TD et TP ont lieu dans les salles suivantes :

L'examen aura lieu le 9 mai 2007 de 9h30 à 11h30.

Le texte et le corrigé des examens des années précédentes sont dans le placard.


Cours [voir texte des transparents, 4 par page, format pdf]

[C1]
Introduction aux systèmes d'exploitation : fonctions, principaux  composants ; interfaces d'un système : langage de commande et appels système.
Introduction aux processus. Illustration avec les processus d'Unix
[C2]
Processus dans Unix (suite). Réalisation (ordonnancement, structure de la mémoire, environnement).
Introduction à la communication entre processus : signaux. 
[C3]
Communication entre processus (suite). Schémas élémentaires de synchronisation
[C4]
Compléments sur la vie d'un programme. Schémas de compilation et d'interprétation. Structure d'un interprète.
Exemple: shell Unix.
[C5]
Mémoire virtuelle : organisation, notions sur la mise en œuvre. Allocation de mémoire. Couplage de fichiers (mmap).
[C6]
Introduction aux fichiers et aux entrées-sorties. Fonctions d'un système de gestion de fichiers. Opérations sur les fichiers. Illustration avec Unix.
[C7]
Introduction aux réseaux et applications réparties. Performances d'un réseau (latence, débit ; qualité de service).
Notions de protocole et d'interface, protocoles en couches. Introduction au fonctionnement de l'Internet ; le service DNS.
[C8]
Services de transport. Principe, fonctions.
Illustration : les sockets Unix. Exemples d'utilisation.
[C9]
Introduction au fonctionnement du World Wide Web.
Protocole HTTP, format HTML
Organisation schématique d'un serveur web : gestion du contenu statique et dynamique


Travaux dirigés et travaux pratiques (voir détails) [textes et corrigés dans le placard]

TD1
Structure d'un processus dans Unix, création de processus
TP1
Introduction aux processus d'Unix : usage des appels systèmes fork, wait, exec, exit
TD2
Introduction à la réalisation des processus : ordonnancement, relations avec interruptions
TP2
Signaux, synchronisation élementaire
TD3
Examen du fonctionnement d'un shell. Gestion des travaux, traitement des signaux.
TP3
Réalisation d'un mini-shell
Ce travail sera prolongé par une APNEE sur le même thème (projet non encadré, mais évalué)
TD4
Fichiers, tubes et entrées-sorties (détails).
TD5
Allocation de mémoire : couplage (mmap), principe de réalisation de malloc et free
TP4
Utilisation des fichiers dans Unix
open, close, read, write, pipe, dup
Verrouillage
TP5
Introduction à l'utilisation des sockets  Unix en mode connecté. Serveur itératif, serveur concurrent.
Ce travail sera prolongé par une APNEE sur le même thème (projet non encadré, mais évalué)
TP6
Mini-projet : réalisation d'un serveur web en utilisant les sockets.
Ce travail sera prolongé par une APNEE sur le même thème (projet non encadré, mais évalué)

Mis à jour le 6 avril 2007 par Sacha Krakowiak