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

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

Автор АндрСй РобачСвский

36

ΠœΡ‹ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ Π½Π΅ Π²Ρ‹Π΄Π΅Π»ΠΈΠ»ΠΈ явно ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ nice ΠΏΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅. Π’Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎ, Π±ΠΎΠ»ΡŒΡˆΠ΅ΠΌΡƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° nice соотвСтствуСт мСньший ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚, это ΡƒΠΆΠ΅ ΠΎΠ±ΡΡƒΠΆΠ΄Π°Π»ΠΎΡΡŒ Π² Π³Π»Π°Π²Π΅ 1. Π’ Π΄Π°Π½Π½ΠΎΠΌ обсуТдСнии Π²Ρ‹Π±Ρ€Π°Π½Π° схСма, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π±ΠΎΠ»ΡŒΡˆΠ΅ΠΌΡƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ p_cpu соотвСтствуСт больший ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π² ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠ΅ΠΌ случаС коэффициСнт Π° являСтся ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ, a p_nice Ρ€Π°Π²Π½ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° nice (nice number).

37

Π―Π΄Ρ€ΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρƒ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ использования процСссора.

38

Round robin (Π°Π½Π³Π».) ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΠΏΠ΅Ρ‚ΠΈΡ†ΠΈΡŽ, подписи ΠΏΠΎΠ΄ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‚ΡΡ ΠΏΠΎ ΠΊΡ€ΡƒΠ³Ρƒ β€” Ρ‡Ρ‚ΠΎΠ±Ρ‹ нСльзя Π±Ρ‹Π»ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, ΠΊΡ‚ΠΎ подписался ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ. ΠžΡ‚ΡΡŽΠ΄Π° ΠΈ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ схСмы Π²Ρ‹Π±ΠΎΡ€Π° процСссов.

39

ЕстСствСнно, Ρ€Π΅Ρ‡ΡŒ здСсь ΠΈΠ΄Π΅Ρ‚ ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ, Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ ядра процСсс выполняСт инструкции ядра ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы.

40

Напомним, Ρ‡Ρ‚ΠΎ Π² этом случаС EUID ΠΈ EGID Π½Π΅ Π½Π°ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ΡΡ ΠΎΡ‚ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ процСсса, Π° ΠΏΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°ΡŽΡ‚ΡΡ Ρ€Π°Π²Π½Ρ‹ΠΌΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°ΠΌ UID ΠΈ GID исполняСмого Ρ„Π°ΠΉΠ»Π°.

41

Π’ BSD UNIX Π±Ρ‹Π»ΠΈ Π²Π²Π΅Π΄Π΅Π½ΠΎ понятиС пСрСзапускаСмых систСмных Π²Ρ‹Π·ΠΎΠ²ΠΎΠ². Π‘ΡƒΡ‚ΡŒ этого ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΡ€Π΅Ρ€Π²Π°Π½Π½Ρ‹ΠΉ сигналом систСмный Π²Ρ‹Π·ΠΎΠ² автоматичСски повторяСтся послС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ сигнала, вмСсто Π°Π²Π°Ρ€ΠΈΠΉΠ½ΠΎΠ³ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ с ошибкой EINTR. ДопускаСтся ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ этой возмоТности для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… сигналов.

42

НапримСр, для сСрвСра систСмы ΠΈΠΌΠ΅Π½ (DNS) named(1M) Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ сигнал SIGHUP, ΠΏΠΎ сущСству ΡΠ²Π»ΡΡŽΡ‰ΠΈΠΉΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ обновлСния Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ….

43

Π―Π΄Ρ€ΠΎ обСспСчиваСт Π°Ρ‚ΠΎΠΌΠ°Ρ€Π½ΠΎΠ΅ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π΅ всСго Π½Π°Π±ΠΎΡ€Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π² Ρ†Π΅Π»ΠΎΠΌ, Π° лишь критичСских участков. Π’Π°ΠΊ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² процСссС оТидания освобоТдСния рСсурса (ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠ΅ Π½ΡƒΠ»Π΅Π²ΠΎΠ³ΠΎ значСния сСмафора) Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ процСсса Π±ΡƒΠ΄Π΅Ρ‚ (ΠΈ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ) ΠΏΡ€Π΅Ρ€Π²Π°Π½ΠΎ процСссом, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ освободит рСсурс (Ρ‚.Π΅. установит Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ сСмафора Ρ€Π°Π²Π½Ρ‹ΠΌ 1). ОТиданиС сСмафора соотвСтствуСт ΡΠΎΡΡ‚ΠΎΡΠ½ΠΈΡŽ "сна" процСсса, Π΄ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‰ΠΈΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΡ… процСссов Π² систСмС. Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС, процСсс, ΠΎΠΆΠΈΠ΄Π°ΡŽΡ‰ΠΈΠΉ рСсурс, остался Π±Ρ‹ Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ навсСгда.

44

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ сокСты ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π½Π΅ΠΎΡ‚ΡŠΠ΅ΠΌΠ»Π΅ΠΌΠΎΠΉ Ρ‡Π°ΡΡ‚ΡŒΡŽ BSD UNIX, Π² систСмах этой Π²Π΅Ρ‚Π²ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, связанныС с этими ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ, Π² частности socket(2) ΠΈ рассмотрСнныС Π½ΠΈΠΆΠ΅, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой систСмныС Π²Ρ‹Π·ΠΎΠ²Ρ‹. Π’ UNIX Π²Π΅Ρ‚Π²ΠΈ System V интСрфСйс сокСтов сохранСн для совмСстимости, Π½ΠΎ ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ ΠΎΡ‚Π»ΠΈΡ‡Π½ΡƒΡŽ ΠΎΡ‚ принятой Π² BSD Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ (ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡƒΡŽ Π½Π° подсистСмС STREAMS). ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ всС Π΅Π³ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅Ρ‡Π½Ρ‹ΠΌΠΈ ΠΈ ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ, соотвСтствСнно Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ 3 элСктронного справочника. Однако, оставляя ΠΏΠ°Π»ΡŒΠΌΡƒ пСрвСнства Π² этом вопросС Π·Π° BSD UNIX, Π² этом Ρ€Π°Π·Π΄Π΅Π»Π΅ Π±ΡƒΠ΄Π΅ΠΌ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ эти Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ систСмными Π²Ρ‹Π·ΠΎΠ²Π°ΠΌΠΈ ΠΈ ΡΠ²ΡΠ·Ρ‹Π²Π°Ρ‚ΡŒ с Π½ΠΈΠΌΠΈ Ρ€Π°Π·Π΄Π΅Π» 2 справочника man(1M).

45

Если Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ получСния запроса Π½Π° установлСниС связи ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ ΠΎΠΆΠΈΠ΄Π°ΡŽΡ‰ΠΈΡ… запросов достигла своСго максимального значСния, Π²Ρ‹Π·ΠΎΠ² connect(2) ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡΡ с ошибкой ECONNREFUSED для Π΄ΠΎΠΌΠ΅Π½Π° UNIX (AF_UNIX). Для Π΄Ρ€ΡƒΠ³ΠΈΡ… Π΄ΠΎΠΌΠ΅Π½ΠΎΠ² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ зависит ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π»ΠΈ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Ρƒ запроса. НапримСр, ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» TCP (Π΄ΠΎΠΌΠ΅Π½ AF_INET) Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½Ρ‹Π΅ запросы, ΠΏΠΎΠΊΠ° число запросов Π² ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ Π½Π΅ ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡΡ, Π»ΠΈΠ±ΠΎ Π½Π΅ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚ Ρ‚Π°ΠΉΠΌ-Π°ΡƒΡ‚, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ для ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π°. Π’ послСднСм случаС Π²Ρ‹Π·ΠΎΠ² ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡΡ с ошибкой ETIMEDOUT.

46

Π Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»Π° Π² ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎ располоТСнных дисковых Π±Π»ΠΎΠΊΠ°Ρ… позволяСт эффСктивно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ дисковоС пространство, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ядро ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ любой свободный дисковый Π±Π»ΠΎΠΊ для размСщСния Π΄Π°Π½Π½Ρ‹Ρ…. Однако Π² Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмС s5fs Π±Π»ΠΎΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΈΠΌ Ρ„Π°ΠΉΠ»ΠΎΠΌ, поэтому послСдний Π±Π»ΠΎΠΊ Ρ„Π°ΠΉΠ»Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Π½Π΅ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ. К Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅ Ρ‚Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ с Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΡŽ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ систСмы, ΠΊΠΎΠ³Π΄Π° Π΄Π°Π½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Π° ΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎ разбросанными ΠΏΠΎ диску, Ρ‡Ρ‚ΠΎ, Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ врСмя доступа ΠΊ Ρ„Π°ΠΉΠ»Ρƒ ΠΈ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΎΠ±ΠΌΠ΅Π½Π° Π΄Π°Π½Π½Ρ‹ΠΌΠΈ. ЕдинствСнным способом ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΡ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы являСтся созданиС ΠΏΠΎΠ»Π½ΠΎΠΉ Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠΉ ΠΊΠΎΠΏΠΈΠΈ Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΌ носитСлС (ΠΈΠ»ΠΈ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмС) ΠΈ Π·Π°Ρ‚Π΅ΠΌ Π΅Ρ‘ восстановлСнии. ΠŸΡ€ΠΈ этом запись Ρ„Π°ΠΉΠ»ΠΎΠ² Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π±Π΅Π· Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ.

47

ΠžΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΠΈΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½Π½Ρ‹Ρ… дисковых Π±Π»ΠΎΠΊΠΎΠ² для части Ρ„Π°ΠΉΠ»Π° ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ Π½Π΅ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°ΠΌ. НапримСр, опСрация записи Π² "Π΄Ρ‹Ρ€Ρƒ" ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΡ‚ΡŒΡΡ Π½Π΅ΡƒΠ΄Π°Ρ‡Π΅ΠΉ ΠΈΠ·-Π·Π° Π½Π΅Ρ…Π²Π°Ρ‚ΠΊΠΈ дискового пространства. ΠŸΡ€ΠΈ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Ρ„Π°ΠΉΠ»Π° с Π΄Ρ‹Ρ€ΠΎΠΉ, Π΅Π³ΠΎ копия Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒ большС фактичСского мСста Π½Π° дискС, Ρ‡Π΅ΠΌ ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π». Π­Ρ‚ΠΎ связано с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ производится Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ содСрТимого ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»Π°, Π° Π·Π°Ρ‚Π΅ΠΌ β€” запись Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ„Π°ΠΉΠ». Π­Ρ‚ΠΎ, Π² частности ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ рСзСрвная копия Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы Π½Π΅ смоТСт Π±Ρ‹Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ распакована, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ вмСсто Π½Π΅Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½Π½Ρ‹Ρ… Π±Π»ΠΎΠΊΠΎΠ² Π±ΡƒΠ΄Π΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π·Π°ΠΊΠΎΠ½Π½Ρ‹Π΅ Π½ΡƒΠ»Π΅Π²Ρ‹Π΅ Π±Π°ΠΉΡ‚Ρ‹ ΠΈ, соотвСтствСнно, Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒ большС мСста.

48

На самом Π΄Π΅Π»Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Π΅ систСмы ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒΡΡ Π½Π° ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°Ρ… (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² случаС NFS). Π₯отя ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Ρ‚Π°ΠΊΠΈΠΌΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΌΠΈ систСмами дисковый Π²Π²ΠΎΠ΄/Π²Ρ‹Π²ΠΎΠ΄ отсутствуСт, Ρ‚Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ ΠΈ Π² этом случаС ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π±Π»ΠΎΠΊΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ²Ρ‹ΡˆΠ°Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ.

49

ИспользованиС Π±ΡƒΡ„Π΅Ρ€Π½ΠΎΠ³ΠΎ кэша позволяСт ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ 95% ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ чтСния с диска ΠΈ 85% ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ записи Π½Π° диск для Ρ‚ΠΈΠΏΠΈΡ‡Π½ΠΎΠΉ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы.

50

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

51

Π Π°Π±ΠΎΡ‚Π° диспСтчСра Π±ΡƒΡ„Π΅Ρ€Π½ΠΎΠ³ΠΎ кэша зависит ΠΎΡ‚ вСрсии UNIX ΠΈ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… настроСк ядра систСмы. НапримСр, Π² SCO UNIX для этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ нСсколько ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ². ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ BDFLUSHR Π·Π°Π΄Π°Π΅Ρ‚ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π» ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ пробуТдСниями bdflush, Π΅Π³ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ составляСт 30 сСкунд. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ NAUTOUP Π·Π°Π΄Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΠΊ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΡ„Π΅Ρ€ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΡΡ‚Π°Π²Π°Ρ‚ΡŒΡΡ "грязным", ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ bdflush сохранит Π΅Π³ΠΎ Π½Π° дискС.

52

Π’ систСмах SVR4 принята тСрминология specfs, опСрационная систСма SCO UNIX, которая Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ являСтся SVR3.2, Π½ΠΎ фактичСски ΠΈΠΌΠ΅Π΅Ρ‚ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Ρ‡Π΅Ρ€Ρ‚Ρ‹ SVR4, Π½Π°Π·Ρ‹Π²Π°Π΅Ρ‚ этот Ρ‚ΠΈΠΏ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы devfs.

53

Clone (Π°Π½Π³Π».) β€” Ρ€Π°Π·ΠΌΠ½ΠΎΠΆΠ°Ρ‚ΡŒΡΡ.

54

НСсколько иная схСма примСняСтся для Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠ² подсистСмы STREAMS, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠΌΠ΅ΡŽΡ‚ ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ интСрфСйс доступа. Π­Ρ‚ΠΈ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒΡΡ Π² Π΄Π°Π½Π½ΠΎΠΉ Π³Π»Π°Π²Π΅ Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ "ΠŸΠΎΠ΄ΡΠΈΡΡ‚Π΅ΠΌΠ° STREAMS".

55

Π’ зависимости ΠΎΡ‚ вСрсии UNIX вмСсто символов xx Π² ΠΈΠΌΠ΅Π½ΠΈ Ρ„Π°ΠΉΠ»Π° Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π° присутствуСт ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π² соотвСтствии ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΌΡƒ Ρ„Π°ΠΉΠ»Ρƒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΡƒΡŽ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΡŒΠ½ΡƒΡŽ линию. НапримСр, Π² SCO UNIX Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ экраны систСмного ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€Π° ΠΈΠΌΠ΅ΡŽΡ‚ ΠΈΠΌΠ΅Π½Π° /dev/tty01, /dev/tty02 ΠΈ Ρ‚.Π΄.

56

МодСль OSI ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ сСтСвых ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΠ², прСдлоТСнная ΠœΠ΅ΠΆΠ΄ΡƒΠ½Π°Ρ€ΠΎΠ΄Π½ΠΎΠΉ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ ΠΏΠΎ стандартам (ISO), Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ для 7 ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ. Π Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ сСмСйства ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΠ², Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ TCP/IP ΠΈΠ»ΠΈ SNA, ΠΈΠΌΠ΅ΡŽΡ‚ Ρ‚ΠΎ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠ΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° эту модСль. Π­Ρ‚ΠΈ вопросы рассмотрСны Π² Π³Π»Π°Π²Π΅ 6.

57

ΠŸΠΎΡ‚ΠΎΠΊΠΎΠ²Ρ‹ΠΉ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ (Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ STREAMS) ΠΈΠΌΠ΅Π΅Ρ‚ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ, ΠΎΡ‚Π»ΠΈΡ‡Π½ΡƒΡŽ ΠΎΡ‚ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠ² ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Ρ… устройств, рассмотрСнных Ρ€Π°Π½Π΅Π΅.

58

На самом Π΄Π΅Π»Π΅ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΏΠ»Π΅ΠΊΡΠΎΡ€ΠΎΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ²Π»ΡΡ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ STREAMS. ОбъСдинСниС Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠ² Π² Π΅Π΄ΠΈΠ½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ ΠΎΡ‚ встраивания ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ΠΈ носит Π½Π°Π·Π²Π°Π½ΠΈΠ΅ связывания. Π‘ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ связываниС ΠΈ различия ΠΌΠ΅ΠΆΠ΄Ρƒ модулями ΠΈ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π°ΠΌΠΈ STREAMS ΠΌΡ‹ рассмотрим нСсколько ΠΏΠΎΠ·ΠΆΠ΅ Π² этой Π³Π»Π°Π²Π΅.

59

БистСма планирования STREAMS ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ собствСнныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ ΠΊ ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ процСссов Π² UNIX.

60

Π‘Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π΅ (ΠΎΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΌ ΠΌΠΎΠ΄ΡƒΠ»Π΅) ΠΏΠΎΡ‚ΠΎΠΊΠ° ΠΈΠ·-Π·Π° занятости устройства. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½Π° ситуация, ΠΊΠΎΠ³Π΄Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π²Ρ‹Π½ΡƒΠΆΠ΄Π΅Π½ ΠΎΡ‚Π»ΠΎΠΆΠΈΡ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ сообщСний Π΄ΠΎ наступлСния Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ события.