Un processus peut être subdivisé en plusieurs threads, par exemple l'un dédié à l'interaction avec les usagers, l'autre dédié à traiter des données
Un thread possède sa pile et un espace privé pour ses variables locales.
Les différents threads d'un processus partagent l'espace adressable et les ressources d'un processus. Lorsqu'un thread modifie une variable (non locale), tous les autres threads voient la modification. Un fichier ouvert par un thread est accessible aux autres threads (du même processus).
[...] S'il n'a pas fini : le processus passe en fin de liste et au suivant ! Problème = réglage du quantum : quantum trop petit / commutation temps de passage d'un processus à l'autre) : le processeur passe son temps à commuter Ordonnancement circulaire (tourniquet) Problème = réglage du quantum : quantum trop grand : augmentation du temps de réponse d'une commande (même simple) Ordonnancement avec priorité Inconvénient du tourniquet = processus de même priorité Ordonnancement avec priorité : plusieurs files d'attente plus ou moins prioritaires la priorité d'un processus décroît au cours du temps pour ne pas bloquer les autres files d'attente Chaque processus est assigné à une file lors de sa création Variante : migration d'un processus d'une file vers une autre Ordonnancement avec priorité La file de priorité maximale traitée en premier Quand une file est vide, on traite la file de priorité inférieure Problème : il faut revoir les priorités sinon famine dans les priorités basses Ordonnancement «plus court d'abord» Les algorithmes précédents marchent bien pour les processus interactifs. [...]
[...] Aussi on met dans cette pile les variables locales de la procédure qu'on quitte, les paramètres, etc., pour les retrouver au retour Donc il y a normalement une pile d'adresses de retour après interruption et une pile d'adresses de retour après appel de procédure Ces deux piles fonctionnent de façon semblable, mais sont indépendantes Les informations relatives à ces piles (base, pointeur ) doivent aussi être sauvegardées au moment de la commutation de contexte Files d'attente Les ressources d 'ordinateur sont souvent limitées par rapport aux processus qui en demandent Chaque ressource a sa propre file de processus en attente À un moment donné, un processus ne peut se trouver que dans une seule des différentes files du SE En changeant d'état, les processus se déplacent d 'une file à l`autre File prêt: les processus en état prêt=ready Files associés à chaque unité E/S Ordonnancement des processus Plusieurs processus sont prêts à être exécutés Le SE doit faire un choix . [...]
[...] Besoin d'instruction à plus haut niveau utilisation d'instructions puissantes, qui sont implantées par des appels au SE (system calls) Sémaphores Un sémaphore S est un entier qui, sauf pour l'Initialisation, est accessible seulement par ces 2 opérations atomiques : wait(S) signale aux threads en attente qu'une ressource vient d'être occupée signal(S) libère une ressource et signale aux threads en attente qu'une ressource s'est libérée Wait et Signal sont atomiques. [...]
[...] Types de solutions Solutions par logiciel des algorithmes dont la validité ne s'appuie pas sur l'existence d`instruction spéciales(algorithme de Peterson,algotithme de Dekker) À fin que des threads avec des variables partagées puissent réussir, il est nécessaire que tous les threads impliqués utilisent le même algorithme de coordination Un protocole commun Types de solutions Solutions fournies pas le SE procure certains appels du système au programmeur, et se base sur l 'existence d'instructions atomiques, qui fonctionnent comme SCs de base Toutes les solutions se basent sur l'atomicité de l'accès à la mémoire centrale: une adresse de mémoire ne peut être affectée que par une instruction à la fois, donc par un thread à la fois. Solutions matérielles: désactivation des interruptions Critique des solutions par logiciel Difficiles à programmer! [...]
[...] (Threads &)Processus Sommaire Qu est ce qu'un thread? Pourquoi les threads? Les États d'un processus Sauvegarde d'informations processus Ordonnancement des processus Processus coopérants Synchronisation de Processus Le problème de la section critique Processus à un ou à plusieurs threads Le processus MS-Word implique plusieurs threads: Interaction avec le clavier Rangement de caractères sur la page Sauvegarde régulière du travail fait Contrôle orthographe Etc. [...]
Source aux normes APA
Pour votre bibliographieLecture en ligne
avec notre liseuse dédiée !Contenu vérifié
par notre comité de lecture