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”
Qu’est-ce qu’une race condition?
C’est quand plusieurs opérations tentent d’accéder ou de modifier une même ressource partagée en même temps.
Qu’est ce que le CPU Time?
C’est a durée pendant laquelle le processeur est activement engagé à exécuter les instructions d’un programme.
Qu’est-ce que Real Time?
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.
Pourquoi le CPU Time peut être plus long que le temps réel?
à faire
Qu’est-ce que le Système Time?
Temps passé par le CPU à exécuter des tâches du système d’exploitation pour le compte d’un programme
Qu’est-ce que le User Time?
Mesure le temps durant lequel le CPU exécute le code dans l’espace utilisateur du programme,
Qu’est-ce qu’un Appel Système?
- 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.
Qu’est-ce qui accompagne l’appel du système?
Implique un changement de mode du processeur du mode utilisateur au mode noyau.
Quelle est l’utilité de comparer le System Time et le User Time?
- Permet d’identifier les goulots d’étranglement liés aux appels de système.
- Permet d’optimiser la performance d’une application
Qu’est ce qu’un Fork?
C’est un appel système qui crée un nouveau processus en duplicant le processus appelant.
Pourquoi les Forks sont utilisé?
C’est utilisé dans les serveurs Web pour isoler et gérer les requêtes clients.
Qu’est-ce que le type de fichier spéciaux UNIX “Char par Char”?
Il gère les données caractères par caractère.
Exemple de fichier char par char.
Utilisé pour les terminaux et pour les ports séries.
Qu’est-ce que le type de fichier spéciaux UNIX “Bloc par Bloc”?
Gère les données par bloc de taille fixe, principalement pour le stockage.
Exemple de fichier bloc par bloc.
les disques dur et les partitions de disque.
Qu’est-ce qu’un file descriptor?
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.
Que permet un file descriptor?
Il permet à un programme de réaliser des opérations sur le fichier à l’aide de cet identifiant. (fichier, socket,pipe).
Que représente l’identifiant 0?
Standart Input (stdin)
L’identifiant 0 est utilisé pour quoi?
Il est utilisé pour lire les entrées donner au processus. Typiquement associé au clavier.
Que représente l’identifiant 1?
Standard Output (stdout)
L’identifiant 1 est utilisé pour quoi?
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
Que représente l’identifiant 2?
Standard Output(Stderr)
L’identifiant 2 est utilisé pour quoi?
Il est utilisé pour écrire les messages d’erreurs du processus. Peut être rediriger pour séparer les erreurs des autres sorties.
Quelles sont les mémoires hierarchique?
- Registre
- Cache
- RAM
- HDD
Qu’est-ce que la mémoire virtuelle?
Simule un espace mémoire plus grand que la mémoire physique en utilisant un stockage secondaire.
Qu’est-ce que la traduction d’addresses?
Elle convertit les addresses virtuelles en addressage physique.
Que permet la traduction d’addresse?
Permet de fonctionner avec un espace mémoire isolé et optimisé, malgré la mémoire physique limité.
Quelle est le matériel pour la traduction d’addresses?
Ont a besoin du MMU (Memory Management Unit)
Qu’est-ce qu’un Segmentation Fault?
C’est quand un programme accède à une mémoire non autorisé soit lire ou écrire.
Qu’est-ce que créer des Segmentations Fault?
Ex:
- Un pointeur nul
- Un out of bound
- Essayer d’accèder à un espace dont on a pas la permission
Est-ce qu’un processus peut accéder à plus d’un espace mémoire?
oui
Comment un processus peut accéder à plus d’un espace mémoire?
- Mémoire partager
- Mappage de fichier en mémoire
Qu’est-ce que le multitâches?
Le multitâches est la capacité d’un système d’exploitation à exécuter et gérer simultanément plusieurs tâches ou processus.
Que fait la commande cat dans linux?
Elle lit, concatène, et affiche le contenu d’un ou plusieurs fichiers sur la sortie standard.
Qu’est-ce qu’un page fault?
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)
Qu’est-ce qu’un cache miss?
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