diff --git a/infotro/PTR/PCO.md b/infotro/PTR/PCO.md index e55594f..34c08be 100644 --- a/infotro/PTR/PCO.md +++ b/infotro/PTR/PCO.md @@ -425,8 +425,59 @@ Cette technique permet aux processus d'évoluer dans des queues en fonction du t - Si le quantum est écoulé et que la suite d’instruction processeur n’est pas terminée, le processus est placé dans la queue de priorité inférieure -Plus on descend dans les queues plus on est de priorité basse. +Plus on descend dans les queues, plus on est de priorité basse. Exemple : Plus on descend dans les queues, plus le quantum devient grand. -# Interblocage +# Interblocage (DEADLOCK) +Un processus attend indéfiniment pour accéder à une ressource bloquée. + +L'interblocage apparaît si les 4 conditions apparaissent simultanément : +1. ***L'exclusion mutuelle*** (mutual exclusion) : Une ressource au minimum n'est pas partageable. +2. ***La détention et l'attente*** (hold and wait) : Un processus qui dispose déjà d'au moins une ressource et qui attend l'acquisistion + d'une nouvelle ressource déjà utilisée par un autre processus. +3. ***Pas de réquisition*** (no preemption) : Les ressources obtenues par un processus ne peuvent pas lui être retirées contre son gré +4. ***L'attente circulaire*** (circulare wait) : Il doit y avoir un cycle d'au moins deux processus, chacun d'entre eux attendant + une ressource détenue par un autre processus du cycle. + +Les interblocages peuvent être décrits plus précisément en utilsant un graphe appelé **graphe +d'allocation des ressources** (ressource allocation graph). +![interblocage.png](medias/interblocage.png) +- Si le graphe d'allocation des ressources ne contient aucun cycle $=>$ Aucun processus n'est en interblocage +- Si le graphe d'allocation des ressources contient un cycle $=>$ Un risque d'interblocage existe !! + +On peut faire une réduction de graphe pour observer l'état suivant du graphe : +- Un graphe peut être réduit par un processus Pi, si le processus n'a pas de demande de ressource en cours. +- Pour faire une réduction, on enlève toutes les allocations du processus. + +***Complètement réductible*** : si on arrive à faire des réductions successives jusqu'à ce qu'il n'y a plus de flêches +dans le graphe. + +On peut résoudre le problème d'interblocage : +- ***Prévention*** : On garantit qu'aucun interblocage ne peut se produire. + - ***Prévenir** : Empêcher une des 4 conditions de se produire + - ***Éviter** : Éviter dynamiquement en allouant les ressource avec précaution +- ***Détection ou guérison*** : Lorsqu'un interblocage est détecté, on ramène le système dans un état où les processus sont débloqués + +En cas d'interblocage, on peut utiliser deux algorithmes pour résoudre ce problème. +L'algorithme du banquier pour la prévention et ensuite un algorithme de reprise après interblocage. + +L'algorithme de reprise fait soit appel à l'aide d'un opérateur, soit par une séquence automatique +qui tue les processus impliqués dans l'interblocage, soit un processus après l'autre jusqu'à ce que l'interblocage soit résolu. +Mais la destruction de processus est complexe et dangereuse. + +## Algorithme du banquier (banker's algorithm) +Cette technique impose de connaître pour chaque processus les ressources dont il aura besoin. +- Il vérifie avant d'allouer une ressource que le graphe reste complètement réductible. +- Il alloue une ressource uniquement s'il y a plus de ressources disponibles que demandées. +- Sinon la demande de ressource est mise en attente. + + +Exemple :
+![algo_banquier1.png](medias/algo_banquier1.png) +![algo_banquier2.png](medias/algo_banquier2.png) + +Une ressource n'est attribuée que si les ressources demandées sont inférieurs aux ressources disponibles. +$$ (N)Needed < (A)Available $$ + +Si aucune rangée (processus) ne satisfait la condition, il y a interblocage. diff --git a/infotro/PTR/RealTime.md b/infotro/PTR/RealTime.md index 3cc07dc..67be57d 100644 --- a/infotro/PTR/RealTime.md +++ b/infotro/PTR/RealTime.md @@ -23,6 +23,11 @@ les quantités sont modérées, le processeur est intensément utilisé, et ces 4. Souvent utilisé dans des applications où une flexibilité est nécessaire, mais peut poser des défis dans les systèmes où la prédictibilité est cruciale. 5. La gestion de l'incertitude et l'adaptabilité aux conditions changeantes sont des caractéristiques clés des systèmes non-déterministes. +### Système temps réel +- ***Temps réel dur:*** Le systéme fait une erreur si le délai est dépassé. +- ***Temps réel souple:*** Le système accepte le dépassement du délai sans grave conséquence. +- ***Temps réel ferme:*** Le système accepte le dépassement du délai, mais le résultat n'est plus d'aucune utilité. + ### Management du temps (Timing) Le timing peut avoir principalement deux formes différentes : diff --git a/infotro/PTR/SYS.md b/infotro/PTR/SYS.md index 103f013..55a353f 100644 --- a/infotro/PTR/SYS.md +++ b/infotro/PTR/SYS.md @@ -4,7 +4,7 @@ Introduction aux systèmes d'exploitation ![operating_system.png](medias/operating_system.png) -Le système d'expoitation virtualise la partie hardward pour : +Le système d'exploitation virtualise la partie hardware pour : - Simplifie l'utilisation - Gère les ressources physiques - Processeur @@ -67,7 +67,7 @@ programme est exécuté afin d'optimiser l'utilisation du processeur. La commutation de l'exécution d'un programme à un autre est assuré par l'**ordonnanceur** (scheduler). -*Inconvénients :* Les programmes cours, sont pénalisés car leur temps d'exécution dépend aussi des autres +*Inconvénients :* Les programmes cours, sont pénalisés, car leur temps d'exécution dépend aussi des autres programmes en cours d'exécution. diff --git a/infotro/PTR/medias/algo_banquier1.png b/infotro/PTR/medias/algo_banquier1.png new file mode 100644 index 0000000..916635e Binary files /dev/null and b/infotro/PTR/medias/algo_banquier1.png differ diff --git a/infotro/PTR/medias/algo_banquier2.png b/infotro/PTR/medias/algo_banquier2.png new file mode 100644 index 0000000..a526c65 Binary files /dev/null and b/infotro/PTR/medias/algo_banquier2.png differ diff --git a/infotro/PTR/medias/interblocage.png b/infotro/PTR/medias/interblocage.png new file mode 100644 index 0000000..cc47eb4 Binary files /dev/null and b/infotro/PTR/medias/interblocage.png differ