
- •Операційні системи Конспект лекцій
- •1. Введення
- •1.1. Предмет і завдання курсу
- •1.2. Рекомендації по літературі
- •1.3. Короткий нарис історії ос
- •1.3.1. Передісторія ос
- •1.3.2. Пакетні ос
- •1.3.3. Ос з поділом часу
- •1.3.4. Однозадачні ос для пеом
- •1.3.5. Багатозадачні ос для пк з графічним інтерфейсом
- •1.4. Класифікація ос
- •1.5. Критерії оцінки ос
- •1.5.2. Ефективність
- •1.5.3. Зручність
- •1.5.4. Масштабованість
- •1.5.5. Здатність до розвитку
- •1.6. Основні функції і структура ос
- •1.7. Ос, що використовуються в подальшому викладі
- •1.7.2. Windows
- •1.7.3. Unix
- •2. Управління пристроями
- •2.1. Основні завдання управління пристроями
- •2.2. Класифікація периферійних пристроїв і їх архітектура
- •2.3. Переривання
- •2.4. Архітектура підсистеми вводу / виводу
- •2.5. Способи організації введення / виводу
- •2.5.1. Введення / висновок з опитування і по перериваннях
- •2.5.2. Активне і пасивне очікування
- •2.5.3. Синхронний і асинхронний ввід / вивід
- •2.6. Буферизація і кешування
- •2.6.1. Поняття буферизації
- •2.6.2. Згладжування нерівномірності швидкостей процесів
- •2.6.3. Розпаралелювання введення та обробки
- •2.6.4. Узгодження розмірів логічної та фізичної записи
- •2.6.5. Редагування при інтерактивному введенні
- •2.6.6. Кешування дисків
- •2.6.7. Випереджаюче читання.
- •2.7. Драйвери пристроїв
- •2.8. Управління пристроями в ms-dos
- •2.8.1. Рівні доступу до пристроїв
- •2.8.2. Драйвери пристроїв в ms-dos
- •2.8.3. Управління символьними пристроями
- •2.8.4. Управління блоковими пристроями
- •2.8.4.1. Структура диска
- •2.8.4.2. Розділи і логічні томи
- •2.8.4.3. Засоби доступу до дисків
- •2.9. Управління пристроями в Windows
- •2.9.1.1. Драйвери пристроїв в Windows
- •2.9.1.2. Доступ до пристроїв
- •2.10. Управління пристроями в unix
- •2.10.1. Драйвери пристроїв в unix
- •2.10.2. Пристрій як спеціальний файл
- •3. Управління даними
- •3.1. Основні завдання управління даними
- •3.2. Характеристики файлів та архітектура файлових систем
- •3.3. Розміщення файлів
- •3.4. Захист даних
- •3.5. Поділ файлів між процесами
- •3.6. Файлова система fat і управління даними в ms-dos
- •3.6.1. Загальна характеристика системи fat
- •3.6.2. Структури даних на диску
- •Структура записи каталога файловой системы fat
- •3.6.4. Робота з файлами в ms-dos
- •3.6.4.1. Системні функції
- •3.6.4.2. Доступ до даних
- •3.6.4.3. Структури даних у пам'яті
- •3.6.5. Нові версії системи fat
- •3.7. Файлові системи і управління даними в unix
- •3.7.1. Архітектура файлової системи unix
- •3.7.1.1. Жорсткі і символічні зв'язку
- •3.7.1.2. Монтовані томи
- •3.7.1.3. Типи і атрибути файлів
- •3.7.1.4. Управління доступом
- •3.7.2. Структури даних файлової системи unix
- •3.7.3. Доступ до даних в unix
- •3.7.4. Розвиток файлових систем unix
- •3.8. Файлова система ntfs і управління даними в Windows
- •3.8.1. Особливості файлової системи ntfs
- •3.8.2. Структури дискових даних
- •3.8.2.1. Головна таблиця файлів
- •3.8.2.2. Атрибути файлу
- •3.8.3. Доступ до даних
- •3.8.4. Захист даних
- •3.8.4.1. Аутентифікація користувача
- •3.8.4.2. Дескриптор захисту
- •4. Управління процесами
- •4.1. Основні завдання управління процесами
- •4.2. Реалізація багатозадачного режиму
- •4.2.1. Поняття процесу і ресурсу
- •4.2.2. Квазіпараллельний виконання процесів
- •4.2.3. Стану процесу
- •4.2.4. Невитісняючаі витісняюча багатозадачність
- •4.2.5. Дескриптор і контекст процесу
- •4.2.6. Реєнтерабельним системних функцій
- •4.2.7. Дисципліни диспетчеризації та пріоритети процесів
- •4.3. Проблеми взаємодії процесів
- •4.3.1. Ізоляція процесів та їх взаємодія
- •4.3.2. Проблема взаємного виключення процесів
- •4.3.3. Двійкові семафори Дейкстри
- •4.3.4. Засоби взаємодії процесів
- •4.3.4.1. Цілочисельні семафори
- •4.3.4.2. Семафори з множинним очікуванням
- •4.3.4.3. Сигнали
- •4.3.4.4. Повідомлення
- •4.3.4.5. Спільна пам'ять
- •4.3.4.6. Програмні канали
- •4.3.5. Проблема тупиків
- •4.4. Управління процесами в ms-dos
- •4.4.1. Процеси в ms-dos
- •4.4.2. Середа програми
- •4.4.3. Запуск програми
- •4.4.4. Завершення роботи програми
- •4.4.5. Перехоплення переривань і резидентні програми
- •4.5. Управління процесами в Windows
- •4.5.1. Поняття об'єкта у Windows
- •4.5.2. Процеси і нитки
- •4.5.3. Планувальник Windows
- •4.5.4. Процес і нитка як об'єкти
- •4.5.5. Синхронізація ниток
- •4.5.5.1. Способи синхронізації
- •4.5.5.2. Об'єкти синхронізації та функції очікування
- •4.5.5.3. Типи об'єктів синхронізації
- •4.5.5.4. Критичні секції
- •4.5.6. Повідомлення
- •4.6. Управління процесами в unix
- •4.6.1. Життєвий цикл процесу
- •4.6.2. Групи процесів
- •4.6.3. Програмні канали
- •4.6.4. Сигнали
- •4.6.5. Засоби взаємодії процесів в стандарті posix
- •4.6.6. Планування процесів
- •4.6.6.1. Стану процесів в unix
- •4.6.6.2. Пріоритети процесів
- •4.6.7. Інтерпретатор команд shell
- •5. Управління пам'яттю
- •5.1. Основні завдання управління пам'яттю
- •5.2. Віртуальні й фізичні адреси
- •5.3.1. Настроювання адрес
- •5.3.2. Розподіл з фіксованими розділами
- •5.3.3. Розподіл з динамічними розділами
- •5.4. Сегментна організація пам'яті
- •5.5. Сторінкова організація пам'яті
- •5.6. Порівняння сегментної і сторінкової організації
- •5.7. Управління пам'яттю в ms-dos
- •5.8. Управління пам'яттю в Windows
- •5.8.1. Структура адресного простору
- •5.8.3. Відображення виконуваних файлів
- •5.8.4. Файли, відображувані на пам'ять
- •5.8.5. Стеки і купи
- •5.9. Управління пам'яттю в unix
- •Література
3.8.2.2. Атрибути файлу
Кожен запис MFT містить набір атрибутів, який може відрізнятися для різних файлів і каталогів.
Атрибут в NTFS складається з заголовка і значення, а заголовок, в свою чергу, містить тип атрибуту, його ім'я, довжину і дані про розміщення атрибута. Ім'я атрибута може бути відсутнім, інші поля обов'язкові. Заголовок атрибута завжди зберігається в самій запису MFT, а значення - або теж в самій записи (при цьому атрибут називається резидентним), або в кластері області даних (нерезидентний атрибут). Деякі типи атрибутів зобов'язані бути резидентними, для інших типів вибір розміщення залежить від наявності достатнього вільного місця в запису MFT. Якщо атрибут нерезидентний, то в заголовку зазначаються відомості про розміщення його значення на диску.
Розглянемо найбільш важливі типи атрибутів, використовуваних у записі про файл.
· Ім'я файлу. Цей атрибут завжди резидентів. Допускається декілька атрибутів цього типу, наприклад, «довге» ім'я (до 255 символів, включаючи літери будь-якої мови) і ім'я «8 + 3» для того ж файлу.
· Стандартна інформація. Це приблизно та інформація про файл, яка зберігалася в записі каталогу FAT: розмір файлу, тимчасові штампи та бітові прапори.
· Дескриптор захисту. Він служить для завдання прав доступу до даного файлу для різних користувачів і груп, докладніше див п. 3.8.4.2. У нових версіях NTFS запис MFT містить не сам дескриптор, а посилання на його місце в системному файлі. Так виходить компактніше, оскільки зазвичай на диску є багато файлів з однаковими дескрипторами захисту і краще зберігати кожен дескриптор один раз, у спеціально відведеному для цього файлі метаданих.
· Дані. Це саме несподіване при першому знайомстві з NTFS: самі дані файла розглядаються як один з типів атрибутів цього файлу. Наступна несподіванка полягає в тому, що атрибут даних невеликого файлу може зберігатися резидентно в складі запису MFT. Нагадаємо, що розмір цього запису - від 1 Кб і більше, так що місце для даних маленького файлу може знайтися. Безумовно, резидентне зберігання даних дозволяє прискорити доступ до них, оскільки запис MFT так чи інакше завжди читається при відкритті файлу.
Ще одна цікава особливість NTFS полягає в тому, що один файл може мати декілька атрибутів даних, що визначають декілька потоків даних (streams). Один з потоків безіменний, інші повинні мати імена. Виходить як би цілий каталог файлів усередині одного файлу. Безумовно, для цієї можливості можна придумати цікаві застосування, однак ні в одній версії Windows, включаючи XP, поки не передбачені API-функції, що працюють з потоками даних.
Якщо запис MFT описує не файл, а каталог, то замість атрибуту даних в ній міститься інший атрибут, що містить або весь каталог, або його частину. Якщо каталог занадто великий, то інші його частини зберігаються в нерезидентних атрибутах ще одного типу. Тут ми не будемо розглядати це питання детально, проте слід зазначити, що атрибути, що описують великий каталог, утворюють структуру даних, відому як Б-дерево (B-tree). Ця структура дозволяє прискорити пошук файлу в каталозі.
Запис каталогу містить лише ім'я файлу, номер запису про цей файл у MFT і копію атрибуту «стандартна інформація». Ця копія дозволяє відображати вміст каталогу без читання записів MFT про кожен файл.
При порівнянні структури NTFS з раніше розглянутої структурою s5fs можна знайти деяку аналогію між таблицею MFT і масивом індексних дескрипторів, що містять всю інформацію про фото в s5fs. При цьому NTFS має значно складнішу структуру і надає багато додаткових можливостей.