Vous êtes sur la page 1sur 4

Année universitaire 2018/2019

Site :  Luminy  St-Charles  St-Jérôme  Cht-Gombert  Aix-Montperrin  Aubagne-SATIS


Sujet de :  1er semestre  2 ème semestre  Session 2 Durée de l’épreuve : 2h
Examen de : L1 Nom du diplôme : Portail Descartes
Code du module : SPO2U01 Libellé du module : Fonctionnement des ordinateurs
Calculatrices autorisées : NON Documents autorisés : NON

Exercice 1 : Utilisation d’Unix (7 points)

1.1 On se trouve dans un répertoire ne contenant que les fichiers quat.txt et rain.txt. Le fichier quat.txt
contient les 2 lignes de texte suivantes :

Fort
Belle

et le fichier rain.txt contient les 2 lignes de texte suivantes :

Elle
Dort

Indiquez les effets du lancement des commandes Unix suivantes à partir d’un shell. Signalez les erreurs
éventuelles. Chaque question est indépendante : on fera comme si la commande précédente n’avait pas été
exécutée.
a) $ cat quat.txt
affiche le texte contenu dans quat.txt (Fort et Belle sur deux lignes)
b) $ cat < rain.txt
affiche le texte contenu dans rain.txt
c) $ cat *a*.txt
affiche le texte contenu dans quat.txt et rain.txt
d) $ cat quat.txt > rain.txt
remplace le texte contenu dans rain.txt par celui contenu dans quat.txt (n’affiche rien)
e) $ cat quat.txt >> rain.txt
ajoute le texte contenu dans quat.txt après celui contenu dans rain.txt (n’affiche rien)
f) $ cat quat.txt < rain.txt
affiche le texte contenu dans quat.txt (ne lit pas le contenu de rain.txt)
g) $ cat > rain.txt
remplace le texte contenu dans rain.txt par le texte entré au clavier
h) $ cat
affiche le texte entré au clavier, ligne après ligne
i) $ cat rain.txt > rain.txt
vide le contenu de raint.txt : la redirection de la sortie vers rain.txt met son contenu à vide, puis
la commande cat rain.txt est exécutée, donc le texte vide de rain.txt est ”copié” dans rain.txt)
j) $ cat rain.txt quat.txt | grep or
affiche Fort et Dort (sur deux lignes)
k) $ echo quat.txt
affiche le texte quat.txt
l) $ ls quat.txt
affiche (le nom du fichier) : quat.txt
m) $ ls *
affiche : quat.txt rain.txt
n) $ ls rain
affiche que le fichier n’est pas trouvé
o) $ ls > abc
crée un fichier abc dont le contenu est le texte quat.txt rain.txt
p) $ ls abc > abc
crée un fichier abc dont le contenu est le texte abc : la redirection de la sortie vers abc crée ce
fichier, puis la commande ls abc est exécutée, le ficher abc existe, donc le texte abc est ”copié”
dans abc)
q) $ head -n1 *.txt
affiche Fort et Elle (sur deux lignes)
r) $ cat *.txt | head -n1
affiche Fort
s) $ head -n2 >> rain.txt
lit deux lignes de texte au clavier et les ajoute à la fin du fichier rain.txt
t) $ grep s
lit un texte au cliver et affiche celles qui contiennent un s, ligne après ligne

1.2 On se trouve dans un répertoire contenant uniquement le fichier nommé gentil et un répertoire nommé
Prison, qui contient lui-même le seul fichier mechant. Indiquer la ou les commandes qui :

1) échangent les emplacements des fichiers gentil et mechant.


$ mv gentil Prison ; mv Prison/mechant .
2) échangent le contenu des fichiers gentil et mechant.
$ mv gentil copie ; cat Prison/mechant > gentil ; cat copie > Prison/mechant ; rm copie
3) suppriment tous les fichiers et répertoires du répertoire courant.
$ rm gentil Prison/mechant ; rmdir Prison
4) ajoutent le contenu de mechant à la fin de mechant afin qu’il contienne deux fois de suite ce qu’il contenait
initialement.
$ cp Prison/mechant copie ; cat copie >> Prison/mechant ; rm copie

Exercice 2 : Représentation des nombres et codage en mémoire (6 points)


2.1 Donnez la représentation hexadécimale et la représentation décimale du nombre en représentation binaire
1011110.
en hexadécimal : 5E, en décimal : 94
2.2 On considère la représentation de nombre sur un seul octet. Un tel octet contient FF en représentation
hexadécimale. En supposant que c’est un entier naturel qui est codé, donnez sa représentation décimale. En
supposant que c’est un entier relatif qui est codé par complément à deux, donnez sa représentation décimale.

entier naturel : 255, entier relatif : -1


Maintenant, on considère la représentation de nombre sur deux octets. Deux tels octets contiennent 00FF en
représentation hexadécimale. En supposant que c’est un entier naturel qui est codé, donnez sa représentation
décimale. En supposant que c’est un entier relatif qui est codé par complément à deux, donnez sa représentation
décimale.
entier naturel : 255, entier relatif : 255
2.3 Un tirage du loto consiste en un ensemble de 6 boules (différentes) pouvant avoir des numéros de 1 à 49.
Combien faut-il de bits pour représenter une boule ? À partir de là, combien faut-il de bits pour représenter un
tirage (les 6 boules) ? Combien d’octets ?
49 possibilités pour une boule donc nombre de bits : log2 (49) arrondi à l’entier supérieur : 6. Six
boules donc 6 × 6 bits pour un tirage. Nombre d’octets : 6×6 8 arrondi à l’entier supérieur : 5.
2.4 Combien faut-il de bits pour coder les tables de vérité des fonctions booléennes à n variables ? On rappelle
que seule la colonne du résultat de la fonction diffère d’une table à l’autre.
2n bits. On n’a besoin de coder que chacun des bits de la colonne résultat, qui contient 2n lignes.

Partie 3 : Circuits logiques (7 points)

Le but final de l’exercice est de construire un circuit qui simule le remplissage d’une cuve. Cette cuve se remplit
petit à petit quand un robinet est ouvert mais se vide d’un seul coup par sécurité quand elle est pleine et va
déborder. La cuve est composée de trois parties. On modélise la présence de liquide dans la partie numéro i
par la variable pi . La variable r indique si le robinet est ouvert (r = 1) ou fermé (r = 0). Quand la cuve est
vide, p1 = p2 = p3 = 0. Puis, tant que le robinet est ouvert, l’état de la cuve passe successivement par les
états p1 = 1 et p2 = p3 = 0, puis p1 = p2 = 1 et p3 = 0, puis p1 = p2 = p3 = 1, puis la cuve se vide (et on
recommence). Quand le robinet est fermé, la cuve ne change pas d’état.

Dans un premier temps, nous allons construire un circuit avec 4 bits d’entrée r, p1 , p2 et p3 et 3 bits de sortie
p01 , p02 et p03 . Ce circuit indique le prochain état de la cuve à partir de son état courant et de l’état du robinet.
On notera que toutes les combinaisons de valeurs pour les entrées pi ne correspondent pas à un état réaliste
de la cuve (ex : on ne peut pas avoir p1 = 0 si p2 = 1 ou p3 = 1). Aux huit combinaisons de valeurs d’entrée
irréalistes, on fera correspondre (arbitrairement) les sorties p01 = p02 = p03 = 1.

3.1 Ecrire la table de vérité de la fonction logique qui indique les valeurs des sorties p01 , p02 et p03 en fonction
des valeurs des entrées r, p1 , p2 et p3 .

3.2 En utilisant la méthode des tables de Karnaugh, écrire les fonctions booléennes correspondant aux valeurs
de sorties de p01 , p02 et p03 .

3.3 Dessiner le circuit permettant d’obtenir p01 à partir de r, p1 , p2 et p3 . Pour ceci, on n’a le droit d’utiliser
que la porte logique unaire NON et les portes logiques OU et ET. On ne demande pas de dessiner les circuits
correspondant à p02 et p03 .
3.4 Maintenant, on veut réaliser le circuit de simulation de remplissage de cuve. Il s’agit d’un circuit à mémoire
qui a une entrée nommée CLR, une entrée d’horloge nommée CK, une entrée r qui indique l’état du robinet,
et trois sorties p1 , p2 et p3 qui indiquent l’état de remplissage de la cuve avec les mêmes conventions que les
questions précédentes. Lorsque l’entrée CLR est à 0, les trois sorties sont toujours à 0. Lorsque CLR est à 1, à
chaque impulsion d’horloge le résultat en sortie indique le nouvel état de la cuve en fonction du précédent et
de l’état du robinet.
Dessiner le circuit qui est décrit ci-dessus. Pour ceci, on n’utilisera que le circuit réalisant la fonction logique
de la question 3.1, des bascules D et des portes logiques NON, OU ou ET. Dans cette question, le circuit
correspondant à la question 3.1 est considéré comme une boı̂te noire, on le dessinera comme un rectangle (à
quatre entrées et trois sorties) et on ne dessinera donc pas les portes logiques qui le composent.

Vous aimerez peut-être aussi