- •Тема 1: Основні поняття обчислювальних систем Призначення та склад системного програмного забезпечення
- •Основні концепції операційних систем
- •Типи операційних систем
- •Основні етапи розвитку операційних систем
- •Функціональні компоненти операційних систем
- •Керування процесами й потоками
- •Керування ресурсами
- •Керування введенням-виведенням
- •Керування файлами та файлові системи
- •Мережна підтримка
- •Тема 2: Архітектура операційних систем Основні принципи побудови операційних систем
- •Принцип модульності
- •Принцип функціональної вибірковості
- •Принцип здатності до генерування
- •Принцип функціональної надмірності
- •Принцип віртуальності
- •Принцип незалежності програм від зовнішніх пристроїв
- •Принцип сумісності
- •Принцип відкритої і нарощуваної ос
- •Принцип мобільності (переносимості)
- •Принцип забезпечення безпеки обчислень
- •Базові поняття архітектури операційних систем
- •Ядро операційної системи
- •Монолітні системи
- •Багаторівневі системи
- •Системи з мікроядром
- •Концепція віртуальних машин
- •Засоби апаратної підтримки операційних систем
- •Інтерфейс прикладного програмування
- •Варіанти реалізації api
- •Особливості архітектури unix і Linux
- •Особливості побудови ос Linux
- •Особливості архітектури Windows xp
- •Компоненти режиму ядра
- •Компоненти режиму користувача
- •Об’єктна архітектура Windows xp
- •Тема 3: Процеси та потоки
- •Базові поняття процесів та потоків
- •Блок керування процесом
- •Операції над процесами
- •Обробка переривань
- •Алгоритми планування процесів
- •Витісняючі та невитісняючі алгоритми планування
- •Нитки, потоки (Thread)
- •Керування процесорами
- •Планування з переключення та без переключення
- •Лекція 4: Ядро операційної системи
- •Основні функції ядра
- •Асинхронні паралельні процеси
- •Взаємо-виключення
- •Семафори
- •Кільцевий буфер
- •Конвеєр (програмний канал)
- •Черги повідомлень (Queue)
- •Лекція 5. Керування ресурсами
- •Керування пам’яттю
- •Ієрархія пам’яті
- •Розподіл пам’яті
- •Зв’язний розподіл пам’яті для одного користувача
- •Мультипрограмування з фіксованими розділами
- •Мультипрограмування із змінними розділами
- •Боротьба з фрагментацією
- •Стратегії розміщення інформації в пам’яті
- •Системи з розподілом часу. Сторінкова організація пам’яті. Концепція віртуальної (уявної) пам’яті.
- •Принцип кешування даних
- •Лекція 6. Керування даними Файлова система
- •Функції файлової системи
- •Ієрархія даних
- •Об’єднання в блоки та буферизація
- •Організація файлів
- •Методи доступу
- •Характеристики файлів
- •Файлова система
- •Виділення та звільнення місця в пам’яті
- •Зв’язаний розподіл пам’яті
- •Незв’язаний розподіл пам’яті
- •1) Розподіл за допомогою списків секторів
- •2) Поблочний розподіл
- •Дескриптор файлу (file descriptor)
- •Матриця керування доступом
- •Керування доступом в залежності від класів користувачів
- •Копіювання та відновлення інформації
- •Планування роботи з дисковою пам’яттю
- •Призначення планування
- •Цільові характеристики принципів планування
- •Оптимізація пошуку циліндру
- •Оптимізація за часом очікування записів
- •Архітектура сучасних файлових систем
- •Лекція 8. Основи організації ms-dos
- •Будова та функції основних складових дос
- •Керування пам’яттю
- •Відображена пам’ять
- •Розширена пам’ять
- •Висока пам’ять
- •Верхня пам’ять
- •Драйвери верхньої та розширеної пам’яті
- •Завантажувані модулі com та exe – файли
- •Логічна структура диску в ms-dos
- •Формат елементів таблиці розділів
- •Запис завантаження (boot)
- •Використання boot-сектору
- •Визначення формату fat
- •Формат fat
- •Файли та каталоги
- •Недоліки ms-dos
- •Переваги які надає користувачам Windows
- •Windows як операційна оболонка
- •Обмін даними в Windows
- •Зв’язування чи вбудовування
- •Первинність повідомлень: механізм повідомлень
- •Незалежна (preemptive) багатозадачність
- •Взаємодія 32– та 16–розрядних кодів
- •Робота з 16–розрядними продуктами
- •Робота з dos–продуктами
- •Робота 32–розрядних Windows–продуктів
- •Вдосконалення розподілу системних ресурсів
- •Vcache – 32–розрядний дисковий кеш
- •Варіанти модифікацій ос Windows xp
- •Нові характеристики реалізовані в Windows xp
- •Продуктивність
- •Лекція 8. Ос unix
- •Ядро ос unix
- •Генерування ос
- •Процеси
- •Початкове завантаження. Процеси 0 та 1
- •Файлова система unix
- •Будова файлової системи unix
- •Каталоги
- •Тема 1: Основні поняття обчислювальних систем 1
- •Тема 2: Архітектура операційних систем 9
- •Тема 3: Процеси та потоки 25
Характеристики файлів
Для файлів, як правило, вказують такі характеристики:
1. Змінність. Ця характеристика пов’язана з тим, як часто заносяться у файл нові записи, та вилучаються старі. Коли ця частота мала, файл називається статичним, велика – динамічним або змінним файлом.
2. Активність. Визначається процентом записів файлів, що обробляються за час якогось періоду роботи з пам’яттю.
3. Розмір. Визначає кількість інформації, що зберігається у файлі.
Файлова система
Як вже відзначалося, файлова система – це важливий компонент ОС. Вона вміщує, як правило, такі засоби:
1. Методи доступу. Визначають конкретну організацію доступу до даних, що зберігаються у файлах.
2. Засоби керування файлами. Забезпечують зберігання файлів, звертання до них, колективне керування та захист.
3. Засоби керування зовнішньою пам’яттю. Забезпечують розподіл простору зовнішньої пам’яті для розміщення файлів.
4. Засоби забезпечення цілісності файлів. Вони покликані гарантувати збереження інформації файлу.
Гарантована цілісність файлу означає, що у файлі завжди буде зберігатись лише та інформація, яка в ньому повинна бути, тобто та, яку визначає користувач.
Головне завдання файлової системи – це розподіл простору зовнішньої пам’яті та керування її роботою, зокрема, роботою дискової пам’яті.
Розглянемо приклад:
Маємо велику обчислювальну систему, що працює в режимі розподілу часу та обслуговує до 100 терміналів, до яких може мати доступ декілька тисяч користувачів. Кожний із, користувачів може мати в обчислювальній системі декілька рахунків, за допомогою яких виконується облік робіт, що виконується за різними проектами. Із кожною роботою може бути пов’язана велика кількість файлів.
У великих системах розподілу часу на кожну роботу припадає 10..100 файлів. Таким чином в дисковій пам’яті системи може знаходитись до 100 тисяч файлів.
Необхідно мати можливість швидкого доступу до цих файлів, щоб забезпечити малий час відповіді на запит користувачів.
Файлова система в цьому випадку може бути організована таким чином (рис.)
Кореневий вузол показує, в якому місці дискової пам’яті починається кореневий каталог, в якому в свою чергу вміщуються адреси різних каталогів користувачів. Каталог користувача вміщує по одному запису для кожного з файлів користувача. Кожний запис показує в якому місці дискової пам’яті зберігається відповідний файл.
Імена файлів повинні бути унікальними тільки в рамках певного каталогу користувача. В той же час системне ім’я файла повинно бути унікальним в рамках файлової системи. В файлових системах з ієрархічною структурою системне ім’я файлу звичайно формується як ім’я шляху від кореневої директорії до цього файлу.
Виділення та звільнення місця в пам’яті
Проблема виділення та звільнення місця в дисковій пам’яті в дечому нагадує проблему розподілення основної пам’яті при мультипрограмуванні із змінними розділами.
Якщо бажано розміщувати файли в сусідніх ділянках дискової пам’яті, то ці ділянки необхідно зібрати разом. Але, оскільки, в процесі роботи системи файли спотворюються і знищуються, з часом простір дискової пам’яті звичайно робиться все більш фрагментованим. У зв’язку з цим при розміщенні наступних файлів вони розміщуються розкиданими блоками.
Один із можливих способів розв’язку цієї проблеми полягає в тому, щоб періодично виконувати ущільнення вмісту пам’яті – „збирання сміття.” Файли можна реорганізувати таким чином, щоб вони займали сусідні ділянки дискової пам’яті, а вільні ділянки можна зібрати в єдиний блок або групу великих блоків. Деякі системи передбачають динамічне збирання сміття в процесі роботи (як правило, в не робочий час). Система може вибирати для реорганізації файли тих користувачів, які в біжучий момент не працюють, або файли, до яких не було звертання на протязі довгого часу.
При створені ефективної файлової системи необхідно чітко уявляти собі, який контингент користувачів вона буде обслуговувати. Зокрема, треба знати кількість користувачів, середню кількість файлів на одного користувача, характер задач, що розв’язуються, та інше. Ці файли необхідно ретельно аналізувати, для того, щоб визначити найбільш раціональні форми організації файлів і їх директорій.
