• Aucun résultat trouvé

Aucundocumentn’estautoris´e Vendredi14Mars2014—9h-12h ContrˆoleSyst`emesd’exploitation,R´eseaux

N/A
N/A
Protected

Academic year: 2022

Partager "Aucundocumentn’estautoris´e Vendredi14Mars2014—9h-12h ContrˆoleSyst`emesd’exploitation,R´eseaux"

Copied!
2
0
0

Texte intégral

(1)

Institut Galil´ee Syst`emes d’exploitation, R´eseaux

Ann´ee 2013-2014 Licence 2

Contrˆ ole Syst` emes d’exploitation, R´ eseaux

Vendredi 14 Mars 2014 — 9h - 12h Aucun document n’est autoris´ e

Exercice 1 (5 = 2 + 1,5 + 1,5)

1. Rappeler ce qu’est la commutation de contexte et `a quoi sert l’ordonnanceur. On pr´ecisera comment s’effectue la commutation entre 2 processus ou threads.

2. Les processus suivants doivent ˆetre excut´es sur un ordinateur ayant un seul CPU : Processus Date de d´ebut d’ex´ecution Dur´ee suppos´ee d’ex´ecution

A 0 3

B 1 6

C 4 4

D 6 2

E 7 1

On supposera que le temps de commutation de contexte est n´egligeable.

Donner le diagramme de Gantt et le temps moyen de traitement lorsque l’algorithme d’ordonnancement de processus utilis´e par le syst`eme d’exploitation utilise la m´ethode premier arriv´e premier servi (FIFO).

3. Mˆeme question avec la m´ethode dite du plus court temps d’ex´ecution restant (SRTF).

Exercice 2 (5 = 2,5+2,5)

Soient deux processus A et B prˆets tels que A est arriv´e en premier suivi de B, 2 unit´es de temps apr`es. Les temps de CPU n´ecessaires pour l’ex´ecution des processus A et B sont respectivement 15 et 4 unit´es de temps. Le temps de commutation est suppos´e nul. Calculer le temps de s´ejour de chaque processus A et B, le temps de traitement et le temps d’attente, le temps moyen de traitement et le temps moyen d’attente, et le nombre de changements de contexte pour les m´ethodes avec quantum (m´ethodes RR) suivantes:

1. un quantum de 3 unit´es de temps 2. un quantum de 10 unit´es de temps

Exercice 3 (4 = 1+3)

1. D´ecrivez le fonctionnement de l’appel syst`emepthread_create(). Mentionnez en particulier ce qui est effectu´e relativement `a la table de description des processus, `a la m´emoire centrale. Comparer avec l’appel syst`eme fork().

2. Pour le syst`eme d’exploitation unix, ´ecrire un programme C qui doit afficher sur la sortie standard le nombre de thread fils qu’il peut cr´eer. Pour cela, ce programme doit cr´eer de nouveaux threads jusqu’`a ce que cette op´eration soit impossible. Attention `a la terminaison des threads!

Exercice 4 (6 = 3+3)

La fonction TRI, donn´ee `a l’annexe 1, effectue un tri rapide (quicksort).

1. Modifiez ce programme pour que chaque appel `a la fonction TRIsoit en fait effectu´e par un thread cr´e´e pour cela.

2. Sous Unix, les informations sur un fichier peuvent ˆetre obtenues en utilisant la fonction syst`eme suivante:

int stat(const char *nom_fichier, struct stat *stat_ptr)

La fonctionstat()met les informations concernant le fichiernom_fichierdans l’argumentstat_ptr. Le type statde cet argument est donn´e `a l’annexe 2.

Ecrivez un programme enCqui prend en entr´ee une liste de noms de fichiers et cr´ee deux threads. Le premier thread trie la liste en fonction de la taille des fichiers et ´ecrit le r´esultat dans un fichiertri.tailleet le second thread trie la liste en fonction de l’heure du dernier acc`es et sauvegarde le r´esultat dans un fichier tri.acces.

1

(2)

(Annexe 1) Fonction TRI effectuant un tri rapide (quicksort):

1#include <s t d i o . h>

2

3#define N 10

4 i n t T [N ] = {2 , 4 , 8 , 5 , 1 , 9 , 1 0 , 4 , 1 4 , 1 1};

5

6 i n t PARTITION(i n t ∗,int,i n t) ;

7 void ECHANGER(i n t ∗,int,i n t) ;

8 void TRI (i n t ∗,int,i n t) ;

9

10 void TRI (i n t T [N ] , i n t d , i n t f ) {

11 i f ( d < f ) {

12 i n t q = PARTITION( T, d , f ) ;

13 TRI ( T, d , q−1 ) ;

14 TRI ( T, q+1 , f ) ;

15 } }

16

17 i n t PARTITION(i n t T [N ] , i n t d , i n t f ) {

18 i n t p i v o t = T [ f ] ;

19 i n t j , i = d−1;

20 f o r ( j=d ; j<f ; j ++) {

21 i f (T [ j ] <= p i v o t ) {

22 i = i +1;

23 ECHANGER( T, i , j ) ;

24 } }

25 ECHANGER( T, i +1 , f ) ;

26 return i +1;

27 }

28

29 void ECHANGER(i n t T [N ] , i n t i , i n t j ) {

30 i n t temp = T [ i ] ;

31 T [ i ] = T [ j ] ;

32 T [ j ] = temp ;

33 }

34

35 void main ( ) {

36 i n t i ;

37 f o r ( i =0; i<N ; i ++) p r i n t f ( ”%d ” ,T [ i ] ) ;

38 p r i n t f ( ”\n” ) ;

39 TRI (T, 0 , N−1 ) ;

40 f o r ( i =0; i<N ; i ++) p r i n t f ( ”%d ” ,T [ i ] ) ;

41 p r i n t f ( ”\n” ) ;

42 }

(Annexe 2) Description du typestat:

struct stat {

unsigned long st_dev; /* Peripherique. */

unsigned long st_ino; /* Numero i-noeud. */

unsigned int st_mode; /* Protection. */

unsigned int st_nlink; /* Nb de liens materiels. */

unsigned int st_uid; /* User ID proprietaire. */

unsigned int st_gid; /* Group ID proprietaire. */

unsigned long st_rdev; /* Numero de peripherique. */

long st_size; /* Taille totale en octets. */

int st_blksize; /* Taille de bloc pour E/S. */

long st_blocks; /* Nombre de blocs de 512 octets alloues. */

long st_atime; /* Heure de dernier acces. */

long st_mtime; /* Heure de derniere modification. */

long st_ctime; /* Heure de dernier changement. */

};

(Annexe 3) Fonctions et en-tˆete utiles:

#include <s y s / t y p e s . h>

#include <s y s / s t a t . h>

#include <f c n t l . h>

#include <s t d i o . h>

#include <s t d l i b . h>

#include <p t h r e a d . h>

#include <u n i s t d . h>

i n t p t h r e a d c r e a t e ( p t h r e a d t ∗t h r e a d , const p t h r e a d a t t r t ∗a t t r ,

void ∗(∗s t a r t r o u t i n e ) (void∗) , void ∗a r g ) i n t p t h r e a d j o i n ( p t h r e a d t t h r e a d , void ∗∗v a l u e p t r ) void p t h r e a d e x i t (void ∗v a l u e p t r )

i n t open (const char ∗pathname , i n t f l a g s ) ; i n t c l o s e (i n t f d ) ;

s s i z e t w r i t e (i n t fd , const void ∗buf , s i z e t c o u n t ) ;

2

Références

Documents relatifs

Lorsqu’un processus devient prˆ et ou est cr´ e´ e, le syst` eme v´ erifie si son ´ ech´ eance est strictement inf´ erieure ` a celle du processus en cours d’ex´ ecution.. Si

[r]

[r]

Le traitement en temps réel mobilise l’essentiel des forces sur la petite et moyenne délinquance, c’est ce que certains procureurs ont exposé dans le premier rapport

En nous intéressant aux effets de « disruption » plus ou moins profonds qu’a engendré la pandémie, nous questionnons la manière dont ceux-ci ont modifié les pratiques de

La simple étude théorique poursuivie selon son rythme et s•es métnodie!S particulières, prend donc un intérêt· parce qu'eUE' dev~ent un outil en vue d'un

À partir du XIIème siècle, les châteaux sont construits en pierre pour être plus résistant, notamment aux incendies.. Château de Foix – 7 ème

courriers = 48 heurs. marge Intervalle du temps entre deux opération, qui permet d’observer un retard d’exécution de la premier opération. - la déférence entre le délai