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

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

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

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

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

Рисунок 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, ΠΊΠΎΠ³Π΄Π° процСсс обратится ΠΊ Ρ„Π°ΠΉΠ»Ρƒ?

*3. Рассмотрим Ρ€Π°Π±ΠΎΡ‚Ρƒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° namei ΠΏΠΎ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΡŽ ΠΈΠΌΠ΅Π½ΠΈ ΠΏΡƒΡ‚ΠΈ поиска Π² ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ индСкса. Π’ Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ всСго просмотра ядро провСряСт соотвСтствиС Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ индСкса индСксу ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°. ΠœΠΎΠΆΠ΅Ρ‚ Π»ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠΉ процСсс ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ (unlink) ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³? Каким ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ядро ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π°Π΅Ρ‚ Ρ‚Π°ΠΊΠΈΠ΅ дСйствия? Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Π³Π»Π°Π²Π΅ ΠΌΡ‹ вСрнСмся ΠΊ этой ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ΅.

*4. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°ΠΉΡ‚Π΅ структуру ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°, ΠΏΠΎΠ²Ρ‹ΡˆΠ°ΡŽΡ‰ΡƒΡŽ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ поиска ΠΈΠΌΠ΅Π½ Ρ„Π°ΠΉΠ»ΠΎΠ² Π±Π΅Π· использования Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠ³ΠΎ просмотра. РассмотритС Π΄Π²Π° способа: Ρ…Π΅ΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ n-Π°Ρ€Π½Ρ‹Π΅ Π΄Π΅Ρ€Π΅Π²ΡŒΡ.

*5. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°ΠΉΡ‚Π΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ сокращСния количСства просмотров ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° Π² поисках ΠΈΠΌΠ΅Π½ΠΈ Ρ„Π°ΠΉΠ»Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΠ΅ часто употрСбляСмых ΠΈΠΌΠ΅Π½.

*6. Π’ идСальном случаС Π² Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмС Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ свободных индСксов с Π½ΠΎΠΌΠ΅Ρ€Π°ΠΌΠΈ, мСньшими, Ρ‡Π΅ΠΌ Π½ΠΎΠΌΠ΅Ρ€ Β«Π·Π°ΠΏΠΎΠΌΠ½Π΅Π½Π½ΠΎΠ³ΠΎΒ» индСкса, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠΌ ialloc. Как случаСтся, Ρ‡Ρ‚ΠΎ это ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅ Π±Ρ‹Π²Π°Π΅Ρ‚ Π»ΠΎΠΆΠ½Ρ‹ΠΌ?

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

ГЛАВА 5. Π‘Π˜Π‘Π’Π•ΠœΠΠ«Π• ΠžΠŸΠ•Π ΠΠ¦Π˜Π˜ Π”Π›Π― Π ΠΠ‘ΠžΠ’Π« Π‘ Π€ΠΠ™Π›ΠžΠ’ΠžΠ™ Π‘Π˜Π‘Π’Π•ΠœΠžΠ™

Π’ послСднСй Π³Π»Π°Π²Π΅ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Π»ΠΈΡΡŒ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ структуры Π΄Π°Π½Π½Ρ‹Ρ… для Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы ΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π½ΠΈΠΌΠΈ. Π’ этой Π³Π»Π°Π²Π΅ Ρ€Π΅Ρ‡ΡŒ ΠΏΠΎΠΉΠ΄Π΅Ρ‚ ΠΎ систСмных функциях для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмой с использованиСм понятий, Π²Π²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ Π³Π»Π°Π²Π΅. Π Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ΡΡ систСмныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ Ρ„Π°ΠΉΠ»Π°ΠΌ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ open, read, write, lseek ΠΈ close, Π·Π°Ρ‚Π΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ создания Π½ΠΎΠ²Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ², Π° ΠΈΠΌΠ΅Π½Π½ΠΎ, creat ΠΈ mknod, ΠΈ, Π½Π°ΠΊΠΎΠ½Π΅Ρ†, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с индСксом ΠΈΠ»ΠΈ для пСрСдвиТСния ΠΏΠΎ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмС: chdir, chroot, chown, stat ΠΈ fstat. Π˜ΡΡΠ»Π΅Π΄ΡƒΡŽΡ‚ΡΡ Π±ΠΎΠ»Π΅Π΅ слоТныС систСмныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ: pipe ΠΈ dup ΠΈΠΌΠ΅ΡŽΡ‚ Π²Π°ΠΆΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΊΠ°Π½Π°Π»ΠΎΠ² Π² shell'Π΅; mount ΠΈ umount Ρ€Π°ΡΡˆΠΈΡ€ΡΡŽΡ‚ Π²ΠΈΠ΄ΠΈΠΌΠΎΠ΅ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π΄Π΅Ρ€Π΅Π²ΠΎ Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Ρ… систСм; link ΠΈ unlink ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‚ ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ структуру Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы. Π—Π°Ρ‚Π΅ΠΌ даСтся прСдставлСниС ΠΎΠ± абстракциях, связанных с Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмой, Π² ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Ρ… систСм, ΠΏΠΎΠ΄Ρ‡ΠΈΠ½ΡΡŽΡ‰ΠΈΡ…ΡΡ стандартным интСрфСйсам. Π’ послСднСм Ρ€Π°Π·Π΄Π΅Π»Π΅ Π³Π»Π°Π²Ρ‹ Ρ€Π΅Ρ‡ΡŒ ΠΏΠΎΠΉΠ΄Π΅Ρ‚ ΠΎ сопровоТдСнии Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы. Π“Π»Π°Π²Π° Π·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ с трСмя структурами Π΄Π°Π½Π½Ρ‹Ρ… ядра: Ρ‚Π°Π±Π»ΠΈΡ†Π΅ΠΉ Ρ„Π°ΠΉΠ»ΠΎΠ², Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ каТдая запись связана с ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… Π² систСмС Ρ„Π°ΠΉΠ»ΠΎΠ², Ρ‚Π°Π±Π»ΠΈΡ†Π΅ΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… дСскрипторов Ρ„Π°ΠΉΠ»ΠΎΠ², Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ каТдая запись связана с Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΌ дСскриптором, извСстным процСссу, ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ΠΉ монтирования, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ содСрТится информация ΠΏΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмС.


Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмой Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ дСскрипторы Ρ„Π°ΠΉΠ»Π° Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ namei ΠΠ°Π·Π½Π°Ρ‡Π°ΡŽΡ‚ индСксы Π Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ с Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°ΠΌΠΈ Ρ„Π°ΠΉΠ»Π° Π’Π²ΠΎΠ΄-Π²Ρ‹Π²ΠΎΠ΄ ΠΈΠ· Ρ„Π°ΠΉΠ»Π° Π Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ со структурой Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Ρ… систСм Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π΄Π΅Ρ€Π΅Π²ΡŒΡΠΌΠΈ open creat dup pipe close open stat creat link chdir chroot chown chmod unlink mknod mount umount creat mknod link unlink chown chmod stat read write lseek mount umount chdir chown Алгоритмы Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмой Π½Π° Π½ΠΈΠΆΠ½Π΅ΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ namei iget iput bmap ialloc ifree alloc free bmap Алгоритмы Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π±ΡƒΡ„Π΅Ρ€Π°ΠΌΠΈ getblk brelse bread breada bwrite

Рисунок 5.1. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмой ΠΈ ΠΈΡ… связь с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°ΠΌΠΈ