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

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

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

Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ namei /* ΠΏΡ€Π΅Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π½ΠΈ ΠΏΡƒΡ‚ΠΈ поиска Π² индСкс */

входная информация: имя ΠΏΡƒΡ‚ΠΈ поиска

выходная информация: Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ индСкс

{

Β if (ΠΏΡƒΡ‚ΡŒ поиска Π±Π΅Ρ€Π΅Ρ‚ Π½Π°Ρ‡Π°Π»ΠΎ с корня)
Β Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ индСкс = индСксу корня (Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ iget);

Β else
Β Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ индСкс = индСксу Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° (Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ iget);

Β do (ΠΏΠΎΠΊΠ° ΠΏΡƒΡ‚ΡŒ поиска Π½Π΅ кончился)
Β {

Β  ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρƒ ΠΈΠΌΠ΅Π½ΠΈ ΠΏΡƒΡ‚ΠΈ поиска;

Β Β ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ соотвСтствиС Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ индСкса ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Ρƒ ΠΈ ΠΏΡ€Π°Π²Π° доступа;

Β Β if (Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ индСкс соотвСтствуСт ΠΊΠΎΡ€Π½ΡŽ ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΠΈΠΌΠ΅Π½ΠΈ Β«..Β»)
Β continue; /* Ρ†ΠΈΠΊΠ» с условиСм продолТСния */

поиск ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹:

Β  ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ (Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ индСкс), повторяя Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ bmap, bread ΠΈ brelse;

Β Β if (ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° соотвСтствуСт записи Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ (Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ индСксС))Β 
{

Β Β  ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π½ΠΎΠΌΠ΅Ρ€ индСкса для совпавшСй ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹;

Β Β Β if (Π½Π°ΠΉΠ΄Π΅Π½Π½Ρ‹ΠΉ индСкс являСтся индСксом корня ΠΈ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ индСкс являСтся индСксом корня ΠΈ имя ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Β«..Β»)Β 
{

Β Β Β  /* пСрСсСчСниС Ρ‚ΠΎΡ‡ΠΊΠΈ монтирования */

Β Β  Β ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ запись Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ монтирования для Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ индСкса;

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

Β  Β  Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ индСкс = индСксу Ρ‚ΠΎΡ‡ΠΊΠΈ монтирования;

Β Β Β  Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ индСкс Ρ‚ΠΎΡ‡ΠΊΠΈ монтирования;

Β Β Β  ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ счСтчика ссылок Π½Π° Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ индСкс;

Β  Β  ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ поиску ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ (для Β«..Β»);

Β Β  }

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

Β Β  Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ индСкс = индСксу с Π½ΠΎΠ²Ρ‹ΠΌ Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ (Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ iget);

Β  }

Β Β else /* ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° отсутствуСт Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ */
Β return (Π½Π΅Ρ‚ индСкса);

Β }

Β return (Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ индСкс);

}

Рисунок 5.26. ΠœΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° синтаксичСского Π°Π½Π°Π»ΠΈΠ·Π° ΠΈΠΌΠ΅Π½ΠΈ Ρ„Π°ΠΉΠ»Π°

Π’ Π²Ρ‹ΡˆΠ΅ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ (cd Β«../../..Β») прСдполагаСтся, Ρ‡Ρ‚ΠΎ Π² Π½Π°Ρ‡Π°Π»Π΅ процСсс ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ с ΠΈΠΌΠ΅Π½Π΅ΠΌ Β«/usr/src/utsΒ». Когда имя ΠΏΡƒΡ‚ΠΈ поиска подвСргаСтся Π°Π½Π°Π»ΠΈΠ·Ρƒ Π² Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ΅ namei, Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΌ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΌ индСксом являСтся индСкс Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°. Π―Π΄Ρ€ΠΎ мСняСт Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ индСкс Π½Π° индСкс ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° с ΠΈΠΌΠ΅Π½Π΅ΠΌ Β«/usr/srcΒ» Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Ρ€Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²ΠΊΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Β«..Β» Π² ΠΈΠΌΠ΅Π½ΠΈ ΠΏΡƒΡ‚ΠΈ поиска. Π—Π°Ρ‚Π΅ΠΌ ядро Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ Π²Ρ‚ΠΎΡ€ΡƒΡŽ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρƒ Β«..Β» Π² ΠΈΠΌΠ΅Π½ΠΈ ΠΏΡƒΡ‚ΠΈ поиска, Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΉ индСкс смонтированной (ΠΏΠ΅Ρ€Π΅Π΄ этим) Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы β€” индСкс ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° Β«usrΒ» β€” ΠΈ Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Π³ΠΎ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΌ индСксом ΠΏΡ€ΠΈ Π°Π½Π°Π»ΠΈΠ·Π΅ ΠΈΠΌΠ΅Π½ΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° namei. НаконСц, ΠΎΠ½ΠΎ Ρ€Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²Ρ‹Π²Π°Π΅Ρ‚ Ρ‚Ρ€Π΅Ρ‚ΡŒΡŽ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρƒ Β«..Β» Π² ΠΈΠΌΠ΅Π½ΠΈ ΠΏΡƒΡ‚ΠΈ поиска. Π―Π΄Ρ€ΠΎ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π½ΠΎΠΌΠ΅Ρ€ индСкса для Β«..Β» совпадаСт с Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠ³ΠΎ индСкса, Ρ€Π°Π±ΠΎΡ‡ΠΈΠΌ индСксом являСтся ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΉ индСкс, Π° Β«..Β» являСтся Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠΉ ΠΈΠΌΠ΅Π½ΠΈ ΠΏΡƒΡ‚ΠΈ поиска. Π―Π΄Ρ€ΠΎ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ запись Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ монтирования, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ Ρ‚ΠΎΡ‡ΠΊΠ΅ монтирования Β«usrΒ», освобоТдаСт Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ индСкс (ΠΊΠΎΡ€Π΅Π½ΡŒ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы, смонтированной Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ Β«usrΒ») ΠΈ Π½Π°Π·Π½Π°Ρ‡Π°Π΅Ρ‚ индСкс Ρ‚ΠΎΡ‡ΠΊΠΈ монтирования (ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° Β«usrΒ» Π² ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΉ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмС) Π² качСствС Π½ΠΎΠ²ΠΎΠ³ΠΎ Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ индСкса. Π—Π°Ρ‚Π΅ΠΌ ΠΎΠ½ΠΎ просматриваСт записи Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ Ρ‚ΠΎΡ‡ΠΊΠΈ монтирования Β«/usrΒ» Π² поисках ΠΈΠΌΠ΅Π½ΠΈ Β«..Β» ΠΈ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ Π½ΠΎΠΌΠ΅Ρ€ индСкса для корня Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы (Β«/Β»). ПослС этого систСмная функция chdir Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ΡΡ ΠΊΠ°ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ, Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ процСсс Π½Π΅ ΠΎΠ±Ρ€Π°Ρ‰Π°Π΅Ρ‚ внимания Π½Π° Ρ‚ΠΎΡ‚ Ρ„Π°ΠΊΡ‚, Ρ‡Ρ‚ΠΎ ΠΎΠ½ пСрСсСк Ρ‚ΠΎΡ‡ΠΊΡƒ монтирования.

5.14.2 Π”Π΅ΠΌΠΎΠ½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы

Бинтаксис Π²Ρ‹Π·ΠΎΠ²Π° систСмной Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ umount:

umount(special filename);

Π³Π΄Π΅ special filename ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π΄Π΅ΠΌΠΎΠ½Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡƒΡŽ Ρ„Π°ΠΉΠ»ΠΎΠ²ΡƒΡŽ систСму. ΠŸΡ€ΠΈ Π΄Π΅ΠΌΠΎΠ½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы (Рисунок 5.27) ядро обращаСтся ΠΊ индСксу Π΄Π΅ΠΌΠΎΠ½Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠ³ΠΎ устройства, восстанавливаСт Π½ΠΎΠΌΠ΅Ρ€ устройства для ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°, освобоТдаСт индСкс (Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ iput) ΠΈ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ монтирования запись с Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ устройства, Ρ€Π°Π²Π½Ρ‹ΠΌ Π½ΠΎΠΌΠ΅Ρ€Ρƒ устройства для ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°. ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ядро Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π΄Π΅ΠΌΠΎΠ½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ Ρ„Π°ΠΉΠ»ΠΎΠ²ΡƒΡŽ систСму, ΠΎΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡƒΠ΄ΠΎΡΡ‚ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π² систСмС Π½Π΅ ΠΎΡΡ‚Π°Π»ΠΎΡΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ², для этого ядро просматриваСт Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ индСксов Π² поисках всСх Ρ„Π°ΠΉΠ»ΠΎΠ², Ρ‡Π΅ΠΉ Π½ΠΎΠΌΠ΅Ρ€ устройства совпадаСт с Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ Π΄Π΅ΠΌΠΎΠ½Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠΉ систСмы. Активным Ρ„Π°ΠΉΠ»Π°ΠΌ соотвСтствуСт ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ счСтчика ссылок ΠΈ Π² ΠΈΡ… число входят Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ процСсса, Ρ„Π°ΠΉΠ»Ρ‹ с раздСляСмым тСкстом, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π² Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ (Π³Π»Π°Π²Π° 7), ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Π΅ ΠΊΠΎΠ³Π΄Π°-Ρ‚ΠΎ Ρ„Π°ΠΉΠ»Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΡ‚ΠΎΠΌ Π½Π΅ Π±Ρ‹Π»ΠΈ Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹. Если ΠΊΠ°ΠΊΠΈΠ΅-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠ· Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹, функция umount Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ΡΡ Π½Π΅ΡƒΠ΄Π°Ρ‡Π½ΠΎ: Ссли Π±Ρ‹ ΠΎΠ½Π° ΠΏΡ€ΠΎΡˆΠ»Π° ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ, Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ сдСлались Π±Ρ‹ нСдоступными.

Π‘ΡƒΡ„Π΅Ρ€Π½Ρ‹ΠΉ ΠΏΡƒΠ» всС Π΅Ρ‰Π΅ содСрТит Π±Π»ΠΎΠΊΠΈ с Β«ΠΎΡ‚Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠΉ записью», Π½Π΅ пСрСписанныС Π½Π° диск, поэтому ядро Β«Π²Ρ‹ΠΌΡ‹Π²Π°Π΅Ρ‚Β» ΠΈΡ… ΠΈΠ· Π±ΡƒΡ„Π΅Ρ€Π½ΠΎΠ³ΠΎ ΠΏΡƒΠ»Π°. Π―Π΄Ρ€ΠΎ удаляСт записи с раздСляСмым тСкстом, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ находятся Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ областСй, Π½ΠΎ Π½Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌΠΈ (подробности Π² Π³Π»Π°Π²Π΅ 7), записываСт Π½Π° диск всС Π½Π΅Π΄Π°Π²Π½ΠΎ скоррСктированныС супСрблоки ΠΈ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚ΠΈΡ€ΡƒΠ΅Ρ‚ дисковыС ΠΊΠΎΠΏΠΈΠΈ всСх индСксов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ этого. Казалось, Π±Ρ‹Π»ΠΎ Π±Ρ‹ достаточно ΠΎΡ‚ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ дисковыС Π±Π»ΠΎΠΊΠΈ, супСрблок ΠΈ индСксы Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Π΄Π΅ΠΌΠΎΠ½Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠΉ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы, ΠΎΠ΄Π½Π°ΠΊΠΎ Π² цСлях сохранСния прССмствСнности ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ядро выполняСт Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹Π΅ дСйствия для всСй систСмы Π² Ρ†Π΅Π»ΠΎΠΌ. Π—Π°Ρ‚Π΅ΠΌ ядро освобоТдаСт ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΉ индСкс ΠΌΠΎΠ½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы, ΡƒΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹ΠΉ с ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ обращСния ΠΊ Π½Π΅ΠΌΡƒ Π²ΠΎ врСмя выполнСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ mount, ΠΈ запускаСт ΠΈΠ· Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π° ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ закрытия устройства, содСрТащСго Ρ„Π°ΠΉΠ»ΠΎΠ²ΡƒΡŽ систСму. ВпослСдствии ядро просматриваСт Π±ΡƒΡ„Π΅Ρ€Ρ‹ Π² Π±ΡƒΡ„Π΅Ρ€Π½ΠΎΠΌ кСшС ΠΈ Π΄Π΅Π»Π°Π΅Ρ‚ Π½Π΅Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ Ρ‚Π΅ ΠΈΠ· Π½ΠΈΡ…, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… находятся Π±Π»ΠΎΠΊΠΈ Π΄Π΅ΠΌΠΎΠ½Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠΉ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы; Π² Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΈΠ· этих Π±Π»ΠΎΠΊΠΎΠ² Π² кСшС большС Π½Π΅Ρ‚ нСобходимости. ДСлая Π±ΡƒΡ„Π΅Ρ€Ρ‹ Π½Π΅Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ, ядро вставляСт ΠΈΡ… Π² Π½Π°Ρ‡Π°Π»ΠΎ списка свободных Π±ΡƒΡ„Π΅Ρ€ΠΎΠ², Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ Π±Π»ΠΎΠΊΠΈ с Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ Π² Π±ΡƒΡ„Π΅Ρ€Π½ΠΎΠΌ кСшС. Π―Π΄Ρ€ΠΎ сбрасываСт Π² индСксС систСмы, Π³Π΄Π΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ ΠΌΠΎΠ½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, Ρ„Π»Π°Π³ Β«Ρ‚ΠΎΡ‡ΠΊΠΈ монтирования», установлСнный Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ mount, ΠΈ освобоТдаСт индСкс. ΠŸΠΎΠΌΠ΅Ρ‚ΠΈΠ² запись Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ монтирования свободной для ΠΎΠ±Ρ‰Π΅Π³ΠΎ использования, функция umount Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ.

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

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

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

{

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