Université des Sciences Techniques Houari Boumediene
Faculté du génie Electrique
Département d’électronique
Module: Système Linux pour l’embarqué
Solution Pré-examen N°2
Exercice N°1 : (14 points)
1. Donner la syntaxe en entier de la commande Linux a exécuter pour avoir le contenu (liste de
noms des fichiers et dossiers) du répertoire de travail actuel.
ls
2. Donner la syntaxe en entier de la commande Linux pour créer un nouveau dossier à
l’intérieur du répertoire de travail actuel.
mkdir nom_dossier
3. On se propose de changer le répertoire de travail actuel vers le répertoire
‘/home/User/Documents’ à partir de n’importe lequel des répertoires de travail.
cd /home/User/Documents
4. Donner la syntaxe en entier de la commande Linux avec arguments à exécuter pour avoir le
contenu (liste de noms des fichiers et dossiers) du répertoire de travail actuel, avec tous les
détails concernant les autorisations d’accès.
ls –l –a
5. Donner la commande qui permet d’afficher le tampon des messages kernel sous Linux.
dmesg
6. Donner la syntaxe en entier de la commande Linux pour afficher uniquement les 3 dernières
lignes du flux des messages affiches au niveau du terminal.
tail –n 3
7. Quel est le rôle de la fonction getpid()?
Obtenir le PID du processus en cours d’execution
8. Quelle est la différence entre la fonction getpid() et getppid()?
getpid permet d’obtenir le PID du processus actuellement en cours d’exécution, alors
que le getppid permet d’obtenir le PID du processus père au processus qui est
actuellement en cours d’execution.
Veuillez choisir la réponse appropriée, alors que plusieurs réponses sont parfois possible pour
Dr. Mohamed Amine BELKADI Année universitaire 2023/2024
certaines questions (Indiquer juste le numéro de la réponse et les lettres correspondantes Ex : 6.c,
e/7.g) :
9. Peut-on modifier le contenu du noyau Windows?
Oui.
Non.
[Link]érences entre processus légers et lourds :
Le fork fait une copie de toutes variables du processus père.
On doit impérativement créer une nouvelle fonction pour créer un nouveau
processus lourd.
[Link] processus légers est créé par l’appel de la fonction fork() :
Oui.
Non.
[Link] ressources sous Linux sont accessibles à travers des fichiers.
Vrai.
Faux.
[Link] commande make permet :
Changer de répertoire de travail.
Permet de faire une allocation mémoire.
Permet la compilation un projet sous Linux.
Définît la fonction qui est appelée à la fin de l’exécution d’un module kernel.
[Link] fonction open :
Permet de lire un fichier.
Permet de se connecter à un pilote.
Libère de la mémoire.
Permet de créer des tableaux dynamiques.
Permet de créer des tableaux statiques.
Permet une réallocation mémoire.
Est appelée cote kernel a la connexion d’un utilisateur au pilote.
Exercice N°2 : (4 points)
Dr. Mohamed Amine BELKADI Année universitaire 2023/2024
#include <stdio.h>
#include <stdlib.h>
#define N 4
int size;
float *tab;
float add[4] = {2.5, 6.1, 778.63, 9.6};
void ajouter(float a) {
++size;
tab = (float *) realloc(tab, size * sizeof(float));
tab[size - 1] = a;
}
void display() {
for(int i = 0; i < size; i++)
printf("%f\n", tab[i]);
}
int main()
{
size = 0;
tab = (float *) malloc(sizeof(float));
for(int i = 0; i < N; i++)
ajouter(add[i]);
printf("Elements rajoutés\n");
display();
return 0;
}
Dr. Mohamed Amine BELKADI Année universitaire 2023/2024
Exercice N°3 : (2 points)
Père Père
i=0 i=1
fork() fork()
printf("Processus pere\n "); printf("Processus pere\n ");
Fils1
Fils2
i=1
printf("Processus fils, process_id(pid)
fork()
= %d\n",getpid());
printf("Processus fils, process_id(pid)
= %d\n",getpid());
Fils3
printf("Processus issue d_un processus fils!, process_id(pid) = %d, pere id = %d
\n",getpid(),getppid());
Dr. Mohamed Amine BELKADI Année universitaire 2023/2024