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 .