Systèmes d`exploitation et réseaux

Transcription

Systèmes d`exploitation et réseaux
Systèmes d'exploitation
et réseaux
Phelma 2A SEI – Sujet 2008-2009
Enseignant : François Cayre
Durée : 2 heures.
Documents : non autorisés.
Consignes : Soyez clairs et précis, n'hésitez pas à faire des schémas. Précisez
toutes les hypothèses que vous jugeriez utiles de faire. Il n'y aura pas de réponse
unique ni de correction dogmatique.
1 Questions de cours (10 points)
1- À quoi sert un système d'exploitation ? [1 point / 15 lignes]
2- Rappelez ce qu'est le modèle OSI, à quoi il sert, et ses principaux éléments. [2
points / 20 lignes]
3- Qu'est-ce qu'une interruption ? Citez les deux sortes d'interruptions et
expliquez comment elles sont prises en compte. Quelles sont les principales
applications des interruptions ? [1 point / 10 lignes]
4- Qu'est-ce qu'un appel système ? Un niveau de privilège ? Expliquez le lien
entre ces deux notions. [2 points / 20 lignes]
5- Qu'est-ce que la commutation de paquet et pourquoi cette technique est-elle
utilisée ? [1 point / 10 lignes]
6- Rappelez l'intérêt de la pagination de la mémoire, par exemple en l'opposant à
une stratégie ne mettant pas en oeuvre la pagination. Rappelez ce qu'est la
segmentation de la mémoire et quel est son intérêt. [2 points / 20 lignes]
7- Dans un réseau, quelle est la différence entre adresses physique et logique ? À
l'aide d'un exemple de votre choix, vous expliquerez comment opérer la
traduction entre les deux. [1 point / 10 lignes]
2 Questions de TD (6 pts)
1- On fait l'hypothèse d'un allocateur mémoire (malloc / free) fonctionnant avec
les appels système mmap / munmap. L'allocateur vu en TD avait pour but de
détecter les débordements par excès de la mémoire (de type ElectricFence). Si
l'on cherche maintenant à minimiser le nombre d'appels à mmap / munmap
(réputés coûter cher), comment pourrait-on faire pour réaliser un tel allocateur ?
Quels seraient les éventuels problèmes pouvant se poser en cas d'écriture hors
des limites des blocs alloués pour l'utilisateur ? [2 points / 20 lignes]
2- Expliquez ce que sont les filtres Unix, leur principe, leur intérêt et la manière
de les coder en C. Précisez à quoi sert l'opérateur pipe (|). [1 point / 10 lignes]
3- Expliquez pourquoi, dans le TD sur la multiplication parallèle de matrices, la
version parallèle du programme prend davantage de temps que la version
séquentielle. [2 points / 20 lignes]
4- Rappelez et expliquez les grandes étapes nécessaires à la création d'un
serveur TCP1. [1 point / 10 lignes]
1 On ne s'attend pas à ce que vous vous rappeliez la syntaxe exacte de toutes les fonctions C
impliquées, mais vous pourrez rappeler leur rôle (et leur nom).
3 Questions de réflexion (4 pts)
1- Un protocole réseau utilise le port X (par exemple pour http, X=80) pour initier
une communication, et les deux machines se mettent ensuite d'accord sur
l'utilisation d'un autre port Y pour communiquer (par exemple Y=31337). Quelle
est l'implication pour un pare-feu qui serait chargé de protéger le réseau sur
lequel se trouverait l'une des deux machines ? [1 point / 10 lignes]
2- Pour des raisons évidentes de rentabilité et de sécurité (une application / OS),
on cherche de nos jours à virtualiser les systèmes d'exploitation, i.e. : faire
s'exécuter plusieurs systèmes sur une seule machine physique. Mais on peut
également chercher à obtenir l'inverse : un seul système d'exploitation, qualifié
de distribué, s'exécutant sur plusieurs machines physiques reliées entre elles par
un réseau. Donnez les grandes lignes de l'architecture d'un tel système2. [1 point
/ 15 lignes]
3- La norme OHCI-1394 (FireWire) a été conçue pour permettre à des
périphériques de transférer rapidement vers (et depuis) la mémoire centrale de
grandes quantités de données (caméscope numérique, disque externe, etc.) Pour
cette raison, le contrôleur OHCI-1394 est interfacé avec le contrôleur DMA (Direct
Memory Access) sur les machines qui en disposent (ex : un PC). Chaque
périphérique sur le bus OHCI-1394 demande à lire ou à écrire la mémoire d'un
autre périphérique avec le format de paquet suivant :
16 bits (ID périphérique)
32 bits (@ mémoire physique du périphérique)
Les 16 premiers bits identifient le périphérique sur le bus OHCI-1394 (iPod, PC,
etc.) et les 32 bits suivants donnent l'adresse physique de la mémoire à lire ou à
écrire. Lorsque le système d'exploitation Windows (XP & Vista) détecte un
périphérique OHCI-1394 identifié comme mémoire de masse (ex : un iPod), il
autorise à ce dernier les accès en lecture et écriture de la mémoire physique par
le canal DMA. Ce comportement est voulu.
La librairie raw1394 de Linux permet de forger n'importe quels paquets reconnus
par le bus OHCI-1394.
Afin d'illustrer le fameux dicton « physical access is root access » (un accès
physique à la machine est un accès administrateur), vous expliquerez comment
vous pourriez agréablement et utilement passer le temps en connectant votre
portable Linux en FireWire à un PC sous Windows3. [2 point / 20 lignes]
Bon courage !
2 Les systèmes d'exploitation VMS et Plan9 proposent, à des degrés divers, des fonctionnalités
distribuées.
3 Afin que le fiasco soit complet, l'année 2004 a vu la sortie des spécifications Wireless FireWire
(802.15.3). Pour protéger votre machine Linux, vous lancerez utilement un petit modprobe ohci1394 phys_dma=0 ! Plus de détails sur http://storm.net.nz/projects/16 .