Добавил:
twitch.tv Заведующий методическим кабинетом, преподаватель на кафедре компьютерного спорта и прикладных компьютерных технологий. Образование - Магистр Спорта. Суета... Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
9
Добавлен:
29.04.2022
Размер:
11.63 Mб
Скачать

Символічні зв'язки

Символічний зв'язок (symbolic link) - зв'язок, фізично відокремлений від даних, на які вказує. Фактично, це спеціальний файл, що містить ім'я файла, на який вказує.

Наведемо властивості символічних зв'язків.

  • Через такий зв'язок здійснюють доступ до вихідного файла.

  • При вилученні зв'язку, вихідний файл не зникне.

  • Якщо вихідний файл перемістити або вилучити, зв'язок розірветься, і доступ через нього стане неможливий, якщо файл потім поновити на тому самому місці, зв'язком знову можна користуватися.

  • Символічні зв'язки можуть вказувати на каталоги і файли, що перебувають на інших файлових системах (на іншому розділі жорсткого диска). Наприк­лад, якщо створити в поточному каталозі зв'язок system-docs, що вказує на ка­талог /usr/doc, то перехід у каталог system-docs призведе до переходу в ката­лог /usr/doc.

Підтримка символічних зв'язків на рівні системних викликів

Для задания символічного зв'язку у POSIX визначено системний виклик symlіnk (), параметри якого

аналогічні до параметрів lіnk ():

symlink ("myfile.txt". "myfile-symlink.txt");

Для отримання шляху до файла або каталогу, на який вказує символічний зв'язок, використовують системний виклик readlink( ).

// РАТНМАХ - константа, що задає максимальну довжину шляху

char filepath[PATH_MAX+l];

readlink("myfile-symlink.txt\ filepath, sizeof(filepath));

//уfilepathбуде шлях до myfile.txt

Символічні зв'язки вперше з'явилися у файлових системах UNIX, у Win­dows ХР вони підтримуються файловою системою NTFS під назвою точок з'єднан­ня (junction points), але засоби АРІ для їхнього використання не визначені .

5.

Кожний файл має набір характеристик - атрибутів. Набір атрибутів змінюється залежно від файлової системи. Найпоширеніші атрибути файла наведено нижче.

  • Ім'я файла.

  • Тип файла, який задається для спеціальних файлів (каталогів, зв'яз­ків тощо).

  • Розмір файла ( для файла можна визначити його поточний, а іноді й максимальний розмір).

  • Атрибути безпеки, що визначають права доступу до цього файла.

  • Часові атрибути, до яких належать час створення останньої модифікації та ос­таннього використання файла.

Інформацію про атрибути файла також зберігають на диску у спеціальних інформаційних структурах файлової системи. Особливості її зберігання залежать від фізичної організації файлової системи.

6.

Підходи до використання файлів із процесу бувають такі: зі збереженням (stateful) і без збереження стану (stateless).

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

Якщо стан не зберігають, кожна операція роботи із файлом (читання, запису­вання тощо) супроводжується повною підготовкою файла до роботи (кожна опера­ція починається відкриттям файла і заверпгується закриттям). Хоча такий підхід програє у продуктивності, його можна використовувати для підвищення надійності роботи системи при високої ймовірності того, що файлова операція зазнає краху, внаслідок чого структури даних відкритих файлів залишаться в некоректному стані. Так можна робити у випадку, коли файлову систему використовують через мережу, тому що у будь-який момент може статися розрив мережного з'єднання.

Основні файлові операції, які надає ОС для використання у прикладних програмах за допомогою системних викликів через програмний інтерфейс АРІ наступні:

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

  • Закриття файла. Після завершення роботи над файлом його треба закрити. При цьому його дескриптор вилучають із системної таблиці а всі не збережені зміни у файлі записують на диск, в наслідок чого файл на диску змінюється(модифікується).

  • Створення файла. Створення на диску файла нульової довжини. Після створення файл автоматично відкривається.

  • Вилучення файла. Спричиняє вилучення файла і звільнення занятого ним дискового простору. Операція для відкритих файлів не виконується.

  • Читання із файла. Це пересилання певної кількості байтів із файла з поточної позиції у зазделегіть виділений для цього буфер памяті режиму користувача.

  • Записування у файл. Запис здійснюється із зазделегіть виділеного буфера від поточної позиції у файлі. Якщо у цій позиції вже є дані, вони будуть перезаписані. Ця операція може змінити розмір файла.

  • Переміщення показчика поточної позиції. Покажчик поточної позиції у файлі визначиє де перебувають потрібні дані або куди треба їх записати. Якщо покажчик перемістити в кінець файла, а потім виконати операцію записування, то довжина файла збільшиться.

  • Отримання і задання атрибутів файла. Ці дві операції дають змогу зчитувати значення всіх або деяких атрибутів файла або задавати для них нові значення.

Лекція №2.

Тема: Розміщення інформації у файлових системах.

План:

1. Базаві відомості про дискові пристрої: принцип дії жорсткого диска, ефективність операцій доступу до диска (Л1 ст.284-286).

2. Розміщення інформації у файлових системах: фізична організація розділів на диску та основні вимоги до фізичної організації файлових систем (Л1 ст.286-287).

3. Неперервне розміщення файлів (Л1 ст.287-288).

4. Розміщення файлів зв’язними списками: прості зв’язні списки, зв’язні списки з таблицею розміщення файлів(Л1 ст.288-289).

1.

Накопичувачі на жорстких магнітних дисках (НЖМД) (рис. 12.1, далі - диски) складаються з набору дискових пластин (platters), які покриті магнітним матеріа­лом і обертаються двигуном із високою швидкістю.

Кожній пластині відповіда­ють дві головки (heads), одна зчитує інформацію зверху, інша - знизу. Головки прикріплені до спеціального дискового маніпулятора (disk arm). Маніпулятор може переміщатися по радіусу диска - від центра до зовнішнього краю і назад, таким чином відбувається позиціювання головок.

Головки зчитують інформацію із доріжок (tracks), які мають вигляд концен­тричних кіл. Мінімальна кількість доріжок на поверхні пластини в сучасних дис­ках — 700, максимальна — більше 20 000. Сукупність усіх доріжок одного радіуса на всіх поверхнях пластин називають циліндром.

Кожну доріжку під час низькорівневого форматування розбивають на секто­ри (sectors), обсяг даних сектора для більшості архітектур становить 512 байт (він обов'язково має дорівнювати степеню числа 2). Кількість секторів для всіх дорі­жок однакова (у діапазоні від 16 до 1600).

Основними характеристиками доступу до диска є:

  • час пошуку (seek time) — час переміщення маніпулятора для позиціювання го­ловки на потрібній доріжці (у середньому становить від 10 до 20 мс);

  • ротаційна затримка (rotational delay) — час очікування, поки пластина по­вернеться так, що потрібний сектор опиниться під магнітною головкою (у середньому становить 8 мс);

  • пропускна здатність передавання даних (transfer bandwidth) - обсяг даних, що передаються від пристрою в пам'ять за одиницю часу; для сучасних дисків ця характеристика порівнянна із пропускною здатністю оперативної пам'яті (200 Мбайт/с), час передавання одного сектора вимірюють у наносекундах.

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

Швидкість доступу до диска, порівняно із доступом до пам'яті, надзвичайно мала, зараз диски є основним «вузьким місцем» з погляду продуктивності ком­п'ютерної системи. При цьому, за рахунок реального поліпшення останніми роками пропускної здатності, затримку передавання даних можна не враховувати . Час пошуку і ротаційна затримка майже не змінюються, тому що вони пов'язані з керуванням механічними при­строями (дисковим маніпулятором і двигуном, що обертає пластини) і обмежені їхніми фізичними характеристиками.

У результаті час читання великих обсягів неперервно розташованих на диску даних усе менше від­різняється від часу читання малих. Як наслідок, першорядне значення для роз­робників файлових систем набуває розв'язання двох задач:

  • організації даних таким чином, щоб ті з них, які будуть потрібні одночасно, перебували на диску поруч (і їх можна було зчитати за одну операцію);

  • підвищення якості кешування даних (оскільки пам'яті стає все більше, зро­стає ймовірність того, що всі потрібні дані міститимуться в кеші, і доступ до диска стане взагалі не потрібний).

2.

Файлова система будує базове відображення даних поверх того, яке їй надають драйвери дискових пристроїв.Драйвер дискового пристрою надає тільки посекторний доступ до диску, а ОС розподіляє дисковий простір не секторами, а спеціальними одиницями розміщення - кластерами (clusters) або дисковими блоками (disk blocks, термін «дисковий блок» більш роз­повсюджений в UNIX-системах). Визначення розміру кластера і розміщення ін­формації, необхідної для функціонування файлової системи, відбувається під час високорівневого форматування розділу. Саме таке форматування створює фай­лову систему в розділі.

Розмір кластера визначає особливості розподілу дискового простору в систе­мі. Використання кластерів великого розміру може спричинити значну внутріш­ню фрагментацію через файли, які за розміром менші, ніж кластер.

Деякі застосування (насамперед, сервери баз даних) можуть реалізовувати свою власну фізичну організацію даних на диску. Для них файлова система може ви­явитися зайвим рівнем доступу, що тільки сповільнюватиме роботу. Багато ОС на­дають таким застосуванням можливість працювати із розділами, поданими у вигля­ді простого набору дискових секторів, який не містить структур даних файлової системи. Про такі розділи кажуть, що вони містять неорганізовану файлову систему (raw file system). Для них не виконують операцію високорівневого форматування.