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

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

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

Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ alloc /* Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π±Π»ΠΎΠΊΠ° Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы */

входная информация: Π½ΠΎΠΌΠ΅Ρ€ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы

выходная информация: Π±ΡƒΡ„Π΅Ρ€ для Π½ΠΎΠ²ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ°

{

Β do (ΠΏΠΎΠΊΠ° супСрблок Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½)

Β Β sleep (Π΄ΠΎ Ρ‚ΠΎΠ³ΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π°, ΠΊΠΎΠ³Π΄Π° с супСрблока Π±ΡƒΠ΄Π΅Ρ‚ снята Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ°);

Β ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Π±Π»ΠΎΠΊ ΠΈΠ· списка свободных Π±Π»ΠΎΠΊΠΎΠ² Π² супСрблокС;

Β if (ΠΈΠ· списка ΡƒΠ΄Π°Π»Π΅Π½ послСдний Π±Π»ΠΎΠΊ)
Β {

Β  Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ супСрблок;

Β  ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π±Π»ΠΎΠΊ, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ взятый ΠΈΠ· списка свободных (Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ bread);

Β  ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½ΠΎΠΌΠ΅Ρ€Π° Π±Π»ΠΎΠΊΠΎΠ², хранящиСся Π² Π΄Π°Π½Π½ΠΎΠΌ Π±Π»ΠΎΠΊΠ΅, Π² супСрблок;

Β  ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡ‚ΡŒ Π±Π»ΠΎΡ‡Π½Ρ‹ΠΉ Π±ΡƒΡ„Π΅Ρ€ (Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ brelse);

Β  ΡΠ½ΡΡ‚ΡŒ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΡƒ с супСрблока;

Β  Π²ΠΎΠ·ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ процСссов (послС снятия Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ с супСрблока);

Β }

Β ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π±ΡƒΡ„Π΅Ρ€ для Π±Π»ΠΎΠΊΠ°, ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΈΠ· списка (Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ getblk);

Β ΠΎΠ±Π½ΡƒΠ»ΠΈΡ‚ΡŒ содСрТимоС Π±ΡƒΡ„Π΅Ρ€Π°;

Β ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ ΠΎΠ±Ρ‰Π΅Π΅ число свободных Π±Π»ΠΎΠΊΠΎΠ²;

Β ΠΏΠΎΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ супСрблок ΠΊΠ°ΠΊ Β«ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½Ρ‹ΠΉΒ»;

Β return Π±ΡƒΡ„Π΅Ρ€;

}

Рисунок 4.19. Алгоритм выдСлСния дискового Π±Π»ΠΎΠΊΠ°

Алгоритмы назначСния ΠΈ освобоТдСния индСксов ΠΈ дисковых Π±Π»ΠΎΠΊΠΎΠ² сходятся Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ядро ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ супСрблок Π² качСствС кСша, хранящСго ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ Π½Π° свободныС рСсурсы β€” Π½ΠΎΠΌΠ΅Ρ€Π° Π±Π»ΠΎΠΊΠΎΠ² ΠΈ Π½ΠΎΠΌΠ΅Ρ€Π° индСксов. Оно ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ список Π½ΠΎΠΌΠ΅Ρ€ΠΎΠ² Π±Π»ΠΎΠΊΠΎΠ² с указатСлями, Ρ‚Π°ΠΊΠΎΠΉ, Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Π½ΠΎΠΌΠ΅Ρ€ свободного Π±Π»ΠΎΠΊΠ° Π² Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмС появляСтся Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ элСмСнтС списка, Π½ΠΎ ядро Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ‚Π°ΠΊΠΎΠ³ΠΎ списка для свободных индСксов. Π’ΠΎΠΌΡƒ Π΅ΡΡ‚ΡŒ Ρ‚Ρ€ΠΈ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹.

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

Π‘Π°ΠΌΠ° конструкция дисковых Π±Π»ΠΎΠΊΠΎΠ² Π½Π°Π²ΠΎΠ΄ΠΈΡ‚ Π½Π° ΠΌΡ‹ΡΠ»ΡŒ ΠΎΠ± использовании списков с указатСлями: Π² дисковом Π±Π»ΠΎΠΊΠ΅ Π»Π΅Π³ΠΊΠΎ Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ большиС списки Π½ΠΎΠΌΠ΅Ρ€ΠΎΠ² свободных Π±Π»ΠΎΠΊΠΎΠ². Но индСксы Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ подходящСго мСста для массового хранСния списков Π½ΠΎΠΌΠ΅Ρ€ΠΎΠ² свободных индСксов.

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ ΡΠΊΠ»ΠΎΠ½Π½ΠΎΡΡ‚ΡŒ Ρ‡Π°Ρ‰Π΅ Ρ€Π°ΡΡ…ΠΎΠ΄ΠΎΠ²Π°Ρ‚ΡŒ дисковыС Π±Π»ΠΎΠΊΠΈ, Π½Π΅ΠΆΠ΅Π»ΠΈ индСксы, поэтому каТущССся Π·Π°ΠΏΠ°Π·Π΄Ρ‹Π²Π°Π½ΠΈΠ΅ Π² Ρ€Π°Π±ΠΎΡ‚Π΅ ΠΏΡ€ΠΈ просмотрС диска Π² поисках свободных индСксов Π½Π΅ являСтся Ρ‚Π°ΠΊΠΈΠΌ критичСским, ΠΊΠ°ΠΊ Ссли Π±Ρ‹ ΠΎΠ½ΠΎ ΠΈΠΌΠ΅Π»ΠΎ мСсто ΠΏΡ€ΠΈ поисках свободных дисковых Π±Π»ΠΎΠΊΠΎΠ².

АрхитСктура ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы UNIX (Π›ΠŸ) - pic_30.png

Рисунок 4.20. Π—Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π½ΠΈΠ΅ ΠΈ освобоТдСниС дисковых Π±Π»ΠΎΠΊΠΎΠ²

4.8 Π”Π Π£Π“Π˜Π• ВИПЫ Π€ΠΠ™Π›ΠžΠ’

Π’ систСмС UNIX ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΈ Π΄Π²Π° Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ‚ΠΈΠΏΠ° Ρ„Π°ΠΉΠ»ΠΎΠ²: ΠΊΠ°Π½Π°Π»Ρ‹ ΠΈ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹. Канал, ΠΈΠ½ΠΎΠ³Π΄Π° Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ fifo (сокращСнно ΠΎΡ‚ Β«first-in-first-outΒ» β€” Β«ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ ΠΏΡ€ΠΈΡˆΠ΅Π» β€” ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ Π²Ρ‹ΡˆΠ΅Π»Β»Β β€” ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ обслуТиваСт запросы Π² порядкС поступлСния), отличаСтся ΠΎΡ‚ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ содСрТит Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅: информация, ΠΎΠ΄Π½Π°ΠΆΠ΄Ρ‹ считанная ΠΈΠ· ΠΊΠ°Π½Π°Π»Π°, Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π½Π° вновь. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, информация читаСтся Π² Ρ‚ΠΎΠΌ порядкС, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΠ½Π° Π±Ρ‹Π»Π° записана Π² ΠΊΠ°Π½Π°Π»Π΅, ΠΈ систСма Π½Π΅ допускаСт Π½ΠΈΠΊΠ°ΠΊΠΈΡ… ΠΎΡ‚ΠΊΠ»ΠΎΠ½Π΅Π½ΠΈΠΉ ΠΎΡ‚ Π΄Π°Π½Π½ΠΎΠ³ΠΎ порядка. Бпособ хранСния ядром ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π² ΠΊΠ°Π½Π°Π»Π΅ Π½Π΅ отличаСтся ΠΎΡ‚ способа Π΅Π΅ хранСния Π² ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ здСсь ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π±Π»ΠΎΠΊΠΈ прямой, Π° Π½Π΅ косвСнной, адрСсации. ΠšΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ΅ прСдставлСниС ΠΎ ΠΊΠ°Π½Π°Π»Π°Ρ… ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Π³Π»Π°Π²Π΅.

ПослСдним Ρ‚ΠΈΠΏΠΎΠΌ Ρ„Π°ΠΉΠ»ΠΎΠ² Π² систСмС UNIX ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ относятся ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ устройств Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π° Π±Π»ΠΎΠΊΠ°ΠΌΠΈ ΠΈ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ устройств посимвольного Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π°. Оба ΠΏΠΎΠ΄Ρ‚ΠΈΠΏΠ° ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‚ устройства, ΠΈ поэтому индСксы Ρ‚Π°ΠΊΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ² Π½Π΅ связаны Π½ΠΈ с ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ. ВмСсто этого индСкс содСрТит Π΄Π²Π° Π½ΠΎΠΌΠ΅Ρ€Π° β€” ΡΡ‚Π°Ρ€ΡˆΠΈΠΉ ΠΈ младший Π½ΠΎΠΌΠ΅Ρ€Π° устройства. Π‘Ρ‚Π°Ρ€ΡˆΠΈΠΉ Π½ΠΎΠΌΠ΅Ρ€ устройства ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π΅Π³ΠΎ Ρ‚ΠΈΠΏ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π» ΠΈΠ»ΠΈ диск, Π° младший Π½ΠΎΠΌΠ΅Ρ€ устройства β€” числовой ΠΊΠΎΠ΄, ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ устройство Π² Π³Ρ€ΡƒΠΏΠΏΠ΅ ΠΎΠ΄Π½ΠΎΡ€ΠΎΠ΄Π½Ρ‹Ρ… устройств. Π‘ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ устройств Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π² Π³Π»Π°Π²Π΅ 10.

4.9 Π’Π«Π’ΠžΠ”Π«

ИндСкс прСдставляСт собой структуру Π΄Π°Π½Π½Ρ‹Ρ…, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ Ρ„Π°ΠΉΠ»Π°, Π² Ρ‚ΠΎΠΌ числС располоТСниС ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Ρ„Π°ΠΉΠ»Π° Π½Π° дискС. БущСствуСт Π΄Π²Π΅ разновидности индСкса: копия Π½Π° дискС, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ хранится информация индСкса, ΠΏΠΎΠΊΠ° Ρ„Π°ΠΉΠ» находится Π² Ρ€Π°Π±ΠΎΡ‚Π΅, ΠΈ копия Π² памяти, Π³Π΄Π΅ хранится информация ΠΎΠ± Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»Π°Ρ…. Алгоритмы ialloc ΠΈ ifree ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Ρ„Π°ΠΉΠ»Ρƒ дискового индСкса Π²ΠΎ врСмя выполнСния систСмных ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ creat, mknod, pipe ΠΈ unlink (см. ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ Π³Π»Π°Π²Ρƒ), Π° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ iget ΠΈ iput ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ индСксов Π² памяти Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ обращСния процСсса ΠΊ Ρ„Π°ΠΉΠ»Ρƒ. Алгоритм bmap опрСдСляСт мСстонахоТдСниС дисковых Π±Π»ΠΎΠΊΠΎΠ², ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‰ΠΈΡ… Ρ„Π°ΠΉΠ»Ρƒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ смСщСниС Π² Π±Π°ΠΉΡ‚Π°Ρ… ΠΎΡ‚ Π½Π°Ρ‡Π°Π»Π° Ρ„Π°ΠΉΠ»Π°. ΠšΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой Ρ„Π°ΠΉΠ»Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‚ соотвСтствиС ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ ΠΈΠΌΠ΅Π½ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ Π½ΠΎΠΌΠ΅Ρ€Π°ΠΌΠΈ индСксов. Алгоритм namei ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ ΠΈΠΌΠ΅Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ², с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ процСссы, Π² ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ индСксов, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ядро. НаконСц, ядро управляСт Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Ρ„Π°ΠΉΠ»Ρƒ Π½ΠΎΠ²Ρ‹Ρ… дисковых Π±Π»ΠΎΠΊΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ alloc ΠΈ free.

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

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

4.10 Π£ΠŸΠ ΠΠ–ΠΠ•ΠΠ˜Π―

1.Β Π’ вСрсии V систСмы UNIX Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Π΅Ρ‚ΡΡ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ Π±ΠΎΠ»Π΅Π΅ 14 символов Π½Π° ΠΊΠ°ΠΆΠ΄ΡƒΡŽ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρƒ ΠΈΠΌΠ΅Π½ΠΈ ΠΏΡƒΡ‚ΠΈ поиска. Алгоритм namei отсСкаСт лишниС символы Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π΅. Π§Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π² Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмС ΠΈ Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°Ρ…, Ρ‡Ρ‚ΠΎΠ±Ρ‹ стали допустимыми ΠΈΠΌΠ΅Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹?

2.Β ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ систСмы UNIX, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ ΠΎΠ½ внСс Π² Π½Π΅Π΅ Ρ‚Π°ΠΊΠΈΠ΅ измСнСния, Ρ‡Ρ‚ΠΎ имя ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΡΡ‚ΠΎΡΡ‚ΡŒ ΠΈΠ· 30 символов; закрытая вСрсия систСмы обСспСчиваСт Ρ‚ΠΎΡ‚ ΠΆΠ΅ способ хранСния записСй ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ², ΠΊΠ°ΠΊ ΠΈ стандартная опСрационная систСма, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ записи ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² ΠΈΠΌΠ΅ΡŽΡ‚ Π΄Π»ΠΈΠ½Ρƒ 32 Π±Π°ΠΉΡ‚Π° вмСсто 16. Если ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ смонтируСт Π·Π°ΠΊΡ€Ρ‹Ρ‚ΡƒΡŽ Ρ„Π°ΠΉΠ»ΠΎΠ²ΡƒΡŽ систСму Π² стандартной ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ срСдС, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚ Π²ΠΎ врСмя Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° namei, ΠΊΠΎΠ³Π΄Π° процСсс обратится ΠΊ Ρ„Π°ΠΉΠ»Ρƒ?