- •Затверджую заст. Директора з навчальної роботи _____Майдан а.В.
- •Розглянуто та схвалено
- •На засіданні вкс
- •Обслуговування комп’ютрних систем і мереж
- •____________2015Р.Прот.№___
- •Голова вкс_______н.М.Пархоменко
- •Розробив викладач
- •__________Л.О.Ціпоренко
- •Призначення ядра Linux і його особливості
- •Модулі ядра
- •Виконавча система
- •Наперед визначені системні процеси
- •Застосування користувача
- •Висновки до розділу 2.
- •Контрольні запитання та завдання
- •Паралелізм взаємодії з користувачем
- •Паралелізм розподілених застосувань
- •Ієрархія процесів
- •Особливості створення потоків
- •Особливості завершення потоків
- •Методи розподілюваної пам'яті
- •Методи передавання повідомлень
- •Технологія відображуваної пам'яті
- •Особливості міжпроцесової взаємодії
- •Черги повідомлень
- •20 Найбільш значущих бітів, які задають початкову адресу фрейму, кратну 4 Кбайт (може бути задано 1 Мбайт різних початкових адрес);
- •Перетворення адрес в архітектурі іа-32
- •Типи файлів
- •Імена файлів
- •Каталоги
- •Абсолютний і відносний шляхи
- •Єдине дерево каталогів. Монтування файлових систем
- •Літерні позначення розділів
- •Символічні зв'язки
- •Підтримка символічних зв'язків на рівні системних викликів
- •Фізична організація розділів на диску
- •Основні вимоги до фізичної організації файлових систем
- •Прості зв'язні списки.
- •Зв'язні списки з таблицею розміщення файлів
- •Розріджені файли
- •Елементи каталогу.
- •Спочатку інформацію зберігають у журналі (у ньому створюють новий запис). Таку операцію називають випереджувальним записуванням (write-ahead) або веденням журналу (journaling).
- •Необхідність реалізації буферизації
- •Способи реалізації буферизації
- •Буферизація і кешування
- •Використання спеціальних файлів
- •Передавання даних між рівнями підсистеми
- •Категорії драйверів пристроїв
- •Структура драйвера пристрою
- •Обслуговування переривань
- •Завершення запиту введення-виведення
- •Обробка даних багаторівневими драйверами
- •Поняття термінала
- •Емуляція термінала
- •Віддалені термінали і консоль
- •Термінальне введення
- •Термінальне виведення
- •Програмне керування терміналом
- •Наперед визначені дескриптори у Win32
- •Програмне керування консоллю
- •Протокол iPv4
- •Підтримка транспортного рівня
- •Однорідний доступ до пам'яті
- •Неоднорідний доступ до пам'яті
- •Асиметрична багатопроцесорність
- •Симетрична багатопроцесорність
- •Підтримка numa-архітектур
- •Масштабування навантаження
- •Продуктивність окремих застосувань
- •Криптографічні алгоритми
- •Обмін повідомленнями із використанням криптографії із секретним ключем
- •Криптографічні алгоритми з відкритим ключем
- •Обмін повідомленнями з використанням криптографії із відкритим ключем
- •Односторонні хеш-функції
- •Підписи із відкритим ключем і односторонніми хеш-функціями
- •Облікові записи
- •Словникові атаки і сіль
- •Аутентифікація за принципом «виклик-відповідь»
- •Списки контролю доступу
- •Можливості
Символічні зв'язки
Символічний зв'язок (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, у Windows ХР вони підтримуються файловою системою 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). Для них не виконують операцію високорівневого форматування.