
- •Тема 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
Принцип модульності
Під модулем в загальному випадку розуміють функціонально закінчений елемент системи, виконаний відповідно до прийнятих міжмодульних інтерфейсів. За своїм визначенням модуль припускає можливість без особливих зусиль замінити його на іншій за наявності заданих інтерфейсів. Способи відособлення складових частин ОС в окремі модулі можуть істотно розрізнятися, але частіше всього розділення відбувається саме за функціональною ознакою. Особливо важливе значення при побудові ОС мають привілейовані, повторно використовувані та реєнтерабельні модулі, оскільки вони дозволяють більш ефективно використовувати ресурси обчислювальної системи. В деяких системах реєнтерабельність програма одержують автоматично, завдяки незмінності кодових частин програм при виконанні (через особливості системи команд машини), а також автоматичному розподілу регістрів, автоматичному відділенню кодових частин програм від даних і приміщенню останніх в системну область пам’яті Природно, що для цього необхідна відповідна апаратна підтримка. В інших випадках це досягається програмістами за рахунок використовування спеціальних системних модулів.
Принцип модульної відображає технологічні і експлуатаційні властивості системи. Найбільший ефект від його використовування досяжний у випадку, коли цей принцип поширений одночасно на операційну систему, прикладні програми і апаратуру.
Принцип функціональної вибірковості
В ОС виділяється деяка частина важливих модулів, які повинні постійно знаходитися в оперативній пам’яті для більш ефективної організації обчислювального процесу. Цю частину в ОС називають ядром, оскільки це дійсно основа системи. При формуванні складу ядра вимагається враховувати дві суперечливі вимоги. До складу ядра повинні ввійти системні модулі, що часто використовуються. Кількість модулів повинна бути такою, щоб об’єм пам’яті яку займає ядро, був би не дуже великим. До складу ядра, як правило, входять модулі з управління системою переривань, засоби з переведення програм із стану «виконання» в стани «очікування», «готовності» і назад, засоби з розподілу таких основних ресурсів, як оперативна пам’ять і процесор.
Крім програмних модулів, що входять до складу ядра і постійно розташованих в оперативній пам’яті, може бути багато інших системних програмних модулів, які одержують назву транзитних. Транзитні програмні модулі завантажуються в оперативну пам’ять тільки при необхідності і у разі відсутності вільного простору можуть бути заміщені іншими транзитними модулями.
Принцип здатності до генерування
Основне положення цього принципу визначає такий спосіб початкового представлення центральної системної управляючої програми ОС (її ядра і основних компонентів, які повинні постійно знаходитися в оперативній пам’яті), який дозволяв би настроювати цю системну супервізорну частину, виходячи з конкретної конфігурації конкретного обчислювального комплексу і кола вирішуваних задач. Ця процедура проводиться рідко, перед достатньо протяжним періодом експлуатації ОС. Процес генерації здійснюється за допомогою спеціальної програми-генератора і відповідної вхідної мови для цієї програми, що дозволяє описувати програмні можливості системи і конфігурацію машини. В результаті генерації виходить остаточна версія ОС. Версія ОС, що згенерувалася, є сукупністю системних наборів модулів і даних.
Згаданий раніше принцип модульної позитивно виявляється при генерації ОС. Він істотно спрощує налаштування ОС на необхідну конфігурацію обчислювальної системи. В наші дні при використовуванні персональних комп’ютерів з принципом здатності до генерування ОС можна зіткнутися, хіба що тільки при роботі з Linux. В цій UNIX-системі є можливість не тільки використовувати яке-небудь готове ядро ОС, але і самому згенерувати (скомпілювати) таке ядро, яке буде оптимальним для даного конкретного персонального комп’ютера і вирішуваних на ньому задач. Окрім генерації ядра в Linux є можливість вказати і набір підвантажуваних драйверів і служб, тобто частина функцій може реалізовуватися модулями, що безпосередньо входять в ядро системи, а частина – модулями, що мають статус підвантажуваних, транзитних.