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

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

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

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

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

Рисунок 4.6. Π‘Π»ΠΎΠΊΠΈ прямой ΠΈ косвСнной адрСсации Π² индСксС

10 Π±Π»ΠΎΠΊΠΎΠ² прямой адрСсации ΠΏΠΎ 1 ΠšΠ±Π°ΠΉΡ‚Ρƒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ = 10 ΠšΠ±Π°ΠΉΡ‚

1 Π±Π»ΠΎΠΊ косвСнной адрСсации с 256 Π±Π»ΠΎΠΊΠ°ΠΌΠΈ прямой адрСсации = 256 ΠšΠ±Π°ΠΉΡ‚

1 Π±Π»ΠΎΠΊ Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ косвСнной адрСсации с 256 Π±Π»ΠΎΠΊΠ°ΠΌΠΈ косвСнной адрСсации = 64 ΠœΠ±Π°ΠΉΡ‚Π°

1 Π±Π»ΠΎΠΊ Ρ‚Ρ€ΠΎΠΉΠ½ΠΎΠΉ косвСнной адрСсации с 256 Π±Π»ΠΎΠΊΠ°ΠΌΠΈ Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ косвСнной адрСсации = 16 Π“Π±Π°ΠΉΡ‚

Рисунок 4.7. ОбъСм Ρ„Π°ΠΉΠ»Π° Π² Π±Π°ΠΉΡ‚Π°Ρ… ΠΏΡ€ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€Π΅ Π±Π»ΠΎΠΊΠ° 1 ΠšΠ±Π°ΠΉΡ‚

Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ bmap /* ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ адрСса смСщСния Π² Π±Π°ΠΉΡ‚Π°Ρ… ΠΎΡ‚ Π½Π°Ρ‡Π°Π»Π° логичСского Ρ„Π°ΠΉΠ»Π° Π½Π° адрСс Π±Π»ΠΎΠΊΠ° Π² Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмС */

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

 (1) индСкс

Β (2) смСщСниС Π² Π±Π°ΠΉΡ‚Π°Ρ…

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

Β (1) Π½ΠΎΠΌΠ΅Ρ€ Π±Π»ΠΎΠΊΠ° Π² Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмС

Β (2) смСщСниС Π² Π±Π°ΠΉΡ‚Π°Ρ… Π²Π½ΡƒΡ‚Ρ€ΠΈ Π±Π»ΠΎΠΊΠ°

Β (3) число Π±Π°ΠΉΡ‚ Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π° Π² Π±Π»ΠΎΠΊ

Β (4) Π½ΠΎΠΌΠ΅Ρ€ Π±Π»ΠΎΠΊΠ° с ΠΏΡ€ΠΎΠ΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ΠΌ

{

Β Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ Π½ΠΎΠΌΠ΅Ρ€ логичСского Π±Π»ΠΎΠΊΠ° Π² Ρ„Π°ΠΉΠ»Π΅ исходя ΠΈΠ· Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ смСщСния Π² Π±Π°ΠΉΡ‚Π°Ρ…;

Β Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ Π½ΠΎΠΌΠ΅Ρ€ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π±Π°ΠΉΡ‚Π° Π² Π±Π»ΠΎΠΊΠ΅ для Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π°; /* выходная информация 2 */

Β Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ количСство Π±Π°ΠΉΡ‚ для копирования ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ; /* выходная информация 3 */

Β ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ чтСния с ΠΏΡ€ΠΎΠ΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ΠΌ, ΠΏΠΎΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ индСкс; /* выходная информация 4 */

Β ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ косвСнности;

Β do (ΠΏΠΎΠΊΠ° ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ косвСнности Π΄Ρ€ΡƒΠ³ΠΎΠΉ)
Β {

Β  ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π² индСксС ΠΈΠ»ΠΈ Π±Π»ΠΎΠΊ косвСнной адрСсации исходя ΠΈΠ· Π½ΠΎΠΌΠ΅Ρ€Π° логичСского Π±Π»ΠΎΠΊΠ° Π² Ρ„Π°ΠΉΠ»Π΅;

Β  ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π½ΠΎΠΌΠ΅Ρ€ дискового Π±Π»ΠΎΠΊΠ° ΠΈΠ· индСкса ΠΈΠ»ΠΈ ΠΈΠ· Π±Π»ΠΎΠΊΠ° косвСнной адрСсации;

Β  ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡ‚ΡŒ Π±ΡƒΡ„Π΅Ρ€ ΠΎΡ‚ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Ρ… Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ выполнСния ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ чтСния с диска (Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ brelse);

Β Β if (число ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ косвСнности исчСрпано)
Β return (Π½ΠΎΠΌΠ΅Ρ€ Π±Π»ΠΎΠΊΠ°);

Β Β ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ дисковый Π±Π»ΠΎΠΊ косвСнной адрСсации (Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ bread);

Β Β ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π½ΠΎΠΌΠ΅Ρ€ логичСского Π±Π»ΠΎΠΊΠ° Π² Ρ„Π°ΠΉΠ»Π΅ исходя ΠΈΠ· уровня косвСнности;

Β }

}

Рисунок 4.8. ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ адрСса смСщСния Π² Π½ΠΎΠΌΠ΅Ρ€ Π±Π»ΠΎΠΊΠ° Π² Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмС

Рассмотрим Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Ρ„Π°ΠΉΠ»Π° Π² Π±Π»ΠΎΠΊΠ°Ρ… (Рисунок 4.9) ΠΈ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ дисковый Π±Π»ΠΎΠΊ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ 1024 Π±Π°ΠΉΡ‚Π°. Если процСссу Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ Π±Π°ΠΉΡ‚Ρƒ, ΠΈΠΌΠ΅ΡŽΡ‰Π΅ΠΌΡƒ смСщСниС ΠΎΡ‚ Π½Π°Ρ‡Π°Π»Π° Ρ„Π°ΠΉΠ»Π°, Ρ€Π°Π²Π½ΠΎΠ΅ 9000, Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ вычислСний ядро ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚ ΠΊ Π²Ρ‹Π²ΠΎΠ΄Ρƒ, Ρ‡Ρ‚ΠΎ этот Π±Π°ΠΉΡ‚ располагаСтся Π² Π±Π»ΠΎΠΊΠ΅ прямой адрСсации с Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ 8 (начиная с 0). Π—Π°Ρ‚Π΅ΠΌ ядро обращаСтся ΠΊ Π±Π»ΠΎΠΊΡƒ с Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ 367; 808-ΠΉ Π±Π°ΠΉΡ‚ Π² этом Π±Π»ΠΎΠΊΠ΅ (Ссли вСсти отсчСт с 0) ΠΈ являСтся 9000-ΠΌ Π±Π°ΠΉΡ‚ΠΎΠΌ Π² Ρ„Π°ΠΉΠ»Π΅. Если процСссу Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΏΠΎ адрСсу, ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡƒ смСщСниСм 350000 Π±Π°ΠΉΡ‚ ΠΎΡ‚ Π½Π°Ρ‡Π°Π»Π° Ρ„Π°ΠΉΠ»Π°, ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π±Π»ΠΎΠΊ Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ косвСнной адрСсации, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π° рисункС ΠΈΠΌΠ΅Π΅Ρ‚ Π½ΠΎΠΌΠ΅Ρ€ 9156. Π’Π°ΠΊ ΠΊΠ°ΠΊ Π±Π»ΠΎΠΊ косвСнной адрСсации ΠΈΠΌΠ΅Π΅Ρ‚ мСсто для 256 Π½ΠΎΠΌΠ΅Ρ€ΠΎΠ² Π±Π»ΠΎΠΊΠΎΠ², ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ Π±Π°ΠΉΡ‚ΠΎΠΌ, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ доступ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ обращСния ΠΊ Π±Π»ΠΎΠΊΡƒ Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ косвСнной адрСсации, Π±ΡƒΠ΄Π΅Ρ‚ Π±Π°ΠΉΡ‚ с Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ 272384 (256К + 10К); Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π±Π°ΠΉΡ‚ с Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ 350000 Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π² Π±Π»ΠΎΠΊΠ΅ Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ косвСнной адрСсации Π½ΠΎΠΌΠ΅Ρ€ 77616. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Π±Π»ΠΎΠΊ ΠΎΠ΄ΠΈΠ½Π°Ρ€Π½ΠΎΠΉ косвСнной адрСсации позволяСт ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ 256 ΠšΠ±Π°ΠΉΡ‚Π°ΠΌ, Π±Π°ΠΉΡ‚ с Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ 350000 Π΄ΠΎΠ»ΠΆΠ΅Π½ Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒΡΡ Π² Π½ΡƒΠ»Π΅Π²ΠΎΠΌ Π±Π»ΠΎΠΊΠ΅ ΠΎΠ΄ΠΈΠ½Π°Ρ€Π½ΠΎΠΉ косвСнной адрСсации для Π±Π»ΠΎΠΊΠ° Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ косвСнной адрСсации, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ Π² Π±Π»ΠΎΠΊΠ΅ 331. Π’Π°ΠΊ ΠΊΠ°ΠΊ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π±Π»ΠΎΠΊΠ΅ прямой адрСсации для Π±Π»ΠΎΠΊΠ° ΠΎΠ΄ΠΈΠ½Π°Ρ€Π½ΠΎΠΉ косвСнной адрСсации хранится 1 ΠšΠ±Π°ΠΉΡ‚, Π±Π°ΠΉΡ‚ с Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ 77616 находится Π² 75-ΠΌ Π±Π»ΠΎΠΊΠ΅ прямой адрСсации для Π±Π»ΠΎΠΊΠ° ΠΎΠ΄ΠΈΠ½Π°Ρ€Π½ΠΎΠΉ косвСнной адрСсации, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ Π² Π±Π»ΠΎΠΊΠ΅ 3333. НаконСц, Π±Π°ΠΉΡ‚ с Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ Π² Ρ„Π°ΠΉΠ»Π΅ 350000 ΠΈΠΌΠ΅Π΅Ρ‚ Π² Π±Π»ΠΎΠΊΠ΅ 3333 Π½ΠΎΠΌΠ΅Ρ€ 816.

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

Рисунок 4.9. Π Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ Π±Π»ΠΎΠΊΠΎΠ² Π² Ρ„Π°ΠΉΠ»Π΅ ΠΈ Π΅Π³ΠΎ индСксС

ΠŸΡ€ΠΈ блиТайшСм рассмотрСнии Рисунка 4.9 обнаруТиваСтся, Ρ‡Ρ‚ΠΎ нСсколько Π²Ρ…ΠΎΠ΄ΠΎΠ² для Π±Π»ΠΎΠΊΠ° Π² индСксС ΠΈΠΌΠ΅ΡŽΡ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 0 ΠΈ это Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ Π² Π΄Π°Π½Π½Ρ‹Ρ… записях информация ΠΎ логичСских Π±Π»ΠΎΠΊΠ°Ρ… отсутствуСт. Π’Π°ΠΊΠΎΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚ мСсто, Ссли Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Π±Π»ΠΎΠΊΠΈ Ρ„Π°ΠΉΠ»Π° Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π·Π°ΠΏΠΈΡΡ‹Π²Π°Π»Π°ΡΡŒ информация ΠΈ ΠΏΠΎ этой ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅ Ρƒ Π½ΠΎΠΌΠ΅Ρ€ΠΎΠ² Π±Π»ΠΎΠΊΠΎΠ² ΠΎΡΡ‚Π°Π»ΠΈΡΡŒ ΠΈΡ… ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Π΅ Π½ΡƒΠ»Π΅Π²Ρ‹Π΅ значСния. Для Ρ‚Π°ΠΊΠΈΡ… Π±Π»ΠΎΠΊΠΎΠ² пространство Π½Π° дискС Π½Π΅ выдСляСтся. ПодобноС располоТСниС Π±Π»ΠΎΠΊΠΎΠ² Π² Ρ„Π°ΠΉΠ»Π΅ вызываСтся процСссами, Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‰ΠΈΠΌΠΈ систСмныС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ lseek ΠΈ write (см. ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ Π³Π»Π°Π²Ρƒ). Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Π³Π»Π°Π²Π΅ Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠ±ΡŠΡΡΠ½ΡΠ΅Ρ‚ΡΡ, ΠΊΠ°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ядро ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ систСмныС Π²Ρ‹Π·ΠΎΠ²Ρ‹ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ read, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ производится ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ Π±Π»ΠΎΠΊΠ°ΠΌ.

ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ адрСсов с большими смСщСниями, Π² частности с использованиСм Π±Π»ΠΎΠΊΠΎΠ² Ρ‚Ρ€ΠΎΠΉΠ½ΠΎΠΉ косвСнной адрСсации, являСтся слоТной ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ΠΎΠΉ, Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰Π΅ΠΉ ΠΎΡ‚ ядра обращСния ΡƒΠΆΠ΅ ΠΊ Ρ‚Ρ€Π΅ΠΌ дисковым Π±Π»ΠΎΠΊΠ°ΠΌ Π² Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ индСксу ΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΌΡƒ Π±Π»ΠΎΠΊΡƒ. Π”Π°ΠΆΠ΅ Ссли ядро ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚ Π±Π»ΠΎΠΊΠΈ Π² Π±ΡƒΡ„Π΅Ρ€Π½ΠΎΠΌ кСшС, опСрация останСтся дорогостоящСй, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ядру придСтся ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ Π±ΡƒΡ„Π΅Ρ€Π½ΠΎΠΌΡƒ ΠΊΠ΅ΡˆΡƒ ΠΈ ΠΏΡ€ΠΈΠΎΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ свою Ρ€Π°Π±ΠΎΡ‚Ρƒ Π² ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠΈ снятия Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ с Π±ΡƒΡ„Π΅Ρ€ΠΎΠ². Насколько эффСктивСн этот Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅? Π­Ρ‚ΠΎ зависит ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ систСма, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΊΡ‚ΠΎ являСтся ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ ΠΈ ΠΊΠ°ΠΊΠΎΠ² состав Π·Π°Π΄Π°Ρ‡, Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΎΡΡ‚ΡŒ Π² Π±ΠΎΠ»Π΅Π΅ частом ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΈ ΠΊ большим ΠΈΠ»ΠΈ, Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚, малСньким Ρ„Π°ΠΉΠ»Π°ΠΌ. Однако, ΠΊΠ°ΠΊ ΡƒΠΆΠ΅ Π±Ρ‹Π»ΠΎ Π·Π°ΠΌΠ΅Ρ‡Π΅Π½ΠΎ [Mullender 84], Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Ρ„Π°ΠΉΠ»ΠΎΠ² Π² систСмС UNIX ΠΈΠΌΠ΅Π΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€, Π½Π΅ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°ΡŽΡ‰ΠΈΠΉ 10 ΠšΠ±Π°ΠΉΡ‚ ΠΈ Π΄Π°ΠΆΠ΅ 1 ΠšΠ±Π°ΠΉΡ‚Π°! [11] ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ 10 ΠšΠ±Π°ΠΉΡ‚ Ρ„Π°ΠΉΠ»Π° Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‚ΡΡ Π² Π±Π»ΠΎΠΊΠ°Ρ… прямой адрСсации, ΠΊ большСй части Π΄Π°Π½Π½Ρ‹Ρ…, хранящихся Π² Ρ„Π°ΠΉΠ»Π°Ρ…, доступ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π·Π° ΠΎΠ΄Π½ΠΎ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ диску. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ обращСния ΠΊ большим Ρ„Π°ΠΉΠ»Π°ΠΌ, Ρ€Π°Π±ΠΎΡ‚Π° с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ стандартного Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΏΡ€ΠΎΡ‚Π΅ΠΊΠ°Π΅Ρ‚ быстро.

Π’ Π΄Π²ΡƒΡ… модификациях Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ описанной структуры индСкса прСдпринимаСтся ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€Π½Ρ‹Π΅ характСристики Ρ„Π°ΠΉΠ»Π°. Основной ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ Π² Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы BSD 4.2 [McKusick 84] состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Ρ‡Π΅ΠΌ большС объСм Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ядро ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ Π·Π° ΠΎΠ΄Π½ΠΎ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ диску, Ρ‚Π΅ΠΌ быстрСС ΠΏΡ€ΠΎΡ‚Π΅ΠΊΠ°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π° с Ρ„Π°ΠΉΠ»ΠΎΠΌ. Π­Ρ‚ΠΎ ΡΠ²ΠΈΠ΄Π΅Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΡƒΠ΅Ρ‚ Π² ΠΏΠΎΠ»ΡŒΠ·Ρƒ увСличСния Ρ€Π°Π·ΠΌΠ΅Ρ€Π° логичСского Π±Π»ΠΎΠΊΠ° Π½Π° дискС, поэтому Π² систСмС BSD Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Π΅Ρ‚ΡΡ ΠΈΠΌΠ΅Ρ‚ΡŒ логичСскиС Π±Π»ΠΎΠΊΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ 4 ΠΈΠ»ΠΈ 8 ΠšΠ±Π°ΠΉΡ‚. Однако, ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Π±Π»ΠΎΠΊΠΎΠ² Π½Π° дискС ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΡŽ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ Π±Π»ΠΎΠΊΠΎΠ², ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ участки дискового пространства ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ Π½Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΌΠΈ. НапримСр, Ссли Ρ€Π°Π·ΠΌΠ΅Ρ€ логичСского Π±Π»ΠΎΠΊΠ° 8 ΠšΠ±Π°ΠΉΡ‚, Ρ‚ΠΎΠ³Π΄Π° Ρ„Π°ΠΉΠ» Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ 12 ΠšΠ±Π°ΠΉΡ‚ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ 1 ΠΏΠΎΠ»Π½Ρ‹ΠΉ Π±Π»ΠΎΠΊ ΠΈ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Ρƒ Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ°. Другая ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π° Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° (4 ΠšΠ±Π°ΠΉΡ‚Π°) фактичСски тСряСтся; Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρ‹ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π΅ для хранСния Π΄Π°Π½Π½Ρ‹Ρ…. Если Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ Ρ„Π°ΠΉΠ»ΠΎΠ² Ρ‚Π°ΠΊΠΎΠ²Ρ‹, Ρ‡Ρ‚ΠΎ число Π±Π°ΠΉΡ‚, ΠΏΠΎΠΏΠ°Π²ΡˆΠΈΡ… Π² послСдний Π±Π»ΠΎΠΊ, являСтся Ρ€Π°Π²Π½ΠΎΠΌΠ΅Ρ€Π½ΠΎ распрСдСлСнной Π²Π΅Π»ΠΈΡ‡ΠΈΠ½ΠΎΠΉ, Ρ‚ΠΎ срСдниС ΠΏΠΎΡ‚Π΅Ρ€ΠΈ дискового пространства ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ ΠΏΠΎΠ»Π±Π»ΠΎΠΊΠ° Π½Π° ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ„Π°ΠΉΠ»; объСм тСряСмого дискового пространства достигаСт Π² Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмС с логичСскими Π±Π»ΠΎΠΊΠ°ΠΌΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ 4 ΠšΠ±Π°ΠΉΡ‚Π° 45% [McKusick 84]. Π’Ρ‹Ρ…ΠΎΠ΄ ΠΈΠ· этой ситуации Π² систСмС BSD состоит Π² Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ части Π±Π»ΠΎΠΊΠ° (Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°) для размСщСния ΠΎΡΡ‚Π°Π²ΡˆΠ΅ΠΉΡΡ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Ρ„Π°ΠΉΠ»Π°. Один дисковый Π±Π»ΠΎΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π² сСбя Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹, ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‰ΠΈΠ΅ нСскольким Ρ„Π°ΠΉΠ»Π°ΠΌ. НСкоторыС подробности этой Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈΡΡΠ»Π΅Π΄ΡƒΡŽΡ‚ΡΡ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ упраТнСния Π² Π³Π»Π°Π²Π΅ 5.