загрузка...

трусы женские
загрузка...

Операційні системи

У сфері персональних комп'ютерів в 1987 р. виникла криза. Можливості файлової системи FAT, розробленої фірмою Microsoft за десять років до цього для інтерпретатора Standalone Disk Basic і пізніше пристосованої для операційної системи DOS, були вичерпані. FAT призначалася для жорстких дисків ємністю не більше 32 Мбайт, а нові НЖМД більшої ємності виявлялися зовсім марними для користувачів PC. Деякі незалежні постачальники пропонували власні способи вирішення цієї проблеми, проте лише з появою DOS 4.0 ця криза була подолана - на деякий час.
Значні зміни структури файлової системи в DOS 4.0 дозволили операційній системі працювати з дисками ємністю до 128 Мбайт; з внесенням у подальшому незначних доповнень цю межу було піднято до 2 Гбайт. У той час здавалося, що такий обсяг пам'яті перевищує будь-які мислимі потреби. В даний час у продажу є жорсткі диски ємністю, як правило, 2,5 Гбайт і вище.
Для систем Windows 95 фірма Microsoft розробила нове розширення системи FAT - FAT32, без будь-яких гучних заяв передбачене в пакеті OEM Service Pack 2. Система FAT32 встановлюється тільки в нових PC.

Області диска
Ця файлова система передбачає низку спеціальних областей на диску, виділених для організації простору диска в процесі його форматування - головний запис завантаження, таблицю розбиття диска, запис завантаження , таблицю розміщення файлів (від якої система FAT і отримала свою назву) і кореневий каталог. На фізичному рівні простір диска розбивається на 512-байт області, звані секторами. В системі FAT місце для файлів виділяється блоками, які складаються з цілого числа секторів і іменуються кластерами. Число секторів в кластері має бути кратно ступеня двійки. (Дізнатися розмір кластера у своїй системі можна за допомогою програм CHKDSK або SCANDISK.) У Microsoft називають ці кластери одиницями виділення пам'яті (allocation unit), а в звіті SCANDISK вказується їх розмір, наприклад "16 384 байт в кожній одиниці виділення пам'яті". Зазвичай розмір кластера можна визначити, поділивши обсяг пам'яті диска на 64 Кбайт (65 536 байт) і округливши результат до найближчого числа, кратного ступеня двійки. Так, розмір кластерів 1,2-Гбайт диска становить 32 Кбайт - якщо 1,2 Гбайт (1258 291,2 Kбайт) поділити на 65 536, отримаємо 19,2 Кбайт, а після округлення - 32 Кбайт.

Ланцюжок FAT
FAT являє собою базу даних, що зв'язує кластери дискового простору з файлами. У цій базі для кожного кластеру передбачається тільки один елемент. Перші два елементи містять інформацію про саму систему FAT. Третій і наступні елементи ставляться у відповідність кластерам дискового простору, починаючи з першого кластера, відведеного для файлів. Елементи FAT можуть містити кілька спеціальних значень, які вказують, що
* кластер вільний, тобто не використано жодного одним файлом (для FAT16 це значення становить 0000H);
* Кластер містить один або кілька секторів з фізичними вадами і не повинен використовуватися (для FAT16 це значення становить FFF7H);
* Даний кластер - останній кластер файлу (для FAT16 це значення становить FFF8 FFFFH).
Для будь-якого використовуваного файлом, але не останнього кластера елемент FAT містить номер наступного кластера, зайнятого файлом.
Кожен каталог - незалежно кореневої або підкаталог - також представляє собою базу даних. У каталозі DOS для кожного файлу передбачена одна головна запис (У середовищі Windows 95 для довгих імен файлів введені додаткові записи). На відміну від FAT, де кожен елемент складається з єдиного поля, записи для файлу в каталозі складаються з декількох полів (див. рис. 1). Деякі поля - ім'я, розширення, розмір, дата і брешемо - можуть бути виведені на екран за командою DIR. Але в системі FAT передбачено поле, яке не відображається командою DIR, - поле з номером першого кластера, відведеного під файл.

Рис. 1. 32-байт запис в каталозі для файлу складається з восьми полів, що містять основну інформацію про файл, наприклад його розмір, початковий кластер на диску, час і дату останнього внесення змін до нього.
Структура запису в каталозі
Зсув 0-7 8-10 11 12-21 22-23 24-25 26-27 28-31
Файл Розширення Атрибут Не використовується Час Дата Початковий кластер Розмір файлу
Розмір 8 байт 3 байт 1 байт 10 байт 2 байт 2 байт 2 байт 4 байт

Коли програма відправляє запит до операційної системи з вимогою надати їй вміст якогось файлу ОС переглядає запис каталогу для нього, щоб знайти перший кластер цього файлу. Потім вона звертається до елемента FAT для даного кластера, щоб знайти наступний кластер в ланцюжку. Повторюючи цей процес, поки не виявить останній кластер файлу, ОС точно визначає, які кластери належать даному файлу і в якій послідовності. Таким шляхом система може надати програмі будь-яку частину запитуваної нею файлу. Такий спосіб організації файлу носить назву ланцюжка FAT.
В системі FAT файлам завжди виділяється ціле число кластерів. На 1,2-Гбайт жорсткому диску з 32-Кбайт кластерами в каталозі може бути зазначено, що розмір текстового файлу, що містить слова "hello, world", складає всього 12 байт, але насправді цей файл займає 32 Кбайт дискового простору. Невикористана частина кластера називається втраченим місцем (slack). У невеликих файлах майже весь кластер може бути втраченим місцем, а в середньому втрати складають половину розміру кластера.
На 850-Мбайт жорсткому диску з 16-Кбайт кластерами при середньому розмірі файлів порядку 50 Кбайт близько 16% відведеного під файли дискового простору буде втрачено на невживані, але виділені файлам області. Один із способів вивільнення простору на диску - за допомогою програм стиснення диска, наприклад DriveSpace, яка виділяє "втрачені місця" для використання іншими файлами.

Розрахунки розмірів секторів і кластерів
Спочатку у файловій системі FAT в DOS 1 використовувалися 12-розрядні елементи FAT. (В даний час 12-розрядна FAT все ще знаходить застосування для гнучких дисків.) У DOS 2, оснащеної додатковими засобами для роботи з жорсткими дисками, в FAT передбачені 16-розрядні елементи. Причина проблеми, що виникла в 1987 р., криється в запитах нижнього рівня до операційної системи на зчитування секторів диска з передачею 16-розрядного значення як параметр. Існує 65 536 різних 16-розрядних значень; помноживши 65 536 на 512 байт в секторі, отримаємо 32 Мбайт. Що стосується числа секторів на диску, воно обмежене можливостями операційної системи. У DOS 4.0 для обробки запитів на зчитування секторів нижнього рівня використовуються 32-розрядні параметри.
Межа в 2 Гбайт насправді обумовлений не проблемами операційної системи, а існуючими програмами. На диску ємністю 2 Гбайт і більше кластери мають розмір 64 Кбайт, або 65 536 байт (див. рис. 2). Але найбільше значення, яке може бути представлене в 16 розрядах, становить 65 535; 64 Кбайт - занадто велика величина для 16 розрядів. У Microsoft виявили, що при розробці багатьох існуючих нині програм їх автори виходили з припущення, що значення числа байт в кластері вміщується в 16 розрядах.
Рис. 2. Із збільшенням розмірів диска одиниця в двійковому 8-розрядному поданні числа секторів в кластері зміщується вліво. При зсуві одиниці за крайню ліву цифрову позицію виникає помилка перевищення розміру 4 Гбайт. Розмір кластера вказаний у вигляді 16-розрядних двійкових чисел. І знову одиниця зміщується вліво, а при зміщенні її за крайню ліву позицію виникає "2-Гбайт кризу".

Обмеження на розміри секторів і кластерів в FAT16
Розмір диска Число секторів в кластері Розмір кластера
Десяткове Двійкове Десяткове Двійкове
Менш 128 Мбайт 4 00000100 2 Кбайт 0000100000000000
Менш 256 Мбайт 8 00001000 4 Кбайт 0001000000000000
Менш 512 Мбайт 16 00010000 8 Кбайт 0010000000000000
Менше 1 Гбайт 32 00100000 16 Кбайт 0100000000000000
Менше 2 Гбайт 64 01000000 32 Кбайт 1000000000000000
Менш 4 Гбайт 128 10000000 64 Кбайт ПОМИЛКА: проблема для існуючих програм
4 Гбайт і більше 256 ПОМИЛКА: проблема для ОС

Навіть якщо такої проблеми не виникло при обсязі в 2 Гбайт, то операційна система все одно не зможе працювати з дисками ємністю понад 4 Гбайт. При використанні FAT16 число секторів в кластері зберігається самої ОС в одному байті блоку параметрів диска, що встановлюється ОС. Це число повинне бути кратним ступеня 2 і при цьому менше 256. Таким чином, в кластер може входити не більше 128 секторів, або 64 Кбайт. У результаті навіть якщо обмеження в

Сторінки: 1 2 3 4 5 6
загрузка...
ur.co.ua

енциклопедія  з сиру  аджапсандалі  ананаси  узвар