mercredi 6 avril 2011

Examen final Systèmes d’exploitation Examen SE

Question 1 :

Le code suivant implante une pile partagée. Les fonctions push() et pop() peuvent être appelées 

simultanément par plusieurs threads. La fonction  push() bloque jusqu’à ce qu’un  espace soit libre dans la pile. De son côté, la fonction  pop() bloque jusqu’à temps qu’une donnée soit disponible sur la pile. Finalement, les threads doivent s’exclure entre eux. Utilisez les mécanismes de synchronisation par sémaphores pour implanter ce comportement

int stackPointer; 
int stack [ Size ]; 
 
void push (int a) 

  …
  
  stack[ stackPointer ] = a; 
  stackPointer++; 

  … 


int pop() 

 
  
  stackPointer--; 
  int tmp = stack[ stackPointer ]; 

  …
  return tmp; 


main() 

  …
sem_init(mutex, NULL, 1);


Question 2 :


Un ensemble de N avec N > 4 processus partagent 3 imprimantes LP0, LP1, LP2. Pour  éviter de  mélanger les lignes sortie de chaque processus, le processus Pi doit réserver l’imprimante avant de l’utiliser. Pour connaître l’état de chaque imprimante il y a un  vecteur global  int LP[3];

Il y a deux fonctions : prendre() et liberer() :

int prendre()                        int liberer(int i)
{                                           {
  int i=0;                                  LP[i]=0;
  while(i<3)                           }
  {
    if(LP[i]==0)
    { LP[i] = getpid();
      break;//quitter while
    }
    ++i;
  } 
  if (i==3) 
     { return -1; }
  else 
     { return i; }
}


Compléter prendre() et  liberer() pour synchroniser en utilisant  2  sémaphores :
s_mutex et s_lp avec des seudocode UP() et DOWN().
 
Question 3 :

Soit un système de mémoire paginée, dans leque l  il y a un processus avec la chaîne des références de pages : S={244, 1A1, 244, 363, 244, 268, 244, 1A1, 1A2, 363}. Montrer l’état de la mémoire à chaque instant, si l’on suppose que le système possède 3 cadres de pages et qu’initialement ils sont libres. Utilisez  :

a)  Algorithme optimal 
b)  LRU


Le même  système de gestion de mémoire paginée à deux niveaux utilise une TLB. On a mesuré les temps suivants : 

Temps moyen d’accès au TLB = 4nsg 
Temps moyen d’accès au mémoire principale = 33nsg 


c) Si le TLB a un taux de  réussite de 98%, quel est le temps moyen d’accès au   mémoire ?

Question 4 :

Soit un système à multiples partitions de mémoire avec allocation contiguë. A un instant donné les partitions libres  sont 100K, 500K, 200K, 300K et 600K (en ordre des adresses croissantes). On a une liste d’arrivé  des processus qui demandent 212K, 417K, 112K et 426K. Calcule le comportement des algorithmes First-Fit, Best-Fit et Worst-Fit. Quel est le meilleur algorithme dans ce cas? Justifiez.

Question 5 :

Un S.E. utilise segmentation paginée avec des adresses logiques de 19 bits:


Quelle est l’adresse physique correspondante à l’adresse logique 234122 ? Justifiez.

a)  547466
b)  Il y aurait un défaut de page
c)  236170
d)  65535
e)  Aucune n’est correcte

Question 6 :

Considérez le système d’allocation de blocs par indexage à multi-niveaux d’Unix représenté par le diagramme suivant. Supposons que plusieurs disques sont rattachés à la machine, que le même système de fichier Unix s’étant sur tous les disques pour former un volume cohérent, et qu’un bloc de données d’un fichier peut-être alloué sur n’importe quel disque. Aussi, considérez des tailles de blocs de disque de 4 Ko et des pointeurs de taille de 32 bits dans les blocs d’index. Les 24 premiers  bits les plus à droite (i.e. positions 0..23) du pointeur de 32 bits contiennent l’adresse d’un bloc de données sur un disque quelconque, et les 8 derniers bits les plus à gauche (i.e. positions 24..31) contiennent l’adresse du disque sur lequel se trouve  le bloc de données.  

(i)  Calculez la taille maximale d’un fichier en unités d’octets.
(ii)  Calculez la taille maximale de chaque disque qui compose le volume en unité d’octets.
(iii)  Calculez la taille maximale de l’ensemble des disques qui forme le volume en unités d’octets.

Question 7 : 

Dans les systèmes d’exploitation traditionnels, les pilotes de périphériques sont directement intégrés dans le noyau alors que les pilotes de périphériques sont hors du noyau (mais en  mode système) dans les systèmes d’exploitation contemporains. Étant dans le noyau, les pilotes de périphériques traditionnels avaient directement accès à toutes les ressources du noyau. 

(i)   Donnez une raison pour laquelle les pilotes de périphériques traditionnels étaient   intégrés directement dans le noyau.    
(ii)  Expliquez si l’intégration des pilotes de périphériques dans le noyau était sécuritaire ou non.   
(iii)  Expliquez un problème qui pourrait survenir avec les pilotes de périphériques traditionnels, si jamais un périphérique était changé.  
                    

1 commentaires:

Bonjour
J'aurai un concour de magistére et je veux les solutions de ces questions le plus rapidement possible!!!
J’attends avec impatience vos solutions...
Merci d'avance

Enregistrer un commentaire

Share

Twitter Delicious Facebook Digg Stumbleupon Favorites

 

IP