Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ «АрхитСктура ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы UNIXΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 71

Автор ΠœΠΎΡ€ΠΈΡ Π‘Π°Ρ…

Π’ систСмС раздСлСния Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ядро прСдоставляСт процСссу рСсурсы Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ процСссора (ЦП) Π½Π° ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π» Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ ΠΊΠ²Π°Π½Ρ‚ΠΎΠΌ, ΠΏΠΎ истСчСнии ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π²Ρ‹Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚ этот процСсс ΠΈ запускаСт Π΄Ρ€ΡƒΠ³ΠΎΠΉ, пСриодичСски пСрСупорядочивая ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ процСссов. Алгоритм планирования процСссов Π² систСмС UNIX ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ врСмя выполнСния Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ процСсс ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ планирования; ядро ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ контСкст Π½Π° процСсс с Π½Π°ΠΈΠ²Ρ‹ΡΡˆΠΈΠΌ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠΌ. ΠŸΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰Π΅Π³ΠΎΡΡ процСсса ΠΈΠ· Ρ€Π΅ΠΆΠΈΠΌΠ° ядра Π² Ρ€Π΅ΠΆΠΈΠΌ Π·Π°Π΄Π°Ρ‡ΠΈ ядро пСрСсчитываСт Π΅Π³ΠΎ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚, пСриодичСски ΠΈ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ пСрСустанавливая ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ процСсса, Π³ΠΎΡ‚ΠΎΠ²ΠΎΠ³ΠΎ ΠΊ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡŽ.

Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, связанном с Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ, Π½ΡƒΠΆΠ½Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΈΠ· ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… процСссов: ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠ°Ρ ΠΈΠΌΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠΎΠΌΠ°Π½Π΄Π° time позволяСт ΡƒΠ·Π½Π°Ρ‚ΡŒ, сколько Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, ΠΊΠΎΠΌΠ°Π½Π΄Π° date Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ Π΄Π°Ρ‚Ρƒ ΠΈ врСмя суток. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… систСмных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ процСссы ΠΌΠΎΠ³ΡƒΡ‚ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ ΠΈΠ»ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ характСристики выполнСния Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ ядра, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒ загруТСнности Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ процСссора. ВрСмя Π² систСмС поддСрТиваСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹Ρ… часов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΡΡ‹Π»Π°ΡŽΡ‚ ЦП прСрывания с фиксированной, Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎ-зависимой частотой, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ 50-100 Ρ€Π°Π· Π² сСкунду. КаТдоС поступлСниС прСрывания ΠΏΠΎ Ρ‚Π°ΠΉΠΌΠ΅Ρ€Ρƒ (часам) имСнуСтся Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π½Ρ‹ΠΌ Ρ‚ΠΈΠΊΠΎΠΌ. Π’ настоящСй Π³Π»Π°Π²Π΅ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ΡΡ особСнности Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ процСссов Π²ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ процСссов Π² систСмС UNIX, описаниС связанных со Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ систСмных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, выполняСмых ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ ΠΏΠΎ Ρ‚Π°ΠΉΠΌΠ΅Ρ€Ρƒ.

8.1 ΠŸΠ›ΠΠΠ˜Π ΠžΠ’ΠΠΠ˜Π• Π’Π«ΠŸΠžΠ›ΠΠ•ΠΠ˜Π― ΠŸΠ ΠžΠ¦Π•Π‘Π‘ΠžΠ’

ΠŸΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊ процСссов Π² систСмС UNIX ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ ΠΊ ΠΎΠ±Ρ‰Π΅ΠΌΡƒ классу ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊΠΎΠ², Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΡ… ΠΏΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ "карусСли с ΠΌΠ½ΠΎΠ³ΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠΉ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ связью". Π’ соотвСтствии с этим ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΎΠΌ ядро прСдоставляСт процСссу рСсурсы ЦП Π½Π° ΠΊΠ²Π°Π½Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, ΠΏΠΎ истСчСнии ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π²Ρ‹Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚ этот процСсс ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π΅Π³ΠΎ Π² ΠΎΠ΄Π½Ρƒ ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΎΡ‡Π΅Ρ€Π΅Π΄Π΅ΠΉ, Ρ€Π΅Π³ΡƒΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π°ΠΌΠΈ. ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ процСсс Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡΡ, Π΅ΠΌΡƒ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ мноТСство Ρ€Π°Π· ΠΏΡ€ΠΎΠΉΡ‚ΠΈ Ρ‡Π΅Ρ€Π΅Π· Ρ†ΠΈΠΊΠ» с ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ связью. Когда ядро выполняСт ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ контСкста ΠΈ восстанавливаСт контСкст процСсса, процСсс возобновляСт Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ с Ρ‚ΠΎΡ‡ΠΊΠΈ приостанова.

8.1.1 Алгоритм

Π‘Ρ€Π°Π·Ρƒ послС ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ контСкста ядро запускаСт Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ планирования выполнСния процСссов (Рисунок 8.1), выбирая Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ процСсс с Π½Π°ΠΈΠ²Ρ‹ΡΡˆΠΈΠΌ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠΌ срСди процСссов, находящихся Π² состояниях "рСзСрвирования" ΠΈ "готовности ΠΊ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡŽ, Π±ΡƒΠ΄ΡƒΡ‡ΠΈ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹ΠΌ Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ". Π Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ процСссы, Π½Π΅ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹Π΅ Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ, Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ смысла, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‡ΠΈ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½, процСсс Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ. Если Π½Π°ΠΈΠ²Ρ‹ΡΡˆΠΈΠΉ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ ΠΈΠΌΠ΅ΡŽΡ‚ сразу нСсколько процСссов, ядро, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ ΠΊΠΎΠ»ΡŒΡ†Π΅Π²ΠΎΠ³ΠΎ списка (карусСли), Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ срСди Π½ΠΈΡ… Ρ‚ΠΎΡ‚ процСсс, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ находится Π² состоянии "готовности ΠΊ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡŽ" дольшС ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ…. Если Π½ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· процСссов Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹Π±Ρ€Π°Π½ для выполнСния, ЦП простаиваСт Π΄ΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° получСния ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ прСрывания, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚ Π½Π΅ ΠΏΠΎΠ·ΠΆΠ΅ Ρ‡Π΅ΠΌ Ρ‡Π΅Ρ€Π΅Π· ΠΎΠ΄ΠΈΠ½ Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π½Ρ‹ΠΉ Ρ‚ΠΈΠΊ; послС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ этого прСрывания ядро снова запустит Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ планирования.


Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ schedule_process

входная информация: отсутствуСт

выходная информация: отсутствуСт

{

 Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΏΠΎΠΊΠ° (для запуска Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π±Ρ€Π°Π½ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· процСссов) {

  for (ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ процСсса Π² ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ Π³ΠΎΡ‚ΠΎΠ²Ρ‹Ρ… ΠΊ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡŽ)

   Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ процСсс с Π½Π°ΠΈΠ²Ρ‹ΡΡˆΠΈΠΌ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠΌ ΠΈΠ· Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹Ρ… Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ;

  if (Π½ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· процСссов Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ·Π±Ρ€Π°Π½ для выполнСния)

   ΠΏΡ€ΠΈΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΌΠ°ΡˆΠΈΠ½Ρƒ;

 /* машина Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΈΠ· состояния простоя ΠΏΠΎ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΡŽ */

 }

 ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΉ процСсс ΠΈΠ· ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ Π³ΠΎΡ‚ΠΎΠ²Ρ‹Ρ… ΠΊ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡŽ;

 ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ Π½Π° контСкст Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ³ΠΎ процСсса, Π²ΠΎΠ·ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅;

}

Рисунок 8.1. Алгоритм планирования выполнСния процСссов

8.1.2 ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ диспСтчСризации

Π’ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ записи Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ процСссов Π΅ΡΡ‚ΡŒ ΠΏΠΎΠ»Π΅ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ΅ ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊΠΎΠΌ процСссов. ΠŸΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ процСсса Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ зависит ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ этот процСсс ΠΏΠ΅Ρ€Π΅Π΄ этим использовал рСсурсы ЦП. МоТно Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ Π΄Π²Π° класса ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠ² процСсса (Рисунок 8.2): ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Ρ‹ выполнСния Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ ядра ΠΈ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Ρ‹ выполнСния Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ класс Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя ряд Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, с ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ логичСски ассоциирована нСкоторая ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ процСссов. ΠŸΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Ρ‹ выполнСния Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΎΡ†Π΅Π½ΠΈΠ²Π°ΡŽΡ‚ΡΡ для процСссов, Π²Ρ‹Π³Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹Ρ… ΠΏΠΎ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠΈ ΠΈΠ· Ρ€Π΅ΠΆΠΈΠΌΠ° ядра Π² Ρ€Π΅ΠΆΠΈΠΌ Π·Π°Π΄Π°Ρ‡ΠΈ, ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Ρ‹ выполнСния Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ ядра ΠΈΠΌΠ΅ΡŽΡ‚ смысл Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² контСкстС Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° sleep. ΠŸΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Ρ‹ выполнСния Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ Π²Π΅Ρ€Ρ…Π½Π΅Π΅ ΠΏΠΎΡ€ΠΎΠ³ΠΎΠ²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Ρ‹ выполнСния Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ ядра ΠΈΠΌΠ΅ΡŽΡ‚ Π½ΠΈΠΆΠ½Π΅Π΅ ΠΏΠΎΡ€ΠΎΠ³ΠΎΠ²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. Π‘Ρ€Π΅Π΄ΠΈ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠ² выполнСния Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ ядра Π΄Π°Π»Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ высокиС ΠΈ Π½ΠΈΠ·ΠΊΠΈΠ΅ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Ρ‹: процСссы с Π½ΠΈΠ·ΠΊΠΈΠΌ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠΌ Π²ΠΎΠ·ΠΎΠ±Π½ΠΎΠ²Π»ΡΡŽΡ‚ΡΡ ΠΏΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠΈ сигнала, Π° процСссы с высоким ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠΌ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡŽΡ‚ ΠΎΡΡ‚Π°Π²Π°Ρ‚ΡŒΡΡ Π² состоянии приостанова (см. Ρ€Π°Π·Π΄Π΅Π» 7.2.1).

ΠŸΠΎΡ€ΠΎΠ³ΠΎΠ²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π°ΠΌΠΈ выполнСния Π² Ρ€Π΅ΠΆΠΈΠΌΠ°Ρ… ядра ΠΈ Π·Π°Π΄Π°Ρ‡ΠΈ Π½Π° РисункС 8.2 ΠΎΡ‚ΠΌΠ΅Ρ‡Π΅Π½ΠΎ Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ Π»ΠΈΠ½ΠΈΠ΅ΠΉ, проходящСй ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠΌ оТидания Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ ΠΏΠΎΡ‚ΠΎΠΌΠΊΠ° (Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ ядра) ΠΈ Π½ΡƒΠ»Π΅Π²Ρ‹ΠΌ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠΌ выполнСния Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ. ΠŸΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Ρ‹ процСсса ΠΏΠΎΠ΄ΠΊΠ°Ρ‡ΠΊΠΈ, оТидания Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π°, связанного с диском, оТидания Π±ΡƒΡ„Π΅Ρ€Π° ΠΈ индСкса ΡΠ²Π»ΡΡŽΡ‚ΡΡ высокими, Π½Π΅ Π΄ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‰ΠΈΠΌΠΈ прСрывания систСмными ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π°ΠΌΠΈ, с ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… связана ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ ΠΈΠ· 1, 3, 2 ΠΈ 1 процСсса, соотвСтствСнно, Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Ρ‹ оТидания Π²Π²ΠΎΠ΄Π° с Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π°, Π²Ρ‹Π²ΠΎΠ΄Π° Π½Π° Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π» ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ ΠΏΠΎΡ‚ΠΎΠΌΠΊΠ° ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π½ΠΈΠ·ΠΊΠΈΠΌΠΈ, Π΄ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‰ΠΈΠΌΠΈ прСрывания систСмными ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π°ΠΌΠΈ, с ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… связана ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ ΠΈΠ· 4, 0 ΠΈ 2 процСссов, соотвСтствСнно. На рисункС прСдставлСны Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΡ€ΠΎΠ²Π½ΠΈ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠ² выполнСния Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ[24].

Π―Π΄Ρ€ΠΎ вычисляСт ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ процСсса Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… случаях:

β€’ НСпосрСдствСнно ΠΏΠ΅Ρ€Π΅Π΄ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΎΠΌ процСсса Π² состояниС приостанова ядро Π½Π°Π·Π½Π°Ρ‡Π°Π΅Ρ‚ Π΅ΠΌΡƒ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ исходя ΠΈΠ· ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹ приостанова. ΠŸΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ Π½Π΅ зависит ΠΎΡ‚ динамичСских характСристик процСсса (ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π° ΠΈΠ»ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ счСта), Π½Π°ΠΏΡ€ΠΎΡ‚ΠΈΠ², это постоянная Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Π°, ТСстко устанавливаСмая Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ приостанова ΠΈ зависящая Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΡ‚ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° процСсса Π² Π΄Π°Π½Π½ΠΎΠ΅ состояниС. ΠŸΡ€ΠΎΡ†Π΅ΡΡΡ‹, приостановлСнныС Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°ΠΌΠΈ Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ уровня, ΠΈΠΌΠ΅ΡŽΡ‚ Ρ‚Π΅Π½Π΄Π΅Π½Ρ†ΠΈΡŽ ΠΏΠΎΡ€ΠΎΠΆΠ΄Π°Ρ‚ΡŒ Ρ‚Π΅ΠΌ большС ΡƒΠ·ΠΊΠΈΡ… мСст Π² систСмС, Ρ‡Π΅ΠΌ дольшС ΠΎΠ½ΠΈ находятся Π² этом состоянии; поэтому ΠΈΠΌ назначаСтся Π±ΠΎΠ»Π΅Π΅ высокий ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ процСссами. НапримСр, процСсс, приостановлСнный Π² ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π°, связанного с диском, ΠΈΠΌΠ΅Π΅Ρ‚ Π±ΠΎΠ»Π΅Π΅ высокий ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с процСссом, ΠΎΠΆΠΈΠ΄Π°ΡŽΡ‰ΠΈΠΌ освобоТдСния Π±ΡƒΡ„Π΅Ρ€Π°, ΠΏΠΎ нСскольким ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌ. ΠŸΡ€Π΅ΠΆΠ΄Π΅ всСго, Ρƒ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ процСсса ΡƒΠΆΠ΅ Π΅ΡΡ‚ΡŒ Π±ΡƒΡ„Π΅Ρ€, поэтому Π½Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ возобновится, ΠΎΠ½ успССт ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΈ Π±ΡƒΡ„Π΅Ρ€, ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ рСсурсы. Π§Π΅ΠΌ большС рСсурсов свободно, Ρ‚Π΅ΠΌ мСньшС шансов для возникновСния Π²Π·Π°ΠΈΠΌΠ½ΠΎΠΉ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ процСссов. БистСмС Π½Π΅ придСтся часто ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ контСкст, благодаря Ρ‡Π΅ΠΌΡƒ сократится врСмя Ρ€Π΅Π°ΠΊΡ†ΠΈΠΈ процСсса ΠΈ увСличится ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ систСмы. Π’ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, Π±ΡƒΡ„Π΅Ρ€, освобоТдСния ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚ процСсс, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ занят процСссом, ΠΎΠΆΠΈΠ΄Π°ΡŽΡ‰ΠΈΠΌ Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π°. По Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠΈ Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π° Π±ΡƒΠ΄ΡƒΡ‚ Π²ΠΎΠ·ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Ρ‹ ΠΎΠ±Π° процСсса, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ΠΈ Π±Ρ‹Π»ΠΈ приостановлСны ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΈ Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅ адрСсу. Если ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ процСсс, ΠΎΠΆΠΈΠ΄Π°ΡŽΡ‰ΠΈΠΉ освобоТдСния Π±ΡƒΡ„Π΅Ρ€Π°, ΠΎΠ½ Π² любом случаС снова приостановится Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° Π±ΡƒΡ„Π΅Ρ€ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ освобоТдСн; ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Π΅Π³ΠΎ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π½ΠΈΠΆΠ΅.

β€’ По Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠΈ процСсса ΠΈΠ· Ρ€Π΅ΠΆΠΈΠΌΠ° ядра Π² Ρ€Π΅ΠΆΠΈΠΌ Π·Π°Π΄Π°Ρ‡ΠΈ ядро вновь вычисляСт ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ процСсса. ΠŸΡ€ΠΎΡ†Π΅ΡΡ ΠΌΠΎΠ³ Π΄ΠΎ этого Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² состоянии приостанова, ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ² свой ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ Π½Π° ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ выполнСния Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ ядра, поэтому ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π΅ процСсса ΠΈΠ· Ρ€Π΅ΠΆΠΈΠΌΠ° ядра Π² Ρ€Π΅ΠΆΠΈΠΌ Π·Π°Π΄Π°Ρ‡ΠΈ Π΅ΠΌΡƒ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ выполнСния Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ядро "ΡˆΡ‚Ρ€Π°Ρ„ΡƒΠ΅Ρ‚" Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΠΉΡΡ процСсс Π² ΠΏΠΎΠ»ΡŒΠ·Ρƒ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… процСссов, отбирая ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ ΠΈΠΌ Ρ†Π΅Π½Π½Ρ‹Π΅ систСмныС рСсурсы.

β€’ ΠŸΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Ρ‹ всСх процСссов Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ с ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»ΠΎΠΌ Π² 1 сСкунду (Π² вСрсии V) пСрСсчитываСт ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ ΠΏΠΎ Ρ‚Π°ΠΉΠΌΠ΅Ρ€Ρƒ, побуТдая Ρ‚Π΅ΠΌ самым ядро Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ планирования, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ Π΄ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ монопольного использования рСсурсов ЦП ΠΎΠ΄Π½ΠΈΠΌ процСссом.

Рисунок 8.2. Π”ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠ² процСсса

Π’ Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠ²Π°Π½Ρ‚Π° Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Ρ‚Π°ΠΉΠΌΠ΅Ρ€ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡΠ»Π°Ρ‚ΡŒ процСссу нСсколько ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ; ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ ΠΏΠΎ Ρ‚Π°ΠΉΠΌΠ΅Ρ€Ρƒ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, хранящССся Π² ΠΏΠΎΠ»Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ процСссов, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ описываСт ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ использования рСсурсов Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ процСссора (ИЦП). Π’ вСрсии V ΠΊΠ°ΠΆΠ΄ΡƒΡŽ сСкунду ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ пСрСустанавливаСт Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ этого поля, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ полураспада (decay):