APP1:Système d'exploitation Flashcards

1
Q

Qu’est-ce qu’un processus?

A

C’est un programme en cours d’exécution

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Que contient un processus?

A
  • Mémoire
  • PID
  • Statue
  • User ID
  • % d’occupation CPU
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Qu’est-ce qu’un Thread?

A

C’est l’unité de base d’exécution d’un processus.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Que partage un thread et un processus?

A

La même mémoire et les ressources du processus, mais s’exécute indépendament et en parallèle avec d’autre fils.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Processus vs Thread relation

A

Un processus peut contenir plusieurs processus, mais pas l’inverse.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Est-ce possible d’avoir plus de fil que de coeur?

A

Oui cela ce fait en faisant du multitâche.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Qu’est-ce que Context Swtiching?

A

C’est le processus quand un processus passe d’un fil à un autres.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Effet du Context Switching?

A

(-) Affecte la performance
(-) Augmente la latence

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Caractéristique des Threads?

A
  • Partage la mémoire du processus
  • Facilite la communication
  • Facilite le transfert de données
  • Est Blocant
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Charactéristique d’un processus?

A
  • Propre mémoire isolé
  • Augmente la sécurité
  • Le système est plus stable
  • Est Non-Blocant
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Qu’est-ce que la programation concurante?

A
  • Permet l’exécution simultanée de plusieurs processus ou fils d’exécution
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Avantage de la programation concurante?

A
  • Améliore la réactivité
  • Améliore l’efficacité
  • Maximise l’utilisisation du CPU
  • Réduit la complexité du code
  • Permet la séparation of concern
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Qu’est-ce que la sépartion of concern?

A

Permet de séparer le programme en tâche spécifique
- Pour améliorer la modularité
- Pour améliorer la maintenance.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Exemple de la séparation of concern?

A

un serveur web:
- Un fil pour gérer les connexions
- Un fil pour gérer les requêtes

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Désavantage d’avoir trop de Thread en un seul processus?

A

Beaucoup de context switch qui fait perdre du temps d’exec.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Qu’est-ce que le Data paralelism?

A

Chaque fil ou processus traite un sous-ensemble de données.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Exemple de Data paralelism?

A

Appliquer un filtre à une image:
- Chaque Thread traite une section différente de l’image.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Qu’est-ce que le Task Paralelism?

A

Chaque Thread exécute une tâche différente?

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Exemple de Task Paralelism.

A

separation of context.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Quel est le nombre minimal de fil dans un processus?

A

Le minimum est d’un thread qui par la suite peut lancer d’autre thread.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

Erreur dans ce code en terme de prog concurante:
#include <cstdio>
#include <thread>
int result_;
void work()
{
result_ = 0;
int prod = 1;
for (int i = 2; i < 100; ++i) {
prod *= i;
}
result_ = prod;
}
void start_work()
{
std::thread t(work);
}
int main(int argc, char** argv)
{
start_work();
printf(«Produit des nombres de 1 à 99 : %d\n», result_);
return 0;
}</thread></cstdio>

A

Quand le main accède à la variable “result” , il se peut que la fonction “Work()” n’est pas fini.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

Qu’est-ce qu’une opération atomique?

A

C’est une opération qui s’effectue sans interuption.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

Qu’est-ce qu’une opération atomique permet?

A

Évite les “race condition”

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

Qu’est-ce qu’une race condition?

A

C’est quand plusieurs opérations tentent d’accéder ou de modifier une même ressource partagée en même temps.

25
Q

Qu’est ce que le CPU Time?

A

C’est a durée pendant laquelle le processeur est activement engagé à exécuter les instructions d’un programme.

26
Q

Qu’est-ce que Real Time?

A

Représente la durée totale écoulée du début à la fin de l’exécution d’un programme, incluant tous les délais d’attente et de traitement.

27
Q

Pourquoi le CPU Time peut être plus long que le temps réel?

A

à faire

28
Q

Qu’est-ce que le Système Time?

A

Temps passé par le CPU à exécuter des tâches du système d’exploitation pour le compte d’un programme

29
Q

Qu’est-ce que le User Time?

A

Mesure le temps durant lequel le CPU exécute le code dans l’espace utilisateur du programme,

30
Q

Qu’est-ce qu’un Appel Système?

A
  • Permet à un programme d’exécuter une opération dans l’espace noyau du système d’exploitation
  • Demandant ainsi au système de fournir des services comme l’accès aux fichiers, la gestion de la mémoire ou la communication réseau.
31
Q

Qu’est-ce qui accompagne l’appel du système?

A

Implique un changement de mode du processeur du mode utilisateur au mode noyau.

32
Q

Quelle est l’utilité de comparer le System Time et le User Time?

A
  • Permet d’identifier les goulots d’étranglement liés aux appels de système.
  • Permet d’optimiser la performance d’une application
32
Q

Qu’est ce qu’un Fork?

A

C’est un appel système qui crée un nouveau processus en duplicant le processus appelant.

33
Q

Pourquoi les Forks sont utilisé?

A

C’est utilisé dans les serveurs Web pour isoler et gérer les requêtes clients.

34
Q

Qu’est-ce que le type de fichier spéciaux UNIX “Char par Char”?

A

Il gère les données caractères par caractère.

35
Q

Exemple de fichier char par char.

A

Utilisé pour les terminaux et pour les ports séries.

36
Q

Qu’est-ce que le type de fichier spéciaux UNIX “Bloc par Bloc”?

A

Gère les données par bloc de taille fixe, principalement pour le stockage.

37
Q

Exemple de fichier bloc par bloc.

A

les disques dur et les partitions de disque.

38
Q

Qu’est-ce qu’un file descriptor?

A

C’est un identifiant sous forme de petit entier utilisé par les systèmes d’exploitation UNIX pour représenté un fichier d’entrée/sortie.

39
Q

Que permet un file descriptor?

A

Il permet à un programme de réaliser des opérations sur le fichier à l’aide de cet identifiant. (fichier, socket,pipe).

40
Q

Que représente l’identifiant 0?

A

Standart Input (stdin)

41
Q

L’identifiant 0 est utilisé pour quoi?

A

Il est utilisé pour lire les entrées donner au processus. Typiquement associé au clavier.

42
Q

Que représente l’identifiant 1?

A

Standard Output (stdout)

43
Q

L’identifiant 1 est utilisé pour quoi?

A

Il est utilisé pour écrire les sorties du processus. Il est conecté à la console, mais peut être refirigé vers un fichier ou un autres périphérique

44
Q

Que représente l’identifiant 2?

A

Standard Output(Stderr)

45
Q

L’identifiant 2 est utilisé pour quoi?

A

Il est utilisé pour écrire les messages d’erreurs du processus. Peut être rediriger pour séparer les erreurs des autres sorties.

46
Q

Quelles sont les mémoires hierarchique?

A
  • Registre
  • Cache
  • RAM
  • HDD
47
Q

Qu’est-ce que la mémoire virtuelle?

A

Simule un espace mémoire plus grand que la mémoire physique en utilisant un stockage secondaire.

48
Q

Qu’est-ce que la traduction d’addresses?

A

Elle convertit les addresses virtuelles en addressage physique.

49
Q

Que permet la traduction d’addresse?

A

Permet de fonctionner avec un espace mémoire isolé et optimisé, malgré la mémoire physique limité.

50
Q

Quelle est le matériel pour la traduction d’addresses?

A

Ont a besoin du MMU (Memory Management Unit)

51
Q

Qu’est-ce qu’un Segmentation Fault?

A

C’est quand un programme accède à une mémoire non autorisé soit lire ou écrire.

52
Q

Qu’est-ce que créer des Segmentations Fault?

A

Ex:
- Un pointeur nul
- Un out of bound
- Essayer d’accèder à un espace dont on a pas la permission

53
Q

Est-ce qu’un processus peut accéder à plus d’un espace mémoire?

A

oui

54
Q

Comment un processus peut accéder à plus d’un espace mémoire?

A
  • Mémoire partager
  • Mappage de fichier en mémoire
55
Q

Qu’est-ce que le multitâches?

A

Le multitâches est la capacité d’un système d’exploitation à exécuter et gérer simultanément plusieurs tâches ou processus.

56
Q

Que fait la commande cat dans linux?

A

Elle lit, concatène, et affiche le contenu d’un ou plusieurs fichiers sur la sortie standard.

57
Q

Qu’est-ce qu’un page fault?

A

Se produit lorsqu’un programme tente d’accéder à une page de mémoire qui n’est pas actuellement présente en mémoire vive (RAM), nécessitant que le système d’exploitation charge cette page depuis le stockage secondaire (comme un disque dur ou un SSD)

58
Q

Qu’est-ce qu’un cache miss?

A

Situation où les données demandées ne sont pas trouvées dans le cache, forçant le système à les récupérer d’une mémoire plus lente