• Aucun résultat trouvé

Corrigé Module de « Systèmes d’exploitation »

N/A
N/A
Protected

Academic year: 2022

Partager "Corrigé Module de « Systèmes d’exploitation »"

Copied!
6
0
0

Texte intégral

(1)

Université de Chlef Janvier 2020 Département Informatique

Filière : 1 ère Année Master - Ingénierie des Logiciels

Examen semestriel

Module de « Systèmes d’exploitation » Corrigé

Exercice 1 : (7 points)

On considère le système de gestion de fichiers du système Unix.

Question 1/ Qu’est ce que le superbloc et quel est son rôle ? Réponse :

Le superbloc est une structure de métadonnées (données permettant de décrire les données) sur la partition d’un système de fichier de Unix : le type du système de fichiers, la taille d’un bloc, la liste des inodes, l'état d'occupation des secteurs, … etc.

(1 pt)

Question 2/ Qu’est ce que l’inode et quel est son rôle ? Réponse :

L'inode est une structure de données permettant d'accéder aux détails d'un fichier sur le système Unix. Chaque fichier a son propre inode qui contient des métadonnées pour la description du fichier : l'identifiant du propriétaire , l'identifiant du groupe propriétaire , le type de l'inode , les droits d'accès, la date de dernière modification du fichier, ...etc, mais aussi des liens vers les blocs de données composant le fichier.

(1 pt)

On donne les informations suivantes : La taille d'un bloc de données est de 1 ko (kilo-octets). Chaque pointeur (numéro de bloc) occupe 4 octets. Chaque inode comprend 10 liens directs, 1 lien indirect simple, 1 lien indirect double et 1 lien indirect triple.

Question 3/ Combien de blocs de données et de blocs de liens sont nécessaires pour représenter un fichier ayant une taille de 420 Ko ? Et quelle est la taille de la fragmentation occasionnée (espace réservé mais non utilisé) ? Justifiez.

Réponse :

Nombre de blocs de données = 420.

Justification :

Chaque bloc occupe 1 Ko. Pour sauvegarder les données d'un fichier de 420 Ko, il faut donc 420 blocs de données.

(1 pt)

(2)

Nombre de blocs de liens = 3.

Justification :

Chaque bloc de liens contient 1024/4, soit 256 liens. Pour assurer les 420 liens nécessaires à ce fichier, on aura besoin de :

10 liens directs (aucun bloc de liens n'est utilisé)

256 liens présents sur le seul bloc de liens indirects simples 154 liens présents sur 2 blocs de liens d'indirection double.

(1 pt)

Fragmentation = 1428 octets.

Justification :

Sur le premier bloc de liens de l’indirection double, nous avons (256 – 1), soit 255 liens inutilisés.

Sur le 2ème bloc de liens de l’indirection double, nous avons (256 – 154), soit 102 liens inutilisés.

Au total, nous avons 357 liens inutilisés, soit 357*4 = 1428 octets.

(1 pt)

(3)

Question 4/ Quelle est la taille minimale que doit avoir un fichier pour qu'on soit obligé d'utiliser le lien indirect double ?. Justifiez.

Réponse :

Taille minimale = 272.385 octets.

Justification :

Pour qu'on soit obligé d'utiliser le lien indirect double, il faut que les liens directs et indirects simples soient saturés. Cela donne :

10 liens directs 10 blocs de données

256 liens indirects simple 256 blocs de données

Pour qu'on soit obligé d'utiliser le lien indirect double, la taille du fichier doit donc être au minimum égale à :

(10 + 256) x 1024 +1 , soit 272.385 octets.

(2 pt)

Exercice 2 : (8 points)

Un système informatique dispose de 3 types de ressources (R1, R2 et R3) et de 3 processus (P1, P2 et P3).

On donne dans les tableaux suivants, respectivement : Le nombre total d’instances par type de ressources, les ressources effectivement affectées et les demandes de ressources en attente.

Tableau 1 : Le nombre total d’instances par type de ressources

R1 R2 R3

1 2 1

Tableau 2 : Les ressources effectivement affectées aux processus

R1 R2 R3

P1 0 1 0

P2 1 1 0

P3 0 0 1

Tableau 3 : Les demandes de ressources en attente

R1 R2 R3

P1 1 0 0

P2 0 0 1

P3 0 0 0

Question 1/ Dessinez le graphe d’allocation des ressources de ce système.

Réponse :

(1.5 pt)

(4)

Question 2/ Montrez que le système n’est pas en situation d’interblocage.

Réponse :

Il n’ya pas de circuit dans le graphe d’allocation. Il n’ya donc pas d’interblocage.

Le processus P3 n’a aucune demande de ressource en attente. Il peut donc terminer son exécution. Après la terminaison de P3, on peut affecter l’instance de la ressource R3 au processus P2 qui pourra terminer son exécution. Après la fin de P2, on pourra affecter l’instance de la ressource R1 au processus P1, qui pourra poursuivre son exécution.

(1.5 pt)

Question 3/ Quelle opération supplémentaire suffirait-elle pour provoquer un interblocage ?.

Justifiez.

Réponse :

Un interblocage survient si le processus P3 fait une demande supplémentaire de la ressource R1 ou R2. En effet, dans ce cas il y’a un circuit qui va apparaitre dans le graphe qui exprime une attente circulaire.

(2 pt)

Question 4/ Expliquez brièvement 3 méthodes (vues en cours) qui peuvent être proposées pour guérir l’interblocage.

Réponse :

Correction manuelle : L’interblocage est corrigé par une intervention humaine (en relançant le système par exemple).

Terminaison de processus : On peut éliminer l’interblocage en arrêtant les processus un à un jusqu’à éliminer l’interblocage.

Réquisition de ressources : Pour éliminer l’interblocage, en procédant à la réquisition d’une ou plusieurs ressources, en les enlevant à un processus et en les donnant à un autre jusqu’à ce que l’interblocage soit éliminé.

(3 pt)

Exercice 3 : (5 points)

Un processus émetteur envoie, via une socket, des entiers lus au clavier à un processus récepteur.

Le processus récepteur reçoit ces entiers un à un, les multiplie par 2 et les affiche. Lorsque le récepteur reçoit la valeur spéciale -1, il ferme la socket et se termine.

3 15

7 11 -1 Emetteur

6 30 14 22

*** Fin ***

Récepteur

(5)

Travail à faire : Ecrire en java le code du récepteur.

Soignez votre code.

Réponse :

package java_sockets;

/**

*

* Dr Loukam Mourad

* Examen SE, Janvier 2020 */

import java.io.IOException;

import java.io.ObjectInputStream;

import java.net.ServerSocket;

import java.net.Socket;

public class Socket_Recepteur2020 {

//ServerSocket variable

private static ServerSocket server;

//Port réservé au socket private static int port = 8080;

public static void main(String args[]) throws IOException, ClassNotFoundException{

int x;

boolean Arret;

Arret=false;

//Créer un socket coté Serveur server = new ServerSocket(port);

//Boucle d'écoute des données de l'émetteur while(!Arret){

System.out.println("Attente d'un nombre ...");

//Attente d'une connexion du client Socket socket = server.accept();

//Création d'un flux de données d'entrée associé au socket

(6)

ObjectInputStream ois = new ObjectInputStream(socket.getInputStream());

//Lire le message envoyé par l'émetteur (Client) String message = (String) ois.readObject();

x = Integer.parseInt(message);

if (x!= -1)

System.out.println("Nombre : "+x*2);

else Arret=true;

ois.close();

socket.close();

}

System.out.println("***Fin***");

//Fermer le socket server server.close();

} }

(5 pt)

Références

Documents relatifs

Liseuses sous Mac Page 11 1 Si Adobe Digital Editions ne vous ouvre pas le livre, allez chercher le document dans le dossier de téléchargement de votre ordinateur et ouvrez

Prix pondéré moyen journalier d'acquisition des actions*.. Marché

Prix pondéré moyen journalier d'acquisition des actions*.. Marché

- permettre la prise en charge d’un identifiant de VPN ne dépendant pas de IP pour être utilisé dans les VPN de couche 2, - identifier l’autorité de VPN au sein de l’identifiant

L’entreprise compte 530 salariés et dispose d’un tableau Listing qui contient sur chaque ligne les données de ses employés de type chaîne de caractères [NOM, SEXE,

b) Au lieu de retouner i, retourner caractère(i+1) ou retouner

Libellé du module : Projet (1) Informatique ou mécatronique Numéro du module dans la liste de l’offre de l’école: Réservé ISTY Nombre d'ECTS attribués : 3 ECTS.

Moins : actionnaires, capital souscrit non appelé Capital appelé..