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

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

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

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

входная информация: имя ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ Π΄Π΅ΠΌΠΎΠ½Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠΉ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмС

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

{

 if (ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π΅ являСтся ΡΡƒΠΏΠ΅Ρ€ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ) return (ΠΎΡˆΠΈΠ±ΠΊΡƒ);

 ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ индСкс ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° (Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ namei);

 ΠΈΠ·Π²Π»Π΅Ρ‡ΡŒ ΡΡ‚Π°Ρ€ΡˆΠΈΠΉ ΠΈ младший Π½ΠΎΠΌΠ΅Ρ€Π° Π΄Π΅ΠΌΠΎΠ½Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠ³ΠΎ устройства;

 ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ монтирования запись для Π΄Π΅ΠΌΠΎΠ½Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠΉ систСмы, исходя ΠΈΠ· ΡΡ‚Π°Ρ€ΡˆΠ΅Π³ΠΎ ΠΈ младшСго Π½ΠΎΠΌΠ΅Ρ€ΠΎΠ²;

 ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡ‚ΡŒ индСкс ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° (Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ iput);

 ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ областСй записи с раздСляСмым тСкстом для Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‰ΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмС;

 /* Π³Π»Π°Π²Π° 7Ρ…Ρ…Ρ… */

 ΡΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ супСрблок, индСксы, Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Π±ΡƒΡ„Π΅Ρ€Ρ‹ Π½Π° диск;

 if (ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠ· Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы всС Π΅Ρ‰Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ) return (ΠΎΡˆΠΈΠ±ΠΊΡƒ);

 ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ монтирования ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΉ индСкс ΠΌΠΎΠ½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы;

 Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ индСкс;

 ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡ‚ΡŒ индСкс (Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ iput);

 /* iget Π±Ρ‹Π» ΠΏΡ€ΠΈ ΠΌΠΎΠ½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ */

 Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ закрытия для ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ устройства;

 ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π½Π΅Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ (ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ) Π² ΠΏΡƒΠ»Π΅ Π±ΡƒΡ„Π΅Ρ€Ρ‹ ΠΈΠ· Π΄Π΅ΠΌΠΎΠ½Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠΉ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы;

 ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ монтирования индСкс Ρ‚ΠΎΡ‡ΠΊΠΈ монтирования;

 Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ индСкс;

 ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ Ρ„Π»Π°Π³, ΠΏΠΎΠΌΠ΅Ρ‡Π°ΡŽΡ‰ΠΈΠΉ индСкс ΠΊΠ°ΠΊ Β«Ρ‚ΠΎΡ‡ΠΊΡƒ монтирования»;

 ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡ‚ΡŒ индСкс (Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ iput);

 /* iget Π±Ρ‹Π» ΠΏΡ€ΠΈ ΠΌΠΎΠ½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ */

 ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡ‚ΡŒ Π±ΡƒΡ„Π΅Ρ€, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ ΠΏΠΎΠ΄ супСрблок;

 ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡ‚ΡŒ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ монтирования мСсто, занятоС Ρ€Π°Π½Π΅Π΅;

}

Рисунок 5.27. Алгоритм дСмонтирования Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы



Рисунок 5.28. Π€Π°ΠΉΠ»Ρ‹ Π² Π΄Π΅Ρ€Π΅Π²Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы, связанныС с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ link

5.15 LINК

БистСмная функция link связываСт Ρ„Π°ΠΉΠ» с Π½ΠΎΠ²Ρ‹ΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ Π² структурС ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы, создавая для ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ индСкса Π½ΠΎΠ²ΡƒΡŽ запись Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅. Бинтаксис Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ link:


link(source file name, target file name);


Π³Π΄Π΅ source file name β€” ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ имя Ρ„Π°ΠΉΠ»Π°, Π° target file name β€” Π½ΠΎΠ²ΠΎΠ΅ (Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅) имя, присваиваСмоС Ρ„Π°ΠΉΠ»Ρƒ послС выполнСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ link. Ѐайловая систСма Ρ…Ρ€Π°Π½ΠΈΡ‚ имя ΠΏΡƒΡ‚ΠΈ поиска для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ связи, ΠΈΠΌΠ΅ΡŽΡ‰Π΅ΠΉΡΡ Ρƒ Ρ„Π°ΠΉΠ»Π°, ΠΈ процСссы ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ Ρ„Π°ΠΉΠ»Ρƒ ΠΏΠΎ Π»ΡŽΠ±ΠΎΠΌΡƒ ΠΈΠ· этих ΠΈΠΌΠ΅Π½. Π―Π΄Ρ€ΠΎ Π½Π΅ Π·Π½Π°Π΅Ρ‚, ΠΊΠ°ΠΊΠΎΠ΅ ΠΈΠ· ΠΈΠΌΠ΅Π½ Ρ„Π°ΠΉΠ»Π° являСтся Π΅Π³ΠΎ ΠΏΠΎΠ΄Π»ΠΈΠ½Π½Ρ‹ΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ, поэтому имя Ρ„Π°ΠΉΠ»Π° ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ Π½Π΅ обрабатываСтся. НапримСр, послС выполнСния Π½Π°Π±ΠΎΡ€Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ:

link("/usr/src/uts/sys", "/usr/include/sys");

link("/usr/include/realfile.h", "/usr/src/uts/sys/testfile.h");

Π½Π° ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ Ρ„Π°ΠΉΠ» Π±ΡƒΠ΄ΡƒΡ‚ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Ρ‚Ρ€ΠΈ ΠΈΠΌΠ΅Π½ΠΈ ΠΏΡƒΡ‚ΠΈ поиска: Β«/usr/src/uts/sys/testfile.hΒ», Β«/usr/include/sys/testfile.hΒ» ΠΈ Β«/usr/include/realfileΒ» (см. Рисунок 5.28).

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


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

входная информация:

 ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ имя Ρ„Π°ΠΉΠ»Π°

 Π½ΠΎΠ²ΠΎΠ΅ имя Ρ„Π°ΠΉΠ»Π°

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

{

 ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ индСкс для ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ Ρ„Π°ΠΉΠ»Π° (Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ namei);

 if (Ρƒ Ρ„Π°ΠΉΠ»Π° слишком ΠΌΠ½ΠΎΠ³ΠΎ связСй ΠΈΠ»ΠΈ производится связываниС ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° Π±Π΅Π· Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΡΡƒΠΏΠ΅Ρ€ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ) {

  ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡ‚ΡŒ индСкс (Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ iput);

  return (ΠΎΡˆΠΈΠ±ΠΊΡƒ);

 }

 ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ счСтчика связСй Π² индСксС;

 ΠΎΡ‚ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄ΠΈΡΠΊΠΎΠ²ΡƒΡŽ копию индСкса;

 ΡΠ½ΡΡ‚ΡŒ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΡƒ с индСкса;

 ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ индСкс Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° для Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ Ρ„Π°ΠΉΠ»Π° (Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ namei);

 if (Ρ„Π°ΠΉΠ» с Π½ΠΎΠ²Ρ‹ΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΡƒΠΆΠ΅ сущСствуСт ΠΈΠ»ΠΈ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Ρ„Π°ΠΉΠ» ΠΈ Π½ΠΎΠ²Ρ‹ΠΉ Ρ„Π°ΠΉΠ» находятся Π² Ρ€Π°Π·Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Ρ… систСмах) {

  ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²ΠΊΡƒ, ΡΠ΄Π΅Π»Π°Π½Π½ΡƒΡŽ Π²Ρ‹ΡˆΠ΅;

  return (ΠΎΡˆΠΈΠ±ΠΊΡƒ);

 }

 ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ запись Π² Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ для Ρ„Π°ΠΉΠ»Π° с Π½ΠΎΠ²Ρ‹ΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ;

 Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π² Π½Π΅Π΅ Π½ΠΎΠ²ΠΎΠ΅ имя ΠΈ Π½ΠΎΠΌΠ΅Ρ€ индСкса ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ Ρ„Π°ΠΉΠ»Π°;

 ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡ‚ΡŒ индСкс Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° (Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ iput);

 ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡ‚ΡŒ индСкс ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ Ρ„Π°ΠΉΠ»Π° (Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ iput);

}

Рисунок 5.29. Алгоритм связывания Ρ„Π°ΠΉΠ»ΠΎΠ²


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

НапримСр, выполняя Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, Π²Ρ‹Π·Π²Π°Π½Π½ΡƒΡŽ ΠΊΠ°ΠΊ:

link("source", "/dir/target");

ядро ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ²Π°Π΅Ρ‚ индСкс для Ρ„Π°ΠΉΠ»Π° Β«sourceΒ», ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ Π² Π½Π΅ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ счСтчика связСй, Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ‚ Π½ΠΎΠΌΠ΅Ρ€ индСкса, скаТСм 74, ΠΈ снимаСт с индСкса Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΡƒ. Π―Π΄Ρ€ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ индСкс ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° Β«dirΒ», ΡΠ²Π»ΡΡŽΡ‰Π΅Π³ΠΎΡΡ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠΌ для Ρ„Π°ΠΉΠ»Π° Β«targetΒ», ΠΈΡ‰Π΅Ρ‚ свободноС мСсто Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ Β«dirΒ» ΠΈ записываСт Π² Π½Π΅Π³ΠΎ имя Ρ„Π°ΠΉΠ»Π° Β«targetΒ» ΠΈ Π½ΠΎΠΌΠ΅Ρ€ индСкса 74. По ΠΎΠΊΠΎΠ½Ρ‡Π°Π½ΠΈΠΈ этих дСйствий ΠΎΠ½ΠΎ освобоТдаСт индСкс Ρ„Π°ΠΉΠ»Π° Β«sourceΒ» ΠΏΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡƒ iput. Если Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ счСтчика связСй Ρ„Π°ΠΉΠ»Π° Β«sourceΒ» Ρ€Π°Π½ΡŒΡˆΠ΅ Π±Ρ‹Π»ΠΎ Ρ€Π°Π²Π½ΠΎ 1, Ρ‚ΠΎ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΠ½ΠΎ Ρ€Π°Π²Π½ΠΎ 2.

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

процСсс A: link("a/b/c/d", "e/f/g");

процСсс B: link("e/f", "a/b/c/d/ee");

зашли Π±Ρ‹ Π² Ρ‚ΡƒΠΏΠΈΠΊ (взаимная Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ°). ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ процСсс A ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ» индСкс Ρ„Π°ΠΉΠ»Π° Β«a/b/c/dΒ» Π² Ρ‚ΠΎΡ‚ самый ΠΌΠΎΠΌΠ΅Π½Ρ‚, ΠΊΠΎΠ³Π΄Π° процСсс B ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ» индСкс Ρ„Π°ΠΉΠ»Π° Β«e/fΒ». Π€Ρ€Π°Π·Π° Β«Π² Ρ‚ΠΎΡ‚ ΠΆΠ΅ самый ΠΌΠΎΠΌΠ΅Π½Ρ‚Β» ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ систСмой достигнуто состояниС, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ процСсс ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ» искомый индСкс. (Рисунок 5.30 ΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ стадии выполнСния процСссов.) Когда ΠΆΠ΅ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ процСсс A попытаСтся ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ индСкс Ρ„Π°ΠΉΠ»Π° Β«e/fΒ», ΠΎΠ½ приостановит своС Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° индСкс Ρ„Π°ΠΉΠ»Π° Β«fΒ» Π½Π΅ освободится. Π’ Ρ‚ΠΎ ΠΆΠ΅ врСмя процСсс B пытаСтся ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ индСкс ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° Β«a/b/c/dΒ» ΠΈ приостанавливаСтся Π² ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠΈ освобоТдСния индСкса Ρ„Π°ΠΉΠ»Π° Β«dΒ». ΠŸΡ€ΠΎΡ†Π΅ΡΡ A Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ индСкс, Π½ΡƒΠΆΠ½Ρ‹ΠΉ процСссу B, Π° процСсс B, Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ индСкс, Π½ΡƒΠΆΠ½Ρ‹ΠΉ процСссу A. На ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ этот классичСский ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π²Π·Π°ΠΈΠΌΠ½ΠΎΠΉ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ благодаря Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ядро освобоТдаСт индСкс исходного Ρ„Π°ΠΉΠ»Π° послС увСличСния значСния счСтчика связСй. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΈΠ· рСсурсов (индСкс) свободСн ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΈ ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ рСсурсу, взаимная Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° Π½Π΅ происходит.

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, ΠΊΠ°ΠΊ Π΄Π²Π° процСсса ΠΌΠΎΠ³ΡƒΡ‚ Π·Π°ΠΉΡ‚ΠΈ Π² Ρ‚ΡƒΠΏΠΈΠΊ, Ссли с индСкса Π½Π΅ Π±Ρ‹Π»Π° снята Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ°. ΠžΠ΄ΠΈΠ½ΠΎΡ‡Π½Ρ‹ΠΉ процСсс ΠΌΠΎΠΆΠ΅Ρ‚ Ρ‚Π°ΠΊΠΆΠ΅ Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ самого сСбя. Если ΠΎΠ½ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ:

link("a/b/c", "a/b/c/d");

Ρ‚ΠΎ Π² Π½Π°Ρ‡Π°Π»Π΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° ΠΎΠ½ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ индСкс для Ρ„Π°ΠΉΠ»Π° Β«cΒ»; Ссли Π±Ρ‹ ядро Π½Π΅ снимало Π±Ρ‹ с индСкса Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΡƒ, процСсс зашСл Π±Ρ‹ Π² Ρ‚ΡƒΠΏΠΈΠΊ, запросив индСкс Β«cΒ» ΠΏΡ€ΠΈ поискС Ρ„Π°ΠΉΠ»Π° Β«dΒ». Если Π±Ρ‹ Π΄Π²Π° процСсса, ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ ΠΎΠ΄ΠΈΠ½ процСсс, Π½Π΅ ΠΌΠΎΠ³Π»ΠΈ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ‚ΡŒ своС Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΈΠ·-Π·Π° Π²Π·Π°ΠΈΠΌΠ½ΠΎΠΉ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ (ΠΈΠ»ΠΈ самоблокировки), Ρ‡Ρ‚ΠΎ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ Π±Ρ‹ Π² систСмС? ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ индСксы ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ‚Π΅ΠΌΠΈ рСсурсами, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ систСмой Π·Π° ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ΅ врСмя, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ сигнала Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΎΠΉ возобновлСния процСссом своСй Ρ€Π°Π±ΠΎΡ‚Ρ‹ (Π³Π»Π°Π²Π° 7). Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, систСма Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΠΉΡ‚ΠΈ ΠΈΠ· Ρ‚ΡƒΠΏΠΈΠΊΠ° Π±Π΅Π· ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ. Если ΠΊ Ρ„Π°ΠΉΠ»Π°ΠΌ, Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ процСссами, Π½Π΅Ρ‚ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΉ со стороны Π΄Ρ€ΡƒΠ³ΠΈΡ… процСссов, взаимная Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° Π½Π΅ Π·Π°Ρ‚Ρ€Π°Π³ΠΈΠ²Π°Π΅Ρ‚ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ процСссы Π² систСмС. Однако, Π»ΡŽΠ±Ρ‹Π΅ процСссы, ΠΎΠ±Ρ€Π°Ρ‚ΠΈΠ²ΡˆΠΈΠ΅ΡΡ ΠΊ этим Ρ„Π°ΠΉΠ»Π°ΠΌ (ΠΈΠ»ΠΈ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΠ²ΡˆΠΈΠ΅ΡΡ ΠΊ Π΄Ρ€ΡƒΠ³ΠΈΠΌ Ρ„Π°ΠΉΠ»Π°ΠΌ Ρ‡Π΅Ρ€Π΅Π· Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³), Π½Π΅ΠΏΡ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π·Π°ΠΉΠ΄ΡƒΡ‚ Π² Ρ‚ΡƒΠΏΠΈΠΊ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ссли Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ Ρ„Π°ΠΉΠ»Ρ‹ Β«/binΒ» ΠΈΠ»ΠΈ Β«/usr/binΒ» (ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° ΠΊΠΎΠΌΠ°Π½Π΄) ΠΈΠ»ΠΈ Ρ„Π°ΠΉΠ» Β«/bin/shΒ» (ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹ΠΉ процСссор shell), послСдствия для систСмы Π±ΡƒΠ΄ΡƒΡ‚ Π³ΠΈΠ±Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ.