Le deuxième chapitre du système d'exploitation - ordonnancement à trois niveaux et algorithme de planification du CPU

Planification à trois niveaux d'un processeur

Référence de: ce  et ce

  • Planification avancée

  • Planification intermédiaire

  • Planification de bas niveau

1.1 Planification avancée

Planification avancée: autrement dit, la planification des travaux, selon une certaine stratégie, le programme sur le disque sélectionné est chargé en mémoire et le processus est établi. (Existe en système batch multicanal)

Expliquez ici la différence et le lien entre le travail et le processus

Le travail peut être divisé en quatre étapes: compiler, lier, charger et exécuter.

Quand un travail est sélectionné , l'ordonnancement des tâches (ordonnancement avancé) dans la mémoire et de mettre le temps dans la piste , le système d'exploitation génère un processus utilisateur pour effectuer leurs tâches de calcul que les utilisateurs finaux travaillent.

Le processus est l'entité d'exécution du travail (programme) qui a été soumis et sélectionné pour être exécuté . C'est également l'unité de base pour appliquer et allouer des ressources au système pour terminer la tâche de travail. Il est en cours d'exécution, prêt, en attente, etc.

En résumé:

  • Le travail est l'entité de tâche et le processus est l'entité d'exécution qui termine la tâche

  • Sans tâche, le processus n'a rien à faire; sans processus, la tâche ne peut pas être terminée

  • Le concept de travaux est plus utilisé dans les systèmes d'exploitation par lots; les processus sont utilisés dans divers systèmes de multi-programmation

 

1.2 Planification intermédiaire

Ordonnancement intermédiaire: l'ordonnancement des échanges, l'échange de données entre le stockage interne et externe selon une certaine stratégie.

Lorsque les ressources mémoire sont rares, le processus temporairement inutilisable sera échangé de la mémoire. À ce stade, le processus est à l'état "suspendu" et ne participe pas à la planification de bas niveau; lorsque le processus a des conditions de fonctionnement et que les ressources mémoire sont riches, le processus est rappelé en mémoire Le travail.

Jouez le rôle de l'équilibrage de la charge système à court terme, améliorez pleinement l'utilisation de la mémoire et le débit du système.

 

1.3 Planification de bas niveau

Ordonnancement de bas niveau: autrement dit, l'ordonnancement de l'UC (ordonnancement de processus), selon une certaine stratégie pour sélectionner le processus prêt, occupe l'UC à exécuter.

Selon un certain principe, décidez quel processus / thread dans la file d'attente prête obtient le processeur et transférez-lui le processeur.

La planification de bas niveau est une fonction indispensable de divers systèmes d'exploitation, et la planification de haut niveau n'est généralement pas requise dans les systèmes d'exploitation à temps partagé pur ou les systèmes d'exploitation en temps réel.

 

Référence graphique de: this

 

1. Planification de processus uniquement (planification de bas niveau)

 

2. Planification uniquement de bas niveau et de haut niveau

 

3. Algorithme de planification à trois niveaux

 

 

2.1 Système de traitement par lots

Le système de traitement par lots ne comporte pas beaucoup d'opérations utilisateur. Dans ce système, l'algorithme de planification vise à garantir le débit et le délai d'exécution (temps entre la soumission et la fin).

1 Premier arrivé, premier service, premier arrivé, premier serveur (FCFS)

2 Emploi le plus court en premier (SJF)

3 Priorité au temps restant le plus court (SRTN)

4 Rapport de réponse le plus élevé en premier (HSRF)

5 Rotation de tranche de temps

6 Ordonnancement prioritaire

7 File d'attente de rétroaction à plusieurs niveaux

2.1.1 Premier arrivé, premier arrivé, premier arrivé, premier serveur (FCFS)

Algorithme de planification non privé.

Horaire dans l'ordre demandé.

Sélectionnez les travaux en fonction de l'ordre dans lequel les travaux entrent dans la file d'attente des travaux de sauvegarde du système. Les travaux entrés en premier sont d'abord sélectionnés dans la mémoire, créant des processus utilisateur

C'est bon pour les travaux longs, mais ce n'est pas bon pour les travaux courts, car les travaux courts doivent toujours attendre la fin du travail long précédent avant de pouvoir être exécutés, et les travaux longs doivent être exécutés longtemps, ce qui entraîne un temps d'attente trop long pour les travaux courts.

 

2.1.2 Emploi le plus court en premier (SJF)

Algorithme de planification non privé.

Planifiez dans l'ordre du temps d'exécution estimé le plus court.

Inconvénients: 1. Il est nécessaire de connaître à l'avance le temps de fonctionnement du processeur requis par le travail, ce qui est difficile à estimer avec précision.

2. Ignorer le temps d'attente du travail rendra le temps d'attente du travail long trop long

3. L'absence de mécanisme de privation n'est pas idéale pour le partage de temps et le traitement en temps réel.

 

2.1.3 Priorité au temps restant le plus court (SRTN)

Algorithme de planification privé.

Calendrier dans l'ordre du temps restant estimé le plus court.

 

2.1.4 Rapport de réponse le plus élevé en premier (HSRF)

Algorithme de planification non privé.

Planifiez dans l'ordre dans lequel le taux de réponse le plus élevé calculé est le plus petit.

Traitement préférentiel du travail court, mais la faim ne se produira pas.

Inconvénients: Chaque calcul du taux de réponse de chaque travail entraînera un certain temps supplémentaire.

(1) Si le temps d'attente du travail est le même, plus le temps requis pour le service est court, plus sa priorité est élevée, donc l'algorithme est propice aux travaux courts.

(2) Lorsque le temps de service requis est le même, la priorité du travail est déterminée par son temps d'attente. Plus le temps d'attente est long, plus la priorité est élevée, de sorte qu'il met en œuvre le premier arrivé, premier servi.

(3) Pour les tâches longues, la priorité de la tâche peut être augmentée avec l'augmentation du temps d'attente. Lorsque le temps d'attente est suffisamment long, la priorité peut être élevée à un niveau élevé, de sorte que le processeur peut également être obtenu. En bref, l'algorithme prend en charge à la fois les petits travaux et l'ordre d'arrivée des travaux, et ne laisse pas les longs travaux sans service pendant longtemps. Par conséquent, l'algorithme atteint un meilleur compromis. Bien sûr, lorsque vous utilisez cet algorithme, le taux de réponse doit être calculé avant la planification, ce qui augmentera la surcharge du système.

 

2.2 Système interactif

Les systèmes interactifs ont un grand nombre d'interactions avec les utilisateurs, et l'objectif des algorithmes de planification dans ce système est de répondre rapidement.

 

2.2.1 Rotation des tranches de temps

1) Principes de base

Dans la première méthode de rotation des tranches de temps, le système organise tous les processus prêts dans une file d'attente selon le principe du premier arrivé, premier servi. À chaque planification, la CPU est affectée au processus de chef d'équipe et est exécutée pour une tranche de temps. La taille de la tranche de temps varie de plusieurs ms à des centaines de ms. Lorsque la tranche de temps d'exécution est épuisée, un temporisateur émet une demande d'interruption d'horloge et le planificateur arrête l'exécution du processus en fonction de ce signal et l'envoie à la fin de la file d'attente prête; puis, le processeur est affecté à prêt Le nouveau processus de chef d'équipe dans la file d'attente lui permet également d'exécuter une tranche de temps. De cette façon, il peut être garanti que tous les processus de la file d'attente prête peuvent obtenir un temps d'exécution du processeur d'une tranche de temps dans un temps donné. En d'autres termes, le système peut répondre à toutes les demandes des utilisateurs dans un délai donné.

Tous les processus prêts sont disposés dans une file d'attente selon le principe FCFS. A chaque planification, le temps CPU est alloué au processus chef d'équipe, et le processus peut exécuter une tranche de temps. Lorsque la tranche de temps est écoulée, le temporisateur émet une interruption d'horloge et le planificateur arrête l'exécution du processus et l'envoie à la fin de la file d'attente prête, tout en continuant d'allouer du temps CPU à la tête du processus.

 

L'efficacité de l'algorithme de rotation de tranche de temps a une grande relation avec la taille de la tranche de temps:

  • Étant donné que la commutation de processus doit enregistrer les informations de processus et charger les nouvelles informations de processus, si la tranche de temps est trop petite, cela entraînera une commutation trop fréquente du processus et il faudra trop de temps pour commuter le processus.

  • Si la tranche de temps est trop longue, les performances en temps réel ne peuvent pas être garanties.

 

2.2.2 Ordonnancement prioritaire

Attribuez une priorité à chaque processus et programme en fonction de la priorité.

Le système peut prédéfinir la stratégie comme non privée ou privée.

Pour éviter que les processus de faible priorité n'attendent jamais la planification, vous pouvez augmenter la priorité des processus en attente au fil du temps.

De cette façon, le système affecte également le processeur au processus dont la priorité d'exécution est la plus élevée. Mais pendant son exécution, tant qu'un autre processus avec une priorité plus élevée apparaît, le planificateur de processus arrêtera immédiatement l'exécution du processus en cours (le processus avec la priorité la plus élevée) et réaffectera le processeur à la priorité nouvellement arrivée. Le processus le plus élevé. Par conséquent, lorsque cet algorithme d'ordonnancement est adopté, chaque fois qu'un nouveau processus prêt i apparaît dans le système, sa priorité Pi est comparée à la priorité Pj du processus j en cours d'exécution. Si Pi≤Pj, le processus original Pj continuera à s'exécuter; mais si Pi> Pj, alors arrêtez immédiatement l'exécution de Pj, effectuez la commutation de processus, de sorte que le processus i soit mis en exécution. De toute évidence, cet algorithme de planification prioritaire préemptif peut mieux répondre aux exigences des opérations urgentes, il est donc souvent utilisé dans des systèmes en temps réel avec des exigences strictes, et des systèmes de traitement par lots et de partage de temps avec des exigences de performances élevées.

2.2.3 File d'attente de rétroaction à plusieurs niveaux

Un processus doit exécuter 100 tranches de temps. Si un algorithme de programmation par permutation circulaire de tranches de temps est utilisé, il doit être échangé 100 fois.

La file d'attente à plusieurs niveaux est prise en compte pour ce processus qui doit exécuter en continu plusieurs tranches de temps. Elle configure plusieurs files d'attente, chacune ayant une taille de tranche de temps différente, comme 1, 2, 4, 8, ... Le processus n'est pas exécuté dans la première file d'attente, il sera déplacé dans la file d'attente suivante. De cette façon, le processus précédent n'a besoin d'être échangé que 7 fois.

La priorité de chaque file d'attente est également différente, avec la priorité la plus élevée en haut. Par conséquent, le processus de la file d'attente actuelle ne peut être planifié que si aucun processus n'est mis en file d'attente dans la file d'attente précédente.

Cet algorithme d'ordonnancement peut être considéré comme une combinaison d'algorithme d'ordonnancement de rotation de tranche de temps et d'algorithme d'ordonnancement prioritaire.

(1) Plusieurs files d'attente prêtes doivent être configurées et chaque file d'attente doit avoir une priorité différente. La première file d'attente a la priorité la plus élevée, la deuxième file vient ensuite et la priorité des files d'attente restantes diminue une par une. L'algorithme attribue différentes tailles de tranches de temps d'exécution de processus dans chaque file d'attente. Plus la priorité est élevée, plus la tranche de temps d'exécution spécifiée pour chaque processus est petite. Par exemple, la tranche de temps de la deuxième file d'attente est deux fois plus longue que la tranche de temps de la première file d'attente, ..., la tranche de temps de la i + 1e file d'attente est deux fois plus longue que la tranche de temps de la ième file d'attente.

(2) Lorsqu'un nouveau processus entre en mémoire, il est d'abord placé à la fin de la première file d'attente et mis en file d'attente pour la planification selon le principe FCFS. Lorsque c'est le tour du processus à exécuter, s'il peut se terminer dans la tranche de temps, il peut se préparer à évacuer le système; s'il n'est pas terminé à la fin d'une tranche de temps, le planificateur transférera le processus à la fin de la deuxième file d'attente, puis De même, attendez l'exécution planifiée selon le principe FCFS; si elle n'est pas terminée après avoir exécuté une tranche de temps dans la deuxième file d'attente, puis placez-la dans la troisième file d'attente à son tour ..., donc, lorsqu'un long travail (processus) démarre à partir du premier Après qu'une file d'attente est passée à la nième file d'attente à tour de rôle , la nième  file d'attente s'exécute d'une manière de rotation de tranche de temps.

(3) Uniquement lorsque la première file d'attente est inactive, le planificateur planifie les processus de la deuxième file d'attente; uniquement lorsque les premières à (i-1) files d'attente sont vides, le processus de la i-ème file d'attente est planifié pour s'exécuter. Si le processeur dessert un processus dans la i-ème file d'attente et qu'un nouveau processus entre dans la file d'attente avec une priorité plus élevée (toute file d'attente du premier à (i-1)), le nouveau processus préemptera l'exécution Le processeur du processus, c'est-à-dire que le planificateur remet le processus en cours d'exécution à la fin de la i-ème file d'attente, et affecte le processeur au processus prioritaire nouvellement arrivé.

 

2.3 Système en temps réel

Les systèmes en temps réel nécessitent une réponse à une demande dans un certain délai.

Divisé en temps réel dur et en temps réel doux, le premier doit respecter le délai absolu, le second peut tolérer un certain délai

Publié 519 articles originaux · loué 69 · 50 000+ vues

Je suppose que tu aimes

Origine blog.csdn.net/qq_41286356/article/details/105200621
conseillé
Classement