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

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π°Ρ систСма UNIXΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 71

Автор РобачСвский АндрСй ΠœΠΈΡ…Π°ΠΉΠ»ΠΎΠ²ΠΈΡ‡

Β β€’Β ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ инструкций, содСрТащий адрСс ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ инструкции, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ;

Β β€’Β ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ стСка, содСрТащий адрСс послСднСго элСмСнта стСка;

 ‒ рСгистры ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ;

 ‒ рСгистры управлСния ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ, ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‰ΠΈΠ΅ Π·Π° Ρ‚Ρ€Π°Π½ΡΠ»ΡΡ†ΠΈΡŽ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ адрСса процСсса Π² физичСский.

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

Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ ситуации, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… производится ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ контСкста:

1.Β Π’Π΅ΠΊΡƒΡ‰ΠΈΠΉ процСсс ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ Π² состояниС сна, оТидая нСдоступного рСсурса.

2.Β Π’Π΅ΠΊΡƒΡ‰ΠΈΠΉ процСсс Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ своС Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅.

3. ПослС пСрСсчСта ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠ² Π² ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ находится Π±ΠΎΠ»Π΅Π΅ высокоприоритСтный процСсс.

4.Β ΠŸΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ ΠΏΡ€ΠΎΠ±ΡƒΠΆΠ΄Π΅Π½ΠΈΠ΅ Π±ΠΎΠ»Π΅Π΅ высокоприоритСтного процСсса.

ΠŸΠ΅Ρ€Π²Ρ‹Π΅ Π΄Π²Π° случая ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ Π΄ΠΎΠ±Ρ€ΠΎΠ²ΠΎΠ»ΡŒΠ½ΠΎΠΌΡƒ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡŽ контСкста ΠΈ дСйствия ядра Π² этом случаС достаточно просты. Π―Π΄Ρ€ΠΎ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ контСкста ΠΈΠ· Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ sleep() ΠΈΠ»ΠΈ exit(). Π’Ρ€Π΅Ρ‚ΠΈΠΉ ΠΈ Ρ‡Π΅Ρ‚Π²Π΅Ρ€Ρ‚Ρ‹ΠΉ случаи ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ контСкста происходят Π½Π΅ ΠΏΠΎ Π²ΠΎΠ»Π΅ процСсса, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π² это врСмя выполняСтся Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ ядра ΠΈ поэтому Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ приостановлСн. Π’ этой ситуации ядро устанавливаСт ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ„Π»Π°Π³ runrun, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π² ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ находится Π±ΠΎΠ»Π΅Π΅ высокоприоритСтный процСсс, Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰ΠΈΠΉ прСдоставлСния Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… рСсурсов. ΠŸΠ΅Ρ€Π΅Π΄ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΎΠΌ процСсса ΠΈΠ· Ρ€Π΅ΠΆΠΈΠΌΠ° ядра Π² Ρ€Π΅ΠΆΠΈΠΌ Π·Π°Π΄Π°Ρ‡ΠΈ ядро провСряСт этот Ρ„Π»Π°Π³ ΠΈ, Ссли ΠΎΠ½ установлСн, Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ контСкста.

ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ планирования процСссов

Π’Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Π΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ планирования UNIX ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ выполнСния ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΈ Ρ„ΠΎΠ½ΠΎΠ²Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΎΠ½ΠΈ Ρ…ΠΎΡ€ΠΎΡˆΠΎ подходят для систСм ΠΎΠ±Ρ‰Π΅Π³ΠΎ назначСния с нСсколькими ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹ΠΌΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌΠΈ, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΌΠΈ с тСкстовыми ΠΈ графичСскими Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°ΠΌΠΈ, ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΌΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΠΌΠΈ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ. Π­Ρ‚ΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‚ ΠΌΠ°Π»ΠΎΠ΅ врСмя Ρ€Π΅Π°ΠΊΡ†ΠΈΠΈ для ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, слСдя Π² Ρ‚ΠΎ ΠΆΠ΅ врСмя, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ„ΠΎΠ½ΠΎΠ²Ρ‹ΠΌ Π³Ρ€ΠΎΠΌΠΎΠ·Π΄ΠΊΠΈΠΌ Π·Π°Π΄Π°Ρ‡Π°ΠΌ справСдливо ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΠ»ΠΈΡΡŒ рСсурсы систСмы. Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ систСмы ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π·Π°Π΄Π°Ρ‡ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, ΠΎΠ΄Π½Π°ΠΊΠΎ Π² Π΄Π°Π½Π½ΠΎΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠΌΡ‹ остановимся Π½Π° ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ систСмы раздСлСния Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.

ΠŸΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ процСссов Π² UNIX основано Π½Π° ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π΅ процСсса. ΠŸΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊ всСгда Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ процСсс с Π½Π°ΠΈΠ²Ρ‹ΡΡˆΠΈΠΌ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠΌ. ΠŸΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ процСсса Π½Π΅ являСтся фиксированным ΠΈ динамичСски измСняСтся систСмой Π² зависимости ΠΎΡ‚ использования Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… рСсурсов, Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ оТидания запуска ΠΈ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ состояния процСсса. Если процСсс Π³ΠΎΡ‚ΠΎΠ² ΠΊ запуску ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ Π½Π°ΠΈΠ²Ρ‹ΡΡˆΠΈΠΉ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚, ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊ приостановит Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ процСсса (с Π±ΠΎΠ»Π΅Π΅ Π½ΠΈΠ·ΠΊΠΈΠΌ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠΌ), Π΄Π°ΠΆΠ΅ Ссли послСдний Π½Π΅ "Π²Ρ‹Ρ€Π°Π±ΠΎΡ‚Π°Π»" свой Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΊΠ²Π°Π½Ρ‚.

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

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ процСсс ΠΈΠΌΠ΅Π΅Ρ‚ Π΄Π²Π° Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π°: Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚, Π½Π° основании ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ происходит ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, ΠΈ Π·Π°ΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ nice number (ΠΈΠ»ΠΈ просто nice), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ задаСтся ΠΏΡ€ΠΈ ΠΏΠΎΡ€ΠΎΠΆΠ΄Π΅Π½ΠΈΠΈ процСсса ΠΈ влияСт Π½Π° Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚.

Π’Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ Π²Π°Ρ€ΡŒΠΈΡ€ΡƒΠ΅Ρ‚ΡΡ Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ ΠΎΡ‚ 0 (Π½ΠΈΠ·ΠΊΠΈΠΉ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚) Π΄ΠΎ 127 (Π½Π°ΠΈΠ²Ρ‹ΡΡˆΠΈΠΉ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚). ΠŸΡ€ΠΎΡ†Π΅ΡΡΡ‹, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΠ΅ΡΡ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ, ΠΈΠΌΠ΅ΡŽΡ‚ Π±ΠΎΠ»Π΅Π΅ Π½ΠΈΠ·ΠΊΠΈΠΉ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚, Ρ‡Π΅ΠΌ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ ядра. Для Ρ€Π΅ΠΆΠΈΠΌΠ° Π·Π°Π΄Π°Ρ‡ΠΈ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ мСняСтся Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ 0–65, для Ρ€Π΅ΠΆΠΈΠΌΠ° ядра β€” 66–95 (систСмный Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½).

ΠŸΡ€ΠΎΡ†Π΅ΡΡΡ‹, ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Ρ‹ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π»Π΅ΠΆΠ°Ρ‚ Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ 96–127, ΡΠ²Π»ΡΡŽΡ‚ΡΡ процСссами с фиксированным ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠΌ, Π½Π΅ измСняСмым ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмой, ΠΈ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ [35].

ΠŸΡ€ΠΎΡ†Π΅ΡΡΡƒ, ΠΎΠΆΠΈΠ΄Π°ΡŽΡ‰Π΅ΠΌΡƒ нСдоступного Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ рСсурса, систСма опрСдСляСт Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π° сна, Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌΠΎΠ΅ ядром ΠΈΠ· Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° систСмных ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠ² ΠΈ связанноС с событиСм, Π²Ρ‹Π·Π²Π°Π²ΡˆΠ΅Π΅ это состояниС. Π’ Ρ‚Π°Π±Π». 3.3 ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ значСния ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠ² сна для систСм 4.3BSD UNIX ΠΈ SCO UNIX (OpenServer 5.0). Π—Π°ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ роста Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π° для этих систСм Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΎ β€” Π² BSD UNIX Π±ΠΎΠ»ΡŒΡˆΠ΅ΠΌΡƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ соотвСтствуСт Π±ΠΎΠ»Π΅Π΅ Π½ΠΈΠ·ΠΊΠΈΠΉ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚.

Π’Π°Π±Π»ΠΈΡ†Π° 3.3. БистСмныС ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Ρ‹ сна

Π‘ΠΎΠ±Ρ‹Ρ‚ΠΈΠ΅ ΠŸΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ 4.3BSD UNIX ΠŸΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ SCO UNIX
ОТиданиС Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ сСгмСнта/страницы (свопинг/страничноС Π·Π°ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅) 0 95
ОТиданиС индСксного дСскриптора 10 88
ОТиданиС Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π° 20 81
ОТиданиС Π±ΡƒΡ„Π΅Ρ€Π° 30 80
ОТиданиС Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π° 75
ОТиданиС Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ‹Π²ΠΎΠ΄Π° 74
ОТиданиС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ выполнСния 73
ОТиданиС события β€” Π½ΠΈΠ·ΠΊΠΎΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π½ΠΎΠ΅ состояниС сна 40 66

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

ПослС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ систСмного Π²Ρ‹Π·ΠΎΠ²Π° ΠΏΠ΅Ρ€Π΅Π΄ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ΠΌ Π² Ρ€Π΅ΠΆΠΈΠΌ Π·Π°Π΄Π°Ρ‡ΠΈ ядро восстанавливаСт ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ Ρ€Π΅ΠΆΠΈΠΌΠ° Π·Π°Π΄Π°Ρ‡ΠΈ, сохранСнный ΠΏΠ΅Ρ€Π΅Π΄ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ систСмного Π²Ρ‹Π·ΠΎΠ²Π°. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ пониТСнию ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π°, Ρ‡Ρ‚ΠΎ, Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ контСкста.

Π’Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ процСсса Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ

p_priuser
зависит ΠΎΡ‚ Π΄Π²ΡƒΡ… Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ²: значСния nice number ΠΈ стСпСни использования Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… рСсурсов
p_cpu
:

p_priuser = a*p_nice - b*p_cpu
,