APP1:Système d'exploitation Flashcards
Qu’est-ce qu’un processus?
C’est un programme en cours d’exécution
Que contient un processus?
- Mémoire
- PID
- Statue
- User ID
- % d’occupation CPU
Qu’est-ce qu’un Thread?
C’est l’unité de base d’exécution d’un processus.
Que partage un thread et un processus?
La même mémoire et les ressources du processus, mais s’exécute indépendament et en parallèle avec d’autre fils.
Processus vs Thread relation
Un processus peut contenir plusieurs processus, mais pas l’inverse.
Est-ce possible d’avoir plus de fil que de coeur?
Oui cela ce fait en faisant du multitâche.
Qu’est-ce que Context Swtiching?
C’est le processus quand un processus passe d’un fil à un autres.
Effet du Context Switching?
(-) Affecte la performance
(-) Augmente la latence
Caractéristique des Threads?
- Partage la mémoire du processus
- Facilite la communication
- Facilite le transfert de données
- Est Blocant
Charactéristique d’un processus?
- Propre mémoire isolé
- Augmente la sécurité
- Le système est plus stable
- Est Non-Blocant
Qu’est-ce que la programation concurante?
- Permet l’exécution simultanée de plusieurs processus ou fils d’exécution
Avantage de la programation concurante?
- 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
Qu’est-ce que la sépartion of concern?
Permet de séparer le programme en tâche spécifique
- Pour améliorer la modularité
- Pour améliorer la maintenance.
Exemple de la séparation of concern?
un serveur web:
- Un fil pour gérer les connexions
- Un fil pour gérer les requêtes
Désavantage d’avoir trop de Thread en un seul processus?
Beaucoup de context switch qui fait perdre du temps d’exec.
Qu’est-ce que le Data paralelism?
Chaque fil ou processus traite un sous-ensemble de données.
Exemple de Data paralelism?
Appliquer un filtre à une image:
- Chaque Thread traite une section différente de l’image.
Qu’est-ce que le Task Paralelism?
Chaque Thread exécute une tâche différente?
Exemple de Task Paralelism.
separation of context.
Quel est le nombre minimal de fil dans un processus?
Le minimum est d’un thread qui par la suite peut lancer d’autre thread.
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>
Quand le main accède à la variable “result” , il se peut que la fonction “Work()” n’est pas fini.
Qu’est-ce qu’une opération atomique?
C’est une opération qui s’effectue sans interuption.
Qu’est-ce qu’une opération atomique permet?
Évite les “race condition”