Fonctionnement des systèmes d’exploitation

Toutes les informations nécessaires pour suivre un processus lors de la commutation sont conservées dans un package de données appelé bloc de contrôle de processus. Le bloc de contrôle de processus contient généralement:

  • Un numéro d’identification qui identifie le processus
  • Pointeurs vers les emplacements du programme et ses données où le dernier traitement a eu lieu
  • Contenu du registre
  • États de divers indicateurs et commutateurs
  • Pointeurs vers les bornes supérieure et inférieure de la mémoire requise pour le processus
  • Une liste des fichiers ouverts par le processus
  • La priorité du processus
  • L’état de tous les fichiers ouverts par le processus
  • Périphériques d’E/S nécessaires au processus

Chaque processus a un statut qui lui est associé. De nombreux processus ne consomment pas de temps CPU jusqu’à ce qu’ils obtiennent une sorte d’entrée. Par exemple, un processus peut attendre une frappe de l’utilisateur. Pendant qu’il attend la frappe, il n’utilise aucun temps CPU. En attendant, il est « suspendu ». Lorsque la frappe arrive, le système d’exploitation change d’état. Lorsque l’état du processus change, passant d’en attente à actif, par exemple, ou de suspendu à en cours d’exécution, les informations du bloc de contrôle de processus doivent être utilisées comme les données de tout autre programme pour diriger l’exécution de la partie de commutation de tâches du système d’exploitation.

Publicité

Cet échange de processus se fait sans interférence directe de l’utilisateur, et chaque processus reçoit suffisamment de cycles CPU pour accomplir sa tâche dans un laps de temps raisonnable. Des problèmes peuvent survenir si l’utilisateur essaie de faire fonctionner trop de processus en même temps. Le système d’exploitation lui-même nécessite des cycles CPU pour effectuer l’enregistrement et l’échange de tous les registres, files d’attente et piles des processus d’application. Si suffisamment de processus sont démarrés et si le système d’exploitation n’a pas été soigneusement conçu, le système peut commencer à utiliser la grande majorité de ses cycles CPU disponibles pour permuter entre les processus plutôt que d’exécuter des processus. Lorsque cela se produit, cela s’appelle la raclée, et cela nécessite généralement une sorte d’intervention directe de l’utilisateur pour arrêter les processus et ramener l’ordre dans le système.

Ce contenu n’est pas compatible sur cet appareil.

Ce contenu n’est pas compatible avec cet appareil.

Un moyen pour les concepteurs de systèmes d’exploitation de réduire les risques de bousculade est de réduire le besoin de nouveaux processus pour effectuer diverses tâches. Certains systèmes d’exploitation permettent un « process-lite », appelé thread, qui peut gérer tout le travail intensif en CPU d’un processus normal, mais ne traite généralement pas les différents types d’E / S et n’établit pas de structures nécessitant le bloc de contrôle de processus étendu d’un processus régulier. Un processus peut démarrer de nombreux threads ou d’autres processus, mais un thread ne peut pas démarrer un processus.

Jusqu’à présent, toute la planification dont nous avons discuté concernait un seul processeur. Dans un système avec deux processeurs ou plus, le système d’exploitation doit répartir la charge de travail entre les PROCESSEURS, en essayant d’équilibrer les exigences des processus requis avec les cycles disponibles sur les différents PROCESSEURS. Les systèmes d’exploitation asymétriques utilisent un seul PROCESSEUR pour leurs propres besoins et répartissent les processus d’application entre les PROCESSEURS restants. Les systèmes d’exploitation symétriques se répartissent entre les différents processeurs, équilibrant la demande par rapport à la disponibilité du processeur, même lorsque le système d’exploitation lui-même est tout ce qui fonctionne.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.