Cours de Système et Réseaux Maîtrise Informatique 4 ème année Partie I : Concepts de base Yahya SLIMANI Dept Informatique Faculté des Sciences de Tunis Yahya.slimani@fst.rnu.tn Y. SLIMANI, FST Tunis 1
Introduction (1) Rappel sur les OS 2 catégories OS pour machine isolée Ressources dédiées totalement à l application en cours d exécution OS pour machines en réseau Ressources accessibles par plusieurs utilisateurs Répartir équitablement les ressources Assurer la communication Y. SLIMANI, FST Tunis 2
Introduction (2) Structure d un OS 2 systèmes Système d exploitation (OS) Gestion des ressources Système de gestion du réseau Gestion de la communication 2 systèmes différents mais qui doivent être compatibles Y. SLIMANI, FST Tunis 3
Introduction (3) Système mixte Principe des systèmes Unix Fonctionnalités de gestion des ressources et d un réseau incluses dans le même système d exploitation Peut être utilisé dans le cas d une machine isolée ou dans le cas d un réseau de machines Y. SLIMANI, FST Tunis 4
OS réseau (1) Fonctionnalités Accès au réseau Gestion des utilisateurs Comptes utilisateurs Gestion de la communication Gestion des privilèges Partage des ressources Définir le degré de partage des ressources physiques et logiques Imprimantes, Disque, Fichier, Répertoire, etc. Y. SLIMANI, FST Tunis 5
OS réseau (2) Surveillance du réseau Sécurité Performances Qualité de Service (QoS) Y. SLIMANI, FST Tunis 6
OS réseau (3) Composants Architecture physique Au minimum deux machines Client (et Serveur) Serveur (et Client) Fonctionnalités Installées sur les deux types de machine Partie Client Partie Serveur Y. SLIMANI, FST Tunis 7
OS réseau (4) Principe général de fonctionnement Soumission d une requête par le client L OS du client la soumet au système réseau (coté client) pour l acheminer vers le serveur Le système réseau (coté serveur) reçoit la requête du client et la soumet à l OS coté serveur Déclenchement de l application associée à la requête Y. SLIMANI, FST Tunis 8
OS réseau (5) L OS (coté serveur) soumet la réponse au système réseau (coté serveur) pour l acheminer vers le client Réception de la réponse du coté client et transmission à l application cliente Fonctionnement Synchrone Y. SLIMANI, FST Tunis 9
Exemples d OS réseaux NOS- (1) OS pour machines INTEL Unix propriétaires Unix/SCO de Santa Cruz Operation SOLARIS de SUN (système UNIX) Linux libres Mandrake Red Hat Suse Ubuntu Y. SLIMANI, FST Tunis 10
Exemples d OS réseaux NOS- (2) BSD libres NetBSD FreeBSD OpenBSD OS de la compagnie Novell NetWare Systèmes de Microsoft Windows NT, Windows NT Server, Windows NT Workstation, Windows 2000, Windows XP, Vista, Y. SLIMANI, FST Tunis 11
Exemples d OS réseaux NOS- (3) Systèmes Apple MAC OS n (n=numéro de version) Systèmes divers OS/2 d IBM LAN Manager d IBM Environnements P2P, C/S Y. SLIMANI, FST Tunis 12
Programmation (1) Aspects de programmation 2 aspects à prendre en compte Programmation classique Fonctions classiques Programmation de la partie communication Fonctionnalités spécifiques Dépend fortement du type de plateforme Machine isolée, Machine réseau Y. SLIMANI, FST Tunis 13
Programmation (2) Programmation locale Cas du système Unix Processus dans la même machine Communication Inter-Processus Appelée aussi IPC (Inter-Process Communications) Aspect fondamental de la programmation des systèmes Synchronisation et communication entre processus Y. SLIMANI, FST Tunis 14
Programmation (3) Mécanismes de communication Signaux Communication asynchrone Tubes non nommés Communication à travers la MC Tubes nommés Communication à l aide de fichiers Files de messages Communication par flots de données Y. SLIMANI, FST Tunis 15
Programmation (4) Mémoire partagée et Sémaphores Gérer les accès à un espace partagé Sockets Mécanisme utilisé aussi bien en local qu à distance Canal virtuel entre deux processus Y. SLIMANI, FST Tunis 16
Programmation (5) Signaux Evénement asynchrone destiné à un ou plusieurs processus Equivalent à une interruption Emis par un processus ou par l OS Mécanisme de bas niveau Utilité Contrôler l exécution d un ensemble de processus (ex: le Shell) Traiter des événements liés au temps Y. SLIMANI, FST Tunis 17
Programmation (6) Y. SLIMANI, FST Tunis 18
Programmation (7) Caractéristiques des signaux Existence de plusieurs types de signaux Signal identifié par un nom symbolique et un numéro A chaque signal est associé un programme de traitement par défaut Possibilité d ignorer un signal Le programme associé à un signal peut être changé (sauf pour 2 cas) Un signal pourra être bloqué Pas de mémorisation des signaux Y. SLIMANI, FST Tunis 19
Programmation (8) Déclenchement des signaux Retransmis par le noyau division par zéro, overflow, instruction interdite, Envoyés depuis le clavier par l'utilisateur Touches : <CTRL>Z, <CTRL>C, <CTRL>X,... Emis par la commande kill A travers une commande shell A partir d une fonction C, en appelant la commande kill Y. SLIMANI, FST Tunis 20
Y. SLIMANI, FST Tunis 21
Programmation (9) Communication par tube non nommés ou anonymes Uniquement entre 2 processus de la même famille Ancêtre commun Contrainte de programmation Fonctions de manipulation Création : Fonction pipe() Lecture : Fonction read Ecriture : Fonction write Y. SLIMANI, FST Tunis 22
Programmation (10) Tube Canal unidirectionnel Supporté par la mémoire centrale Fonctionne en mode flot de caractères Emission et réception de caractères Ecriture et lecture sont atomiques Effets sur les processus Blocage, Terminaison Durée de vie limitée Disparaît lorsque le dernier processus, qui le référencie, se termine Tube privé Y. SLIMANI, FST Tunis 23
Programmation (11) Communication par tubes nommés Remédier à la contrainte des tubes non nommés Hiérarchie de processus Conséquences sur l état des processus Support physique Mémoire centrale (Volatile) Tubes nommés Communication à travers des fichiers Tubes publics N exigent pas de liens de parenté Y. SLIMANI, FST Tunis 24
Programmation (12) Fonctions Création : mknod() ou mkfifo() Ouverture : open Utilisation : read(), write() Fermeture : close Synchronisation Ouverture bloquante (RDV) ou non Paramètres de la fonction mknod() Effets sur l état des processus qui utilisent le tube Y. SLIMANI, FST Tunis 25
Programmation (13) Programmation par socket Mécanismes précédents Mécanismes de très bas niveau (OS) Difficiles à programmer pour des applications de grande dimension Codage en dur Difficile à coder Difficile à déboguer Difficile à maintenir Utiliser des mécanismes de haut niveau Exemple: Sockets, Objet, Web services Y. SLIMANI, FST Tunis 26
Sockets (1) Réseau vs Utilisateur Schéma Client/Serveur Même machine Machines différentes Client demande un service fournit par un serveur sur une autre machine Identifier le service: http://... Conversion en une adresse IP interprétable par les protocoles du réseau (DNS) Y. SLIMANI, FST Tunis 27
Sockets (2) Serveur peut implémenter plusieurs services Adresse IP nécessaire mais non suffisante Identifier le service au moyen d un port (permet d invoquer un processus spécifique) Port de communication Codé sur 16 bits Numéros réservés : 0..1023 7 : echo 25 : mail 80 : serveur web Y. SLIMANI, FST Tunis 28
Source: S. Krakowiak Y. SLIMANI, FST Tunis 29
Y. SLIMANI, FST Tunis 30
Sockets (3) Introduction Utilité des Sockets Interface pour faciliter l utilisation des protocoles de transport TCP et UDP Crée un lien entre une connexion et un port Permet de désigner une connexion (coté client ou coté serveur) en l associant à un numéro de port Communication à travers cette connexion Y. SLIMANI, FST Tunis 31
Sockets (4) Sockets et réseau Interface d accès D un hôte vers les interfaces de transport TCP et UDP TCP (mode connecté) Protocole orienté connexion Echange entre les deux entités reliées par la connexion Flot d octets Contrôle sur la transmission Envoi d accusés de réception Y. SLIMANI, FST Tunis 32
Sockets (5) UDP (mode non connecté) Protocole non orienté connexion Messages échangés individuellement Envoi sans prévenir Réception sans prévenir Données envoyés sous forme de bloc Datagramme Y. SLIMANI, FST Tunis 33
Source: S. Krakowiak Y. SLIMANI, FST Tunis 34
Sockets (6) Sockets coté serveur Serveur Fournit un ou plusieurs services à des clients Lancement du serveur et attente de demandes (phase d écoute) Traite les demandes de service Rend un résultat (éventuellement) Attente et traitement sont séparés Possibilité d attendre de nouvelles requêtes pendant le traitement des courantes Y. SLIMANI, FST Tunis 35
Source: S. Krakowiak Y. SLIMANI, FST Tunis 36
Source: S. Krakowiak Y. SLIMANI, FST Tunis 37
Source: S. Krakowiak Y. SLIMANI, FST Tunis 38
Source: S. Krakowiak Y. SLIMANI, FST Tunis 39
Sockets (7) Sockets coté client 2 étapes sont nécessaires Hypothèses Adresse du serveur connue Connaissance du numéro de port d une socket coté serveur Y. SLIMANI, FST Tunis 40
Source: S. Krakowiak Y. SLIMANI, FST Tunis 41
Source: S. Krakowiak Y. SLIMANI, FST Tunis 42
Sockets (8) Communication avec les sockets Etablissement d une connexion Client et serveur disposent d un descripteur sur leurs connexions Descripteur identique à celui d un fichier Utilisation avec read et write Fermeture avec close Y. SLIMANI, FST Tunis 43
Protocoles (1) Protocoles de la couche contrôle UDP User Data Protocol Entête minimale Livraison des données non fiable Mode non connecté Unité de transfert Message (bloc ou datagramme) Pas de regroupement ou de découpage de messages Y. SLIMANI, FST Tunis 44
Protocoles (2) TCP Transmission Control Protocol Ajout d informations de contrôle dans le paquet à transmettre Livraison fiable des données Nécessité d établir une connexion avant la transmission Unité de transfert Flot d octets non structurés Y. SLIMANI, FST Tunis 45
Communication TCP (1) Source: Stépahne Vialle Y. SLIMANI, FST Tunis 46
Communication TCP (2) Etapes de connexion Serveur et client ouvrent une socket Serveur nomme la socket Il l attache à un de ses ports Le client n est pas obligé de la nommer Attachée automatiquement à un port lors de la connexion Y. SLIMANI, FST Tunis 47
Communication TCP (3) Serveur attend des demandes de connexion Client connecte sa socket au serveur et sur un de ses ports Serveur détecte la demande de connexion Ouverture automatique d une nouvelle socket Y. SLIMANI, FST Tunis 48
Communication TCP (4) Serveur crée un processus pour dialoguer avec le client Nouveau processus continue le dialogue sur la nouvelle socket Serveur peut attendre, en parallèle, de nouvelles demandes Fermeture obligatoire de toutes les sockets Y. SLIMANI, FST Tunis 49
Mode TCP Source: cours@u urec.cnrs.fr Y. SLIMANI, FST Tunis 50
Mode UDP Source: cours@u urec.cnrs.fr Y. SLIMANI, FST Tunis 51
Bibliothèques Windows winsock.lib winsock.h winsock.dll Unix stdio.h sys/types.h sys/socket.h netinet/in.h netdb.h Y. SLIMANI, FST Tunis 52