
- •Поняття операційної системи
- •Операційна система як розширена машина
- •Операційна система як менеджер ресурсів
- •Історія розвитку операційних систем
- •Перше покоління (1945-1955): електронні лампи і комутаційні панелі
- •Друге покоління (1955-1965): транзистори і системи пакетної обробки
- •Третє покоління (1965-1980): інтегральні схеми і багатозадачність
- •Четверте покоління (з 1980 року по наші дні): персональні комп'ютери
- •Історія minix 3
- •Основні концепції
- •Процеси
- •Оболонка
- •Системні виклики
- •Системні виклики для управління процесами
- •Системні виклики для управління сигналами
- •Системні виклики для управління файлами
- •Системні виклики для управління каталогами
- •Системні виклики для захисту
- •Системні виклики для управління часом
- •Структура операційної системи
- •1.5.2. Багаторівневі системи
- •1.5.3. Віртуальні машини
- •1.5.4. Екзоядра
- •1.5.5. Модель клієнт-сервер
- •2.1.1. Модель процесів
- •2.1.2. Створення процесів
- •2.1.3. Завершення процесів
- •2.1.4. Ієрархії процесів
- •2.1.5. Стани процесів
- •2.1.6. Реалізація процесів
- •2.1.7. Програмні потоки
- •2.2. Взаємодія між процесами
- •5.1. Файли
- •5.1.1. Іменування файлів
- •5.1.2. Структура файлу
- •5.1.3. Типи файлів
- •5.1.4. Доступ до файлів
- •5.1.5. Атрибути файлів
- •5.1.6. Операції з файлами
- •5.2. Каталоги
- •5.2.1. Прості каталоги
- •5.2.2. Ієрархічні системи каталогів
- •5.2.3. Шляхи
- •5.2.4. Операції з каталогами
- •5.3. Реалізація файлової системи
- •5.3.1. Структура файлової системи
- •5.3.2. Реалізація файлів
- •5.3.4. Організація дискового простору
5.1.4. Доступ до файлів
В старих операційних системах до файлів надавався тільки один тип доступу -послідовний. У цих системах процес міг читати байти або записи файлу лише по порядку від початку до кінця. У той же час для послідовних файлів підтримувалося «перемотування», що дозволяло прочитувати їх так часто, як це було потрібно. Послідовні файли були зручні в часи, коли в якості пристрою зберігання інформації використовувався не диск, а магнітна стрічка.
З появою дисків стало можливим читати байти або запису файла у довільному порядку або отримувати доступ до записів по ключу. Файли, байти яких можуть бути прочитані в довільному порядку, називаються файлами довільного доступу. Такі файли використовуються багатьма додатками. Файли довільного доступу дуже важливі для ряду додатків, наприклад для баз даних. Якщо клієнт телефонує в авіакомпанію з метою зарезервувати місце на конкретний рейс, програма резервування авіаквитків повинна мати
можливість отримати доступ до потрібного запису, не читаючи все тисячі передують
попередніх записів з інформацією про інші рейсах. Місце початку читання вказується двома способами. У першому випадку кожна операція read неявно встановлює позицію у файлі. У другому варіанті використовується спеціальна операція seek, що встановлює нову поточну позицію. Після виконання операції seek файл можна читати послідовно
з поточної позиції.
У деяких старих операційних системах, що працюють на мейнфреймах, спосіб
доступу до файлу (послідовний або довільний) вказувався в момент створення файлу. Це дозволяло операційній системі застосовувати різні методи зберігання файлів різних класів. В сучасних операційних системах такого розходження не проводиться. Всі файли автоматично є файлами довільного доступу.
5.1.5. Атрибути файлів
У кожного файлу є ім'я і дані. Крім цього, всі операційні системи пов'язують з кожним файлом іншу інформацію, наприклад дату і час створення файлу, а також його розмір. Ми будемо називати ці додаткові відомості атрибутами файлів, хоча їх іноді позначають терміном метадані. Список атрибутів значно варіюється від системи до системи. У табл. 5.2
показані деякі можливі атрибути, проте існують і інші. На практиці ні в одній операційній системі не використовуються відразу все наведені в таблиці атрибути файлів, але кожен з них можна зустріти в тій чи іншій системі.
Таблиця 5.2. Деякі можливі атрибути файлів
Атрибут Значення
Захист Хто і яким чином може отримати доступ до файлу
Пароль для отримання доступу до файлу
Творець Ідентифікатор користувача, який створив файл
Власник Поточний власник
Прапор тільки читання 0 - для читання / запису; 1 - тільки для читання
Прапор приховування 0 - нормальний; 1 - не показувати в переліку файлів каталогу
Прапор «системний» 0 - нормальний; 1 - системний
Прапор архівації 0 - файл поміщений в резервне сховище; 1 - потрібно
резервування
Прапор ASCII / двійковий 0 - ASCII; 1 - двійковий
Прапор довільного доступу 0 - тільки послідовний доступ; 1 - довільний доступ
Прапор «тимчасовий» 0 - нормальний; 1 - видалення файлу по закінченні процесу
Прапори блокування 0 - неблокований; ненульовий в разі блокування
Довжина запису Кількість байтів в записі
Позиція ключа Зсув до ключа в записі
Довжина ключа Кількість байтів в поле ключа
Час створення Дата і час створення файлу
Час останнього доступу Дата і час останнього доступу до файлу
Час останнього Дата і час останньої зміни файлу
зміни
Поточний розмір Кількість байтів у файлі
Максимальний розмір Кількість байтів, до якого можна збільшувати розмір файлу
Перші чотири атрибута відносяться до захисту файлу і містять інформацію про те,
хто має право отримати доступ до файлу, а хто ні. Можливі різні схеми захисту файлу, кілька з них ми розглянемо пізніше. У деяких системах користувач повинен для одержання доступу до файлу вказати пароль. У цьому випадку пароль повинен входити в атрибути файлу. Прапори представляють собою окремі біти або короткі бітові поля,
керуючі деякими специфічними властивостями. Наприклад, приховані файли не
з'являються у переліку файлів при роздруківці каталогу. Прапор архівації представляє
собою біт, що стежить за тим, чи була створена для файлу резервна копія. Цей прапор очищається програмою архівації і встановлюється операційної системою при зміні файлу. Таким чином, програма архівування може визначити, які файли слід архівувати. Тимчасовий файл можна автоматично видалити після закінчення роботи створив файл процесу. Атрибути довжини запису, позиції ключа і довжини ключа присутні тільки
у тих файлів, записи яких можуть шукатися по ключу. Різні атрибути, що зберігають значення часу, дозволяють стежити за тим, коли файл був створений, коли в останній раз він був змінений, коли до нього востаннє надавався доступ. Ці відомості можна використовувати в різних цілях. Наприклад, якщо вихідний файл програми був модифікований після створення відповідного йому об'єктного файлу, даний вихідний файл повинен бути перекомпілювати.
В якості поточного розміру файлу вказується кількість байтів у файлі. У деяких старих операційних системах мейнфреймів при створенні файлу потрібно вказати також максимальну довжину файлу, що дозволяло операційній системі зарезервувати достатньо місця для його подальшого збільшення. Сучасні операційні системи, що працюють на персональних комп'ютерах, уміють обходитися без подібного резервування.