IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Composants Discussion :

système d'exploitatiion multitâches


Sujet :

Composants

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    978
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 978
    Points : 139
    Points
    139
    Par défaut système d'exploitatiion multitâches
    Dans le cadre de ce type de système d’exploitation , le système d’exploitation alloue pendant une courte durée de temps( quelques millisecondes) le processeur aux différents programmes d’exécution( time sharing).
    Le temps alloué à chaque processus s’appelle le quantum.

    Je ne comprends pas pourquoi il est dit que le système d’exploitation alloue seulement pendant une courte durée de quelques millisecondes le processeur aux différents programmes d’exécution : pourquoi ne lui alloue t- il pas le temps necessaire à chaque programme d’execution ?

    La définition de quantum n’est elle pas le temps alloué à chaque programme actif ?Celui ci ne peut il pas être par exemple d’un quart d’heure ou plus ??

    A propos de système d’exploitation multitâches préemptif il est dit qu’il possède un programme, le scheduleur, qui se charge de partager de façon equilibrée mais autoritaire le temps d’occupation du processeur entre les différents programmes, en gérant parfois des règles de priorité.

    Mais comment prévoir combien de temps un programme va être actif ?
    Cela signifie t-il qu’il force un programme à passer la main à un autre alors que l’utilisateur en a encore besoin ?.
    J’avoue avoir besoin d’éclaircissements sur ces deux points

    Merci beaucoup encore de votre aide.


    cordialement.

    Nathalie

  2. #2
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Points : 4 846
    Points
    4 846
    Par défaut
    Citation Envoyé par harbonne Voir le message
    Dans le cadre de ce type de système d’exploitation , le système d’exploitation alloue pendant une courte durée de temps( quelques millisecondes) le processeur aux différents programmes d’exécution( time sharing).
    Le temps alloué à chaque processus s’appelle le quantum.
    En effet, classiquement c'est 10 à 20 ms sous Windows et Linux. Mais tu as oublié de préciser "multitâche préemptif", cette notion de quantum n'existe pas en dehors d'un système préemptif.

    Citation Envoyé par harbonne Voir le message
    Je ne comprends pas pourquoi il est dit que le système d’exploitation alloue seulement pendant une courte durée de quelques millisecondes le processeur aux différents programmes d’exécution : pourquoi ne lui alloue t- il pas le temps necessaire à chaque programme d’execution ?
    Réponse pourtant très simple : si le programme part en sucette et décide de faire une boucle infinie, tu fais quoi pendant ce temps ?
    Ce que tu décris, c'est peu ou prou le "multitâche coopératif", c'est à dire que les processus donnent gentiment la main aux autres quand ils ont fini... Sauf s'ils plantent !

    Citation Envoyé par harbonne Voir le message
    La définition de quantum n’est elle pas le temps alloué à chaque programme actif ?Celui ci ne peut il pas être par exemple d’un quart d’heure ou plus ??
    Le quantum est défini par l'OS lui-même : c'est le temps maximal avant que l'OS ne reprenne la main pour voir si personne d'autre n'a besoin de temps CPU... Notamment, l'OS lui-même (processus et threads kernel). Ce paramètre n'est habituellement pas réglable par l'utilisateur, sauf sur certains OS temps réel.

    Ensuite, si ton processus est le seul à bosser réellement, il récupèrera la main extrêmement vite, et aura au final presque 100% du processeur pour lui tout seul... Par tranches de 20 ms !

    Citation Envoyé par harbonne Voir le message
    A propos de système d’exploitation multitâches préemptif il est dit qu’il possède un programme, le scheduleur, qui se charge de partager de façon equilibrée mais autoritaire le temps d’occupation du processeur entre les différents programmes, en gérant parfois des règles de priorité.
    Oui, c'est le scheduler qui, justement, reprends la main à chaque fin de quantum de temps.

    A noter qu'une unité d'exécution peut ne pas terminer son quantum de temps : c'est notamment le cas dès que l'on utilise des fonctions comme "Sleep" ou des attentes bloquantes de mutex, sémaphores, etc. C'est aussi le cas lors de la plupart des appels système (et ce sont des appels quasi-constants dans un programme, il faut en être conscient !).

    Dans le cas d'un appel bloquant, le scheduler passe immédiatement la main à une autre unité d'exécution, si possible dans le même processus si le quantum de temps n'était pas terminé. Dans le cas d'un appel qui n'est pas intrinsèquement bloquant (demande d'ouverture de fichier par exemple), l'OS lance les commandes nécessaires, mais le matériel est parfois lent... Un disque dur, par exemple, va mettre entre 5 et 25 ms pour répondre à la première demande !! Et là, le scheduler entre en jeu, et va permettre à un autre processus de s'exécuter pendant ce temps mort.

    Les règles suivies par le scheduler peuvent être complexes ou extrêmement simples, tout dépend de sa nature. Classiquement, c'est du Round-Robin avec ou sans gestion des inversions de priorités (Priority Boost / Priority Inversion).

    Citation Envoyé par harbonne Voir le message
    Mais comment prévoir combien de temps un programme va être actif ?
    On ne le prévoit pas, parce que l'on s'en contrefiche à ce stade et que c'est invisible pour l'utilisateur.
    Un processus actif, c'est un processus qui existe dans la table des processus de l'OS, c'est tout. Quand l'utilisateur quitte le programme, il se termine par des commandes particulières pour informer l'OS qu'il faut le détruire (en ce sens, on peut dire que le processus se "suicide"). L'OS peut aussi détruire abruptement tout processus, simplement en retirant son entrée du scheduler et en déclarant la mémoire qu'il utilisait comme libre.

    Le système d'exploitation est LE seul vrai programme du PC : c'est lui qui lance les autres, et c'est le seul à réellement contrôler totalement l'ordinateur. Dans un OS préemptif, considère que les autres "programmes" ne font qu'évoluer dans le bac à sable que l'OS a bien voulu leur laisser ou pas.

    Quoi qu'il arrive, les drivers (notamment clavier, souris, etc.) fonctionnent de façon indépendante des autres programmes, notamment parce qu'ils fonctionnent via des interruptions matérielles. En pratique, le scheduler aussi fonctionne grâce aux interruptions, c'est grâce à ça qu'il reprend la main sur le reste.

    Donc, les caractères tapés, les déplacements de la souris, les trames réseau, les données en cours de transfert depuis le disque dur, etc. ne sont jamais perdus lors de ces commutations de contexte : c'est l'OS qui les gère, et non pas le programme au premier plan du point de vue utilisateur. C'est l'OS qui distribue tout ce qu'il faut à tout le monde, et l'OS est actif systématiquement, et est prioritaire sur tout le monde.

    Citation Envoyé par harbonne Voir le message
    Cela signifie t-il qu’il force un programme à passer la main à un autre alors que l’utilisateur en a encore besoin ?
    L'utilisateur, même sur le plus rapide et stressant jeu d'arcade possible, est une vieille tortue rhumatisante et grabataire à côté de la vitesse d'exécution du processeur... L'ordinateur passe bien plus de temps à t'attendre que le contraire !

    Quand tu dis "l'utilisateur a besoin du programme", comprends bien qu'il est en train de l'utiliser sans arrêt, c'est juste que l'ordinateur est bien plus rapide que toi. Par exemple, là, en tapant ce texte, l'ordinateur ne fait qu'attendre mes touches... Quel problème s'il vérifie les mails en même temps derrière, affiche des images et joue de la musique ? Il a le temps de tout faire en même temps, et passe même 60% de son temps à ne rien faire du tout.

    Simplement, il fait ça par petits bouts de maximum 20 ms... Tu n'as pas conscience de tout ce que peut faire un ordinateur moderne en "seulement" 20 ms !


    C'est exactement le même principe qu'au cinéma : tu ne vois pas un film comme un diaporama, n'est-ce pas ? Pourtant, c'est bien ce que c'est : 24 images fixes projetées toutes les secondes... Pour le scheduling, c'est pareil : la "finesse" de découpe du temps est en dessous du seuil de perception humaine, et tu as l'impression que tout s'exécute exactement en même temps. Le fait d'utiliser un système préemptif plutôt que coopératif permet surtout de mieux répartir la charge CPU, et de s'assurer qu'un processus planté ne mettra pas en péril l'intégralité du système, c'est tout.


    Est-ce un peu plus clair ?

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    978
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 978
    Points : 139
    Points
    139
    Par défaut os multitaches preemptif
    Bonjour et merci beaucoup de ta réponse; c'est beaucoup plus clair à présent.
    Je vais reprendre tout cela en détail et eventuellement revenir vers toi si j'ai une question.

    Merci encore beaucoup.

    Cordialement.

    Nathalie

  4. #4
    Rédacteur
    Avatar de Viduc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2009
    Messages
    1 445
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Février 2009
    Messages : 1 445
    Points : 2 778
    Points
    2 778
    Billets dans le blog
    2
    Par défaut
    oui, il faut cependant ne pas oublier que l'arriver des dual et quad core surtout dans leur versions futur modifieront surement tout ce bel ensemble enfin le principe général sera toujours le même il y a des chances (suffit de voir les supercalculateur multicoeur)...

  5. #5
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Points : 4 846
    Points
    4 846
    Par défaut
    Citation Envoyé par Viduc Voir le message
    oui, il faut cependant ne pas oublier que l'arriver des dual et quad core surtout dans leur versions futur modifieront surement tout ce bel ensemble enfin le principe général sera toujours le même il y a des chances (suffit de voir les supercalculateur multicoeur)...
    Le principe de base reste le même sur les machines multi-CPU, c'est juste un étage de plus de complexité (et de scheduling) pour gérer ça.
    Mais bon : autant comprendre d'abord le scheduling "mono-CPU" avant d'attaquer le multi-CPU, ça aide !

  6. #6
    Membre expert
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2005
    Messages
    1 473
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 473
    Points : 3 286
    Points
    3 286
    Par défaut
    Citation Envoyé par Mac LAK Voir le message
    ... Quand tu dis "l'utilisateur a besoin du programme", comprends bien qu'il est en train de l'utiliser sans arrêt, c'est juste que l'ordinateur est bien plus rapide que toi. Par exemple, là, en tapant ce texte, l'ordinateur ne fait qu'attendre mes touches... Quel problème s'il vérifie les mails en même temps derrière, affiche des images et joue de la musique ? Il a le temps de tout faire en même temps, et passe même 60% de son temps à ne rien faire du tout ...
    Tout à fait d'accord ... Et ça me fait dire que le PC moderne n'est qu'un vaste "gaspillage" de ressources ... Les ordinateurs d'autrefois, quand tout était rare et cher ( la mémoire, le processeur, etc ) étaient beaucoup plus soucieux d'une bonne utilisation de leurs ressources.

    Sur le "mainframe", dernier survivant des ces temps anciens, le processeur est beaucoup mieux utilisé, puisque partagés entre des centaines voire des milliers de processus et des centaines voire des milliers d'utilisateurs ...

  7. #7
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Points : 4 846
    Points
    4 846
    Par défaut
    Citation Envoyé par Luc Orient Voir le message
    Tout à fait d'accord ... Et ça me fait dire que le PC moderne n'est qu'un vaste "gaspillage" de ressources ... Les ordinateurs d'autrefois, quand tout était rare et cher ( la mémoire, le processeur, etc ) étaient beaucoup plus soucieux d'une bonne utilisation de leurs ressources.
    Oui, mais cela est un autre débat en fait. Je pense surtout que tu veux souligner le fait que la plupart des PC actuels sont sous-utilisés, non ?

    Et là, la réponse est "oui et non"... Sûr qu'en répondant sur un forum (même avec la musique en fond), ton PC se tourne les pouces. Au moment où je rédige ce message, malgré un client mail ouvert, un Winamp et mon navigateur (plus quelques processus en tâche de fond), mon PC affiche fièrement (roulement de tambour...) DEUX pourcents d'utilisation ! Effectivement, on peut dire qu'il n'en fout pas une rame, malgré les 61 processus et 640 threads actifs...
    Cependant, quand je lance des programmes nettement plus lourds, mon PC monte à 60-80% de charge en moyenne, et 100% "bloqués" lors des compilations...

    Les PC modernes sont surtout faits pour faire un peu tout, donc ils ont une "réserve" de puissance sous le coude (suffit de lancer un jeu, un encodage vidéo ou un calcul lourd pour s'en convaincre). Reste que pour les gens qui n'utilisent un PC que pour surfer sur le net et faire des mails, le PC de base est déjà nettement trop puissant... D'où l'intérêt d'un netbook ou même d'un smartphone comme l'iPhone !

    Le problème que tu décris est, à mon avis, plus proche du citadin à 2 km de son travail, et qui ne va jamais à la campagne, mais qui s'achète quand même un gros 4x4 limite Hummer là où une petite voiture citadine sans aucune option aurait été amplement suffisante... Les gens surestiment souvent leurs besoins réels en informatique, je connais pas mal de familles où il aurait été plus profitable d'acheter trois PC moyens (voire bas de gamme) plutôt qu'un seul "gros" : ça aurait été moins cher et plus confortable pour tous.
    Le problème est que beaucoup de gens trouvent insultant (ou déshonorant) d'acheter du matériel "premier prix", alors ils gonflent leur ego en achetant une machine qui n'arrivera à 100% d'utilisation que le jour où le fiston lancera un benchmark dessus...

    Citation Envoyé par Luc Orient Voir le message
    Sur le "mainframe", dernier survivant des ces temps anciens, le processeur est beaucoup mieux utilisé, puisque partagés entre des centaines voire des milliers de processus et des centaines voire des milliers d'utilisateurs ...
    Mais il fonctionne sur un scheduling lui aussi, en temps partagé également : son principe de fonctionnement général est le même. Simplement, il est en général nettement plus "chargé" qu'un PC domestique, c'est tout. Tu as aussi des PC (serveurs notamment) qui sont tout aussi chargés qu'un mainframe, et où l'on fait attention à l'utilisation des ressources.
    Il faut voir aussi qu'un mainframe n'a pas la même puissance de calcul brute qu'un PC, ni le même prix; ni le même but...

Discussions similaires

  1. [tables systèmes] extraction de la structure d'une base
    Par laffreuxthomas dans le forum Autres SGBD
    Réponses: 6
    Dernier message: 23/03/2006, 14h24
  2. [système] Comment ajouter un item dans le context menu de Windows ?
    Par ddmicrolog dans le forum API, COM et SDKs
    Réponses: 8
    Dernier message: 29/06/2005, 18h03
  3. [Système] Vider le Presse Papier
    Par babe dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 04/09/2002, 18h46
  4. IA avec le système de note
    Par scorpiwolf dans le forum C
    Réponses: 4
    Dernier message: 06/05/2002, 13h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo