Devoir Surveillé en Système d'exploitation

Page 1 sur 4Lecteur de document UniversityLib

Devoir Surveillé en Système d'exploitation

Informatique, Système d'exploitation · exam

Voir tous les documents en systèmes d'exploitation et cloud

ECOLE NATIONALE DES SCIENCES DE L'INFORMATIQUE

ANNEE UNIVERSITAIRE 2009/10

: Int.Sys et Util de base

: Devoir Surveillé

: 2 heures

: non autorisés

: 10 Avril 2010 : : 6 :

NOM & PRENOM :

CLASSE :

Questions 1— (10 points – 1,5*4+4*1)

1. - Quelles sont les principales activités d’un système d’exploitation relatives à la gestion des processus?

 allouer de la mémoire aux processus qui en ont besoin   Allouer le microprocesseur aux différents processus qui en ont besoin

récupérer la mémoire utilisé par un processus

2. Quelles sont les principales activités d’un système d’exploitation relatives à la gestion de la mémoire ? répartition de la mémoire disponible entre les différents processus actifs et l’ensemble des utilisateurs présents (notion de sécurité réciproque des tâches), localisation maintien des données pour chaque processus,

  maintien de l’intégrité de certains espaces réservés (zones mémoires utilisées pour les entrées/sorties

par exemple),

 gestion de la pagination de la mémoire, utilisation de mémoire virtuelle.

3. Dans les langages symboliques (langages d’assemblage), il existe des déclaratives, qui ne sont pas à proprement parler des instructions - elles n'engendrent pas de code binaire exécutable- mais servent plutôt à titre pour les différents utilitaires qui vont traiter le programme source afin de produire un programme objet exécutable". Pour illustrer cette phrase présenter trois directives de votre choix et monter pour chacune d'elles son rôle, sa portée dans la chaîne de production de l'objet (assemblage, édition de liens, chargement, exécution), la forme sous laquelle elle est transmise d'un utilitaire au suivant.

 Orig  segment   …

IMPORT/EXPORT

système : chargement Assemenleur Editeur de liens

4. Expliquer les différentes façons d’écrire une liste de commandes avec le Bourne shell.

Publicité

 ; exécution séquentielle  & exécution asynchrone   && exécution de la partie droite conditionnée par un code de retour nul de ce qui précède; de priorité

| tube

plus forte que & et ; || exécution de la suite conditionnée par un code de retour non nul de ce qui précède; priorité plus forte que &&

5. Expliquez, en donnant des exemples adéquats en shell, ce qu’est une redirection d’entrée/sortie standard.

Par défaut un processus lit à partir du standard input et écrit dans le standard output et écrit ses erreurs sur la sortie d’erreur. Pour devier l’entrée/sortie on utilise la redirection :

ls > out.txt

2>erreur

Lister le contenu du répertoire courant dans le fichier out.txt

cat <input.txt >output.txt

Lit à partir de input.txt et écrit dans output.txt

6. Expliquez le rôle d’un tube entre deux commandes. Donnez un exemple d’utilisation de ce tube, puis

son équivalent en n’utilisant que des redirections.

Les tubes sont utilisés pour relier 2 commandes entre elles. La sortie standard de la commande `a gauche du symbole sera utilisée comme entrée standard de la commande de droite.

who|wc –l

who>temp ;wc –l <temp ;rm temp

7. Quelle est la différence entre "Multiprogrammation" et "Multitâches". Quelle est la motivation pour le

développement de ces 2 aspects?

La multiprogrammation est le fait qu’on peut lacer une application alors qu’une autre est en attente. L’un après l’autre

Un système multitaches permet d’exécuter plusieurs applications d’une manière pseudo-parallèle (Partage du microporcesseur sur les différents processus). simultanément

La motivation est l’utilisation optimale des ressources et en particulier du microprocesseur.

8. Expliquez comment sous Bourne shell, il est possible d’enrichir son environnement et comment on peut

transmettre des variables d’environnement entre des appels de shell.

Publicité

En agissant sur les variables prédéfinies (HOME, PATH, PS1, …) et en définissant d’autres variables dont les valeurs peuvent être exporter aux autres processus en utilisant la commande ‘export’.

Exercice 1— (5 points ): L’ensemble des questions qui suivent supposent la séquence suivante d’une session de travail.

bin public oms

wc grep who

$ ls - l /usr drwxr-xr-x root drwxr-xr-x public drwxr-xr-x oms $ pwd /usr/bin $ ls -l -rwxr-xr-x root -rwxr-xr-x root -rwxr-xr-x root $ cd ../public ; ls drwxr-xr-x public drwxr-xr-x pubic $ ls prog getprnt add.c makset.c temps cmd prio.p common temp dodash.c ex.c temp1 fileset.p temp2 $ cat prog/cmd ls *.c rm temp? ls tem* cat x* |wc -l $ cat prog/getprnt

prog doc

temp3aa

trans.c xindex.c xlate.c

ls /usr/bin > temp0 pr temp0 > /dev/lp rm temp0 $ exit

1) Construire l’arborescence du système telle qu’elle apparait dans cette session.

|--usr

|--bin

|--wc |--grep |--who

|--public

|--prog

|--add.c |--cmd |--common |--dodash.c |--ex.c |--fileext.p |--getprnt |--makset.c |--prio.p |--temp |--temp1 |--temp2 |--temp3aa |--temps |--trans.c |--xindex.c |--xlate.c

|--doc

|--oms

2) L’utilisateur « public » peut-il créer un fichier sous le répertoire /usr/bin ? Peut-il modifier le fichier

/usr/bin/grep ?

L’utilisateur public ne peut pas modifier le répertoire /usr/bin . Le propriétaire du répertoire est l’utilisateur root et le groupe de root ainsi que les autres utilisateurs n’ont pas le droit d’écriture sur le répertoire.

L’utilisateur public ne peut pas modifier le fichier /usr/bin/grep . Le propriétaire du fichier est l’utilisateur root et le groupe de root ainsi que les autres utilisateurs n’ont pas le droit d’écriture sur le fichier.

3) Quel est l’effet des commandes suivantes exécutées séquentiellement si on est l’utilisateur « public » et l’on se trouve dans le répertoire prog ?

Publicité

chmod +x cmd

bash cmd & ./cmd

L’utilisateur public reçoit le droit d’exécution de la commande cmd. La commande cmd s’exécute 2 fois en parallèle. Chaque exécution aura pour effet de :

 Lister les fichiers add.c, dodash.c, ex.c, makset.c, trans.c, xindex.c, xlate.c  Suppression des fichiers temp1, temp2, temps s’ils existent toujours  Lister les fichiers temp, temp3aa  Afficher le total des nombres de ligne des fichiers xindex.c et xliate.c

3) Peut-on réécrire autrement le script /usr/public/prog/getprnt dont les commandes ne forment qu’un tout

de point de vue sémantique ? Si oui, comment ?

ls /usr/bin | pr > /dev/lp

5) L’utilisateur « oms » veut créer un fichier .profile dans lequel il y a :

- une définition de l’émulation de son terminal en mode xterm, - une description du chemin de recherche aux fichiers exécutables, - une demande d’affichage la date du jour, - une demande de la liste des utilisateurs connectés à la machine. Quelles sont les commandes contenues dans ce fichier ?

TERM=xterm export TERM PATH=/usr/bin:/usr/public/prog export PATH date who

Exercice 2— (5 points): Ecrire un script en shell qui permet de traiter ses arguments d’appel qui sont supposés n’être que des fichiers ordinaires. Le script doit considérer tous les cas d'exceptions (au moins un argument d'appel, les arguments sont des fichiers ordinaires) pour retourner les bons messages d’erreur. Il doit par ailleurs afficher le nombre de lignes que contient chacun des fichiers traités ainsi que le nombre total de lignes trouvé pour l'ensemble de ces fichiers. #! /bin/sh if [ $# -eq 0 ] then

echo "il faut donner au moins un fichier comme paramètre"

else

totalligne=0 for file in $* do

if [ -f $file ] then

nrligne=`wc -l $file | cut -d' ' -f1` totalligne=`expr $totalligne + $nrligne` echo "le fichier $file contient $nrligne ligne(s) "

echo "le paramètre $file n'est pas un fichier ordinaire"

else

fi

done echo "Le total de nombre de ligne est $totalligne"

fi