UNSA
Université de Nice Sophia-Antipolis
UFR Sciences
Département Informatique
Licence d’informatique et Maîtrise EEA – Module L3I6
Cours Système
et
Réseaux
Roger Rousseau
CNRS-UNSA/I3S
Version 4.1 Janvier 2006
Chapitre 01
Introduction au cours
Système et Réseaux
1) But du cours
2) Prérequis
3) Planning prévisionnel des séances
4) Bibliographie
5) Documentation en ligne
3
01. INTRODUCTION 1.0
Sommaire suite(1)
6) Architecture d’un système d’exploitation
7) Principales entités d’un système
8) Traitement des erreurs
4
01. INTRODUCTION 1.1 But du cours
But du cours
Ensemble de connaissances de base
sur les systèmes et réseaux
Cours complété par des approfondissements
en option de Master 1 d’informatique
Tronc commun à tous les étudiants d’informatique,
en option pour les étudiants du Master 1 EEA.
5
01. INTRODUCTION 1.1 But du cours
Contenu du cours
Introduction à l’organisation d’un système d’exploitation,
Etude de son "API" (Application Programming Interface) :
description des appels ou « primitives » système,
Programmation système en langage C-ANSI,
6
01. INTRODUCTION 1.1 But du cours
Contenu du cours suite(1)
Problématique de la programmation parallèle
et de la gestion des ressources,
Introduction à l’organisation des logiciels de communica-
tion réseau,
Introduction à la programmation de clients-serveurs avec
sockets.
7
01. INTRODUCTION 1.1 But du cours
Choix du système étudié : Unix/Linux
Système ouvert :
accès aux sources, au fonctionnement interne.
Système complet et portable, disponible sur tous les types
d’ordinateur.
Windows, qui avait beaucoup de retard sur Unix
(jusqu’à Windows98)
a désormais des concepts très voisins de Unix.
La plupart des commandes Unix et shells sont disponibles
aussi sous Windows (environnement cygwin gratuit).
8
01. INTRODUCTION 1.2 Prérequis de cet enseignement
Prérequis de cet enseignement
Connaissances générales sur l’organisation
et le fonctionnement d’un ordinateur
Programmation impérative en langage C-ANSI :
tout le langage C,
bibliothèque de base du langage C,
outils de programmation en C :
éditeur de texte (Emacs), compilateur gcc, préprocesseur
cpp (gcc -E), relieur, Makefile, débogueur, commandes de
base (shell) du système Unix/Linux.
9
01. INTRODUCTION 1.3 Sommaire des chapitres
Sommaire des chapitres
(Ordre logique, pas celui mis en oeuvre)
1) Introduction et Entrées-sorties de fichiers 1 s.
2) Système de gestion de fichiers 1 s.
3) Processus 1 s.
4) Exclusion mutuelle 1 s.
5) Synchronisation 1 s.
10
01. INTRODUCTION 1.3 Sommaire des chapitres
Sommaire des chapitres suite(1)
6) Ordonnancement des processus (sauf EEA) 1 s.
7) Gestion de mémoire virtuelle (sauf EEA) 1 s.
8) Tubes volatiles et persistants 1 s.
9) IPC système V (shm, msg, sem) (sauf EEA) 1 s.
10) Entrées-sortiés avancées (sauf EEA) 1 s.
11) Introduction aux réseaux 1 s.
11
01. INTRODUCTION 1.3 Sommaire des chapitres
Sommaire suite(2)
12) Réseaux couches basses 1 s.
13) Sockets (1) primitives de base 1 s.
14) Sockets (2) primitives avancées 1 s.
15) Signaux 1 s.
16) Clients/Serveurs 1 s.
Total en licence d’informatique : 16 s.
Total en master 1 EEA : 12 s.
12
01. INTRODUCTION 1.4 Bibliographie
Bibliographie sommaire
Sur le langage C-ANSI :
1) S. Harbison & G. Steele Jr
C, a reference manual (1st ed. 1984)
Prentice Hall, 2nd edition, 1987, 404 p.
2) B. Kernighan & D. Ritchie
“The C Programming Language (1st ed. 1978)”,
Prentice Hall, 2nd ed., 1988. Traduction française Masson, 1990.
13
01. INTRODUCTION 1.4 Bibliographie
Bibliographie sommaire suite(1)
Sur les concepts des systèmes d’exploitation :
3) A. Tannenbaum
“ Systèmes d’exploitation : systèmes centralisés, systèmes distribués”
MacGraw Hill, 1990. Traduction française (2e ed) : Dunod, 1999
4) A. Siberschatz & P. Galvin
“ Operating Systems Concepts ”
5e ed, Addison-Wesley, 1998.
5) J. Beauquier & B. Berard
“Systèmes d’exploitation : concepts et algorithmes ”
MacGraw Hill, 1990.
14
01. INTRODUCTION 1.4 Bibliographie
Bibliographie sommaire suite(2)
Sur le système Unix :
6) W. Stevens
“Advanced Programming in the Unix environment”
Addison Wesley, 1992, 744 p.
7) M.J. Bach
“Conception du système Unix”
Prentice Hall, 1986. Traduction française Masson, 1991.
8) J.M. Rifflet
“La programmation sous Unix”,
Ediscience intern., 3ème éd., 1993, 630 p.
9) U. Vahalia
“Unix Internals : the new Frontiers”
Prentice Hall, 1996.
15
01. INTRODUCTION 1.4 Bibliographie
Bibliographie sommaire suite(3)
Sur le système Windows :
10) A.D. Solomon
“Le guide officiel sur l’architecture et le noyau Windows NT”
2nd ed., Microsoft Press, 1998.
16
01. INTRODUCTION 1.4 Bibliographie
Bibliographie sommaire suite(4)
Sur les réseaux :
11) W.R. Stevens
“Unix Network Programming”,
Prentice Hall, 1990, p.
12) D. Comer
“Internetworking with TCP/IP”,
Prentice Hall, , p.
13) J.M. Rifflet
“La communication sous Unix”,
Mc Graw-Hill Book Co., 1991, 410 p.
17
01. INTRODUCTION 1.5 Documentation en ligne
Documentation en ligne
Sur les primitives Unix :
manuels des APIs sur votre machine: commandes man,
xman.
en format html sur votre machine (en français ou anglais)
et sur internet en tapant par exemple sous Google les
mots clés [ linux manual lseek(2) ]
18
01. INTRODUCTION 1.5 Documentation en ligne
Documentation en ligne suite(1)
Chapitres utiles (numérotation du système Linux)
chapitre 2: toutes les primitives appels au noyau.
chapitre 3: primitives de bibliothèques de service pour différents lan-
gages, mais surtout langage C.
chapitre 4: fichiers spéciaux, c.-à-d. les pilotes des périphériques
(disque dur, clavier/écran, graveur, lecteur de dvd, zip, mémoires usb,
etc.)
chapitre 5: format de fichiers et de protocoles
chapitre 7: format des systèmes de fichiers, jeux de caractères, ma-
cros nroff, etc.
chapitre 8: commandes d’administration (à partir d’un shell)
chapitre 1: commandes de l’utilisateur (à partir d’un shell).
19
01. INTRODUCTION 1.5 Documentation en ligne
Documentation en ligne suite(2)
Sur la programmation en C :
Cours sur le langage C en licence d’informatique de l’UNSA
de Gilles Menez :
www-mips.unice.fr/˜menez/L2/L2cours.html
Cours vidéo sur le langage C de l’Université de Paris VI :
www.infop6.jussieu.fr/cederoms/Videoc2000/
20
01. INTRODUCTION 1.5 Documentation en ligne
Documentation en ligne suite(3)
Sur la programmation réseau :
Cours réseau du CNRS :
www.urec.fr/cours
Cours programmation réseau avec sockets,
de Brian "Beej" Hall :
www.ecst.csuchico.edu/˜beej/guide/net/html/.
21
01. INTRODUCTION 1.5 Documentation en ligne
Documentation en ligne suite(4)
Sur l’enseignement « Programmation système et réseau » de
cette année à l’UNSA :
Site web officiel de cet enseignement :
deptinfo.unice.fr/˜rr/l3systres/
Site Wiki de cet enseignement (sujets de TDs et TPs avec
corrigés) :
deptinfo.unice.fr/twiki/bin/view/Linfo/SystemeEtReseau.
22
01. INTRODUCTION 1.6 Architecture d’un système en couches
Architecture d’un système en couches
homme/machine
Accès
réseau
S.G.B.D.
thèques
Biblio−
du système
sous−systèmes
matériel
applications
d’exploitation
Communication
utilisateurs
utilisateurs utilisateurs
utilisateurs
( executif )
noyau
23
01. INTRODUCTION 1.6 Architecture d’un système en couches
Architecture des systèmes en couches suite(1)
Dans le système Unix, l’accès au noyau se réduit aux
appels au superviseur,en mode privilégié :
requêtes au superviseur, primitives système ;
Le système Unix admet plusieurs interprètes de commandes
qui sont des programmes sans privilège : les shells
24
01. INTRODUCTION 1.6 Architecture d’un système en couches
Architecture des systèmes en couches suite(2)
les programmes d’application n’appellent généralement
pas directement les requêtes au noyau, mais des
fonctions de bibliothèques, reliées au programme ;
les bibliothèques sont spécialisées par domaines ;
les sous-systèmes sont très généraux et peuvent être très
complexes (cf. ci-après).
25
01. INTRODUCTION 1.6 Architecture d’un système en couches
Architecture des systèmes en couches suite(3)
Exemples
système organisé en couches : « the »
(le premier système, 1968)
autre système célèbre : OSI
(7 couches normalisées)
requêtes au superviseur : cf. man(2)
fork,read,write,sbrk...
26
01. INTRODUCTION 1.6 Architecture d’un système en couches
Architecture des systèmes en couches suite(4)
fonctions de bibliothèque : cf. man suite(2)
printf,fprintf,malloc ...
autres bibliothèques de statistiques, code d’éléments fi-
nis, structures de données, algorithmes généraux, EAO
...
sous-systèmes :
client-serveur de bases de données,
système graphique X11, système de communication
sur le réseau (montages NFS, Web, mail electronique,
ftp...)
27
01. INTRODUCTION 1.6 Architecture d’un système en couches
Appels système vs fonctions de bibliothèque
( exécutif )
noyau
malloc
appels
système sbrk
fonctions de
l’application
code de
processus utilisateur
bibliothèque
28
01. INTRODUCTION 1.7 Normes du système Unix
Normes du système Unix
Origine : Unix V6, Bell Labs = 1978
Unix V7 : 1980 (UNSA, Info., LSI-11)
Unix BSD 4.2 : 1982
Unix BSD 4.3 : 1985
Unix Système V release 3 : 1986
ANSI C : 1989
Unix Système V release 4 : 1990
IBM AIX : 1990 (basé System V)
Unix POSIX.1 : 1991
Unix BSD 4.3+ : 1992
Linux : 1993
SUN-Solaris : 1994
DEC(COMPAQ) OSF/1 : 1995
APPLE Mac OS X : 2001
29
01. INTRODUCTION 1.8 Traitement des erreurs
Traitement des erreurs
Le langage C ne dispose pas (hélas)
de mécanisme d’exceptions :
il utilise des comptes-rendus
presque toutes les requêtes au système sont
des fonctions qui rendent une valeur :
entière : ,
pointeur de chaîne :
pointeur de structure :
30
01. INTRODUCTION 1.8 Traitement des erreurs
Traitement des erreurs suite(1)
la valeur rendue par ces fonctions est :
normale : positive ou nulle, non ,
anormale : négative ou
=> il faut toujours tester le compte-rendu
de chaque appel !
31
01. INTRODUCTION 1.8 Traitement des erreurs
Traitement des erreurs :
errno
Syntaxe :
Sémantique :
contient le nde la dernière erreur détectée par un appel
système.
N’est pas remise à zéro à chaque appel. cf. intro(2) pour
les différents codes.
32
01. INTRODUCTION 1.8 Traitement des erreurs
Traitement des erreurs :
strerror
Syntaxe :
#
Sémantique :
rend un message en clair associé à errnum,
typiquement la valeur de .
33
01. INTRODUCTION 1.8 Traitement des erreurs
Traitement des erreurs :
perror
(3)
Syntaxe :
#
Retour : pas de code de retour,
Sémantique :
Imprime sur stderr le message fourni,
puis le message associé à .
34
01. INTRODUCTION 1.8 Traitement des erreurs
Exemple : ls1
/* programme : commande très élémentaire,
* utilise :
*/
#
#
#
#
# \
35
01. INTRODUCTION 1.8 Traitement des erreurs
Exemple : ls1 suite(1)
{
= {
}
36
01. INTRODUCTION 1.8 Traitement des erreurs
Exemple : ls1 suite(2)
= == {
% \
% \
}
37
01. INTRODUCTION 1.8 Traitement des erreurs
Exemple : ls1 suite(3)
/* lecture complète de toutes les entrées du répertoire et
* impression des noms de chaque fichier
*/
= = {
% \
}
}
38
01. INTRODUCTION 1.8 Traitement des erreurs
Procédures de traitement d’erreur
de W. Stevens
(non standard)
Syntaxe :
#
39
01. INTRODUCTION 1.8 Traitement des erreurs
Procédures de traitement d’erreur de
Stevens suite(1)
Retour :
errno_return et err_return terminent par return ;
errno_exit et err_exit terminent par exit(1) ;,
errno_dump termine par abort()
40
1 / 7 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !