Concepts des SE : Concurrence, Synchronisation et Ordonnancement
Classé dans Informatique
Écrit le en
français avec une taille de 7,02 KB
I. Concurrence et Synchronisation
1. Définir l'application concurrente et son utilisation
Une application concurrente est structurée de telle sorte que les différentes parties du code peuvent s'exécuter en même temps (ou de manière entrelacée). (L'exemple d'utilisation n'est pas fourni dans le texte original.)
3. Qu'est-ce que l'exclusion mutuelle et sa mise en œuvre ?
L'exclusion mutuelle vise à éviter que deux ou plusieurs processus n'accèdent à la même ressource critique en même temps.
6. Problème de la désactivation des interruptions pour l'exclusion mutuelle
Cette solution, bien que simple, a des limites. Premièrement, la multiprogrammation peut être sérieusement compromise, puisque la concurrence entre les processus est basée sur l'utilisation des interruptions.
7. Définition et problème de l'attente active
Dans l'attente active, chaque fois qu'un processus ne peut pas entrer dans sa région critique (car un autre processus accède déjà à la ressource), le processus reste dans une boucle en testant une condition, jusqu'à ce qu'il soit autorisé à accéder.
9. Les sémaphores : définition et exemples d'utilisation
Un sémaphore est une variable entière, non négative, qui ne peut être manipulée que par deux opérations atomiques : DOWN (ou P) et UP (ou V). (Les exemples d'utilisation demandés ne sont pas fournis dans le texte original.)
11. Les moniteurs : définition et exemples d'utilisation
Les moniteurs sont des mécanismes de synchronisation de haut niveau qui simplifient le développement d'applications concurrentes. (Les exemples d'utilisation demandés ne sont pas fournis dans le texte original.)
12. Avantage et mise en œuvre de la communication asynchrone
L'avantage de ce mécanisme est d'accroître l'efficacité des applications concurrentes. Sa mise en œuvre nécessite :
- Des zones tampons (buffers) pour stocker les messages.
- Des mécanismes de synchronisation permettant aux processus de déterminer si un message a été envoyé ou reçu.
13. Interblocage (Impasse) : conditions et solutions
Définition de l'interblocage
L'interblocage (ou impasse) est une situation dans laquelle un processus attend une ressource qui ne sera jamais disponible ou un événement qui ne se produira pas.
Conditions nécessaires à l'interblocage
Quatre conditions sont nécessaires simultanément pour l'apparition d'une situation de blocage :
- Exclusion mutuelle : Chaque ressource ne peut être allouée qu'à un seul processus à la fois.
- Maintien et attente (Hold and Wait) : Un processus, en plus des ressources déjà allouées, attend d'autres ressources.
- Non-préemption : Une ressource ne peut être retirée d'un processus en cours d'utilisation simplement parce qu'un autre processus la demande.
- Attente circulaire : Un processus attend une ressource qu'un autre processus détient, et vice versa (cycle d'attente).
Solutions
Pour éviter l'interblocage, il faut veiller à ce qu'une des quatre conditions nécessaires à son existence ne soit jamais satisfaite.
II. Ordonnancement et Planification
1. Définition de la politique d'ordonnancement
Une politique d'ordonnancement se compose de critères pour déterminer quel processus à l'état « prêt » sera choisi pour utiliser le processeur.
2. Fonctions de l'ordonnanceur et du répartiteur
- L'ordonnanceur (Scheduler) : Routine du système d'exploitation dont la fonction principale est de mettre en œuvre les critères de la politique d'ordonnancement.
- Le répartiteur (Dispatcher) : Responsable de la commutation de contexte du processus après que l'ordonnanceur a déterminé quel processus doit utiliser le processeur.
3. Principaux critères d'une politique d'ordonnancement
Les principaux critères sont :
- L'utilisation du processeur
- Le débit
- Le temps CPU
- Le temps d'attente
- Le temps de rotation
- Le temps de réponse
4. Différences entre les temps d'ordonnancement
- Temps CPU (Temps de traitement) : Temps pendant lequel un processus est en cours d'exécution sur le processeur.
- Temps d'attente : Temps total que le processus passe dans la file d'attente des processus prêts, en attente d'être exécuté.
- Temps de rotation (Délai d'exécution) : Temps total qu'il faut à un processus, de sa création jusqu'à son terme, en tenant compte des temps d'attente (allocation de mémoire, file d'attente, I/O) et du temps CPU.
- Temps de réponse : Temps écoulé entre une demande au système ou à l'application et le moment où la réponse est affichée.
5. Ordonnancement préemptif vs non préemptif
- Ordonnancement préemptif : Le système d'exploitation peut interrompre un processus en cours et le déplacer vers l'état « prêt », afin d'attribuer le CPU à un autre processus.
- Ordonnancement non préemptif : Lorsqu'un processus est en cours d'exécution, aucun événement extérieur ne peut provoquer la perte de l'utilisation du processeur. Le processus quitte l'état d'exécution uniquement s'il termine ses instructions ou s'il passe à l'état d'attente.
6. Différence entre FIFO et Ordonnancement Circulaire
- FIFO (First-In, First-Out) : Ordonnancement non préemptif où le premier processus à atteindre l'état « prêt » est sélectionné pour exécution.
- Ordonnancement Circulaire (Round Robin) : Ordonnancement préemptif, spécialement conçu pour les systèmes à temps partagé.
8. Préemption par temps vs préemption par priorité
- Préemption par temps : Le système d'exploitation interrompt le processus en cours d'exécution suite à l'expiration de sa tranche de temps (quantum) et le remplace par un autre processus.
- Préemption par priorité : Le système d'exploitation interrompt le processus en cours d'exécution lorsqu'un processus de plus grande priorité entre dans l'état « prêt ».
11. Files d'attente multiples avec rétroaction : processus favorisés
Les processus liés aux I/O sont favorisés dans ce type de planification.
Justification
La probabilité qu'un processus lié aux I/O subisse une longue préemption est faible. Par conséquent, ces processus ont tendance à conserver une priorité élevée dans les files d'attente, tandis que les processus liés au CPU (qui utilisent plus de temps processeur) ont tendance à se positionner dans les files d'attente de priorité inférieure.