словник | перекладачка | факти | тексти | програми
щодо | посилання | новини | гостьова книга | пошук
початок << тексти  << автор  << зміст  << сторінка

next up previous contents index
Далі: Гнучкі диски Вгору: Використання дисків та інших Назад: Два типи пристроїв

Жорсткі диски

Даний підрозділ ознайомить читача з термінолоґією, що має відношення до жорстких дисків. Якщо Ви вже знайомі з термінами та концепціями, Ви можете пропустити його.

Рисунок [*] показує схематичну діаґраму найважливіших частин жорсткого диску. Жорсткий диск складається з однієї або більше циркулярних пластин44 на яких одна або обидві поверхні покриті магнітною речовиною, яка і використовується для запису даних. Для кожної такої поверхні існує власна записуючо-відтворююча головка, яка аналізує або змінює записані на поверхні дані. Всі пластини обертаються на спільній осі, типова швидкість обертання складає 3600 обертів на хвилину, але диски з вищою виробничою потужністю мають вищі швидкості. Головки можуть пересуватися вздовж радіуса пластин, і цей рух, поєднаний з обертанням пластин, дає головкам можливість доступу до будь-якої частини диску.

Процесор (CPU) і реальний диск спілкуються через дисковий контролер. Це звільнює всі інші частини комп'ютера від необхідності знати, як саме користуватися тим чи іншим диском, бо дискові контролери можуть виготовлятися таким чином, щоб мати один і той-же інтерфейс до комп'ютера. Коротше кажучи, комп'ютер просто може сказати ``гей, дисче, дай мені те, що я хочу'', замість того, щоб передавати довгі послідовності електричних сигналів тільки щоб посунути головку у відповідне положення і чекати після цього, щоб потрібне місце диску попало під читаючу головку. Насправді, інтерфейс до дискового контролера все ще досить складна штука, але все-таки набагато простіше, ніж він міг би бути. Крім того, контролер може робити деякі інші речі, такі, як кешування або автоматичну заміну дефектних секторів.

Наведені вище дані, практично все, що необхідно знати середньо-пересічному користувачеві про обладнання. Крім згаданого є ще ціла в'язка всіляких інших причандаль, таких, як двигун, що обертає пластини, електронні штучки, які керують роботою механічних частин, але все це не має відношення до розуміння принципів роботи жорстких дисків.

Магнітні поверхні, як звичайно, розділені на концентричні кільця, що носять назву доріжок, а ці в свою чергу поділені на сектори. Такий поділ використовується для визначення положення на поверхні жорсткого диску та для виділення вільного простору для файлів. Щоб визначити потрібне місце на диску звичайно кажуть ``поверхня 3, доріжка 5, сектор 7''. Найчастіше число секторів є сталим для всіх доріжок на диску, але деякі диски приділяють більше секторів на зовнішні доріжки (всі сектори будуть мати в такому випадку однаковий фізичний розмір, а, отже, більше секторів поміститься на ближчих до зовнішнього периметру доріжках). Типовий сектор має 512 байт даних. Диск сам по собі не може оперувати об'ємами даних меншими, ніж розмір сектора.


  
Рисунок: Схематичне зображення основних частин жорсткого диску.
\includegraphics{disks/hd-schematic.ps}

Кожна поверхня диску розділена на доріжки (і сектори) так само, як і інші. Це означає те, що, якщо головка на одній з поверхонь знаходиться над певною доріжкою, то головки на всіх інших магнітних поверхнях знаходяться над такою ж поверхнею. Всі відповідні доріжки разом взяті називають циліндром. Пересування головок з однієї доріжки (циліндру) до іншої займає певний час. Отже, дані краще розташувати таким чином, щоб дані, до яких доступ повинен виконуватися одночасно (наприклад, файл), розташовувалися в одному і тому ж циліндрі. В такому разі відпадає необхідність пересування головок при доступі до цих даних і, отже, це підвищує швидкість роботи. Не завжди виявляється можливим розташувати файли таким чином, і файли, які виявляються записаними розкиданими по кількох різних фізичних розділах диску носять назву фрагментованих.

Число поверхонь, або головок (що, по суті, є одним і тим же), циліндрів та секторів суттєво відрізняються45. Сукупність всіх цих параметрів називають геометрією жорсткого диску. Геометрія диску часто записується в спеціальній пам'яті, що живиться від батарейки, і носить назву CMOS RAM46. З цієї пам'яті операційна система дізнається про диск під час старту системи або драйверів.

На жаль BIOS4748 має певні обмеження закладені при проектуванні, через які виявляється неможливим звертатися до доріжок, номер яких більший за 1024 (тобто вказувати цей номер в CMOS RAM), що є занадто малим для сучасних жорстких дисків. Щоб перейти через цю межу контролер придурюється, що він не знає справжньої геометрії диску і переводить адреси, запрошені ком'ютером в такі, які більше підходять до рельної ситуації. Наприклад, жорсткий диск може мати 8 головок, 2048 доріжок і 35 секторів49. Його контролер може дурити комп'ютер, що він має 16 головок, 1024 доріжки і 35 секторів на доріжку, не перевищуючи таким чином верньої дозволеної межі доріжок і обчислює справжні адреси на диску виводячи їх з тих, що надаються йому комп'ютером. Насправді математика позаду такого обчислення може бути значно складнішою, бо числа можуть бути не такими гарними та гладенькими, як в наведеному прикладі (але, знову ж таки, це не має відношення до загального розуміння принципу роботи). Таке переформування фізичних адрес викривлює уявлення системи про справжню організацію дисків і робить безперспективними спроби оптимізації швидкості доступу за рахунок розташування даних в межах одного циліндру. Ці проблеми переобчислення адрес стосуються тільки IDE дисків. SCSI диски використовують послідовні номери секторів (тобто, контролер переводить послідовний номер сектора в триплет "головка-циліндр-сектор") і зовсім інший метод для спілкування з процесором, отже вони повністю ізольовані від описаної проблеми. Відмітьте, однак, що і у випадку із SCSI дисками комп'ютер також може не знати справжньої геометрії диску.

Через те, що Лінакс часто не має і найменшого поняття про справжню геометрію диску, він навіть і не думає помістити якісь дані в межах одного циліндру. Замість цього він намагається приписати кожному файлу послідовні сектори, і це в результаті дає приблизно такий же виграш в часі. Ця проблема навіть більше ускладнюється кешами контролера дисків та автоматичним "читанням наперед"50 контролера.

Кожен жорсткий диск має свій власний спеціальний файл. Загалом може бути два або чотири жорстких диски IDE в системі. Вони відомі під назвою /dev/hda , /dev/hdb , /dev/hdc  та /dev/hdd . SCSI диски мають назви /dev/sda , /dev/sdb  і т.д. Відповідні домовленості щодо назв дисків існують також для інших типів пристроїв. Детальні дані про типи пристроїв маються в  Linux Device List. Майте на увазі, що спеціальні файли для цілих дисків мають доступ до дисків цілком, не звертаючи уваги на розділи дисків (про це йдеться далі), і при цьому виявляється надзвичайно легко наробити лиха з усіма розділами, якщо не бути уважним. Спеціальні файли дисків частіше всього використовуються, щоб отримати доступ до MBR 51 (що теж буде обговорюватися далі).



Dmytro Kovalev
1999-06-10
вгору
 
Без реклами
2004-03-23 13:50:37
TopList
© 2000-2003, Київ, Соломко Валентин -- ідея та наповнення, графічне опрацювання -- проєкт дизайн, змiнено -- 08.06.2003 14:25:49