- •Тема 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
Основні концепції операційних систем
За означенням Операційна Система — це програмне забезпечення, що реалізує зв’язок між прикладними програмами та апаратними засобами комп’ютера. Сучасні ОС розглядаються в двох аспектах. З одного боку це розширена віртуальна машина, а з іншого – розподілювач ресурсів.
За допомогою операційної системи у прикладного програміста (а через його програми і в користувача) має створюватися враження, що він працює з розширеною машиною. Таким чином ОС повинні абстрагувати програміста від досконалого знання особливостей реалізації апаратного забезпечення (Див. Рис. 2). Такий підхід значно спрощує та скорочує процес розробки прикладного програмного забезпечення. Отже ОС є прошарком між прикладними програмами та апаратним забезпеченням, що робить їх (прикладні програми) апаратно незалежними, а при певній стандартизації інтерфейсу, переносними на інші ОС.
Операційна система має ефективно розподіляти ресурси. Під ресурсами розуміють процесорний час, пам’ять (внутрішня та зовнішня), засоби доступу до зовнішніх пристроїв. Операційна система виступає в ролі менеджера цих ресурсів і надає їх прикладним програмам на вимогу. Розрізняють два основні види розподілу ресурсів. У разі просторового розподілу ресурс доступний декільком споживачам одночасно, при цьому кожен із них може користуватися частиною ресурсу (так розподіляється пам’ять). У разі часового розподілу система ставить споживачів у чергу і згідно з нею надає їм змогу користуватися всім ресурсом обмежений час (так розподіляється процесор, канали введення-виведення).
При розподілі ресурсів ОС розв’язує можливі конфлікти, запобігає несанкціонованому доступу програм до тих ресурсів, на які вони не мають прав.
Типи операційних систем
Для ОС сформувалася відносно невелика кількість класифікацій: за призначенням; за режимом обробки задач; за способом взаємодії з системою; за способами побудови (архітектурним особливостям систем).
1. Класифікація ОС, за призначенням:
ОС великих ЕОМ (мейнфреймів). Основною характеристикою апаратного забезпечення, для якого їх розробляють, є продуктивність введення-виведення. Великі ЕОМ оснащують значною кількістю периферійних пристроїв (дисків, терміналів, принтерів тощо). Такі комп’ютерні системи використовують для надійної обробки значних обсягів даних, при цьому ОС має ефективно підтримувати цю обробку (в пакетному режимі або в режимі розподілу часу). Прикладом ОС такого класу може бути OS/390 фірми IBM.
Серверні ОС. Головна характеристика таких ОС - здатність обслуговувати велику кількість запитів користувачів до спільно використовуваних ресурсів. Важливу роль для них відіграє мережна підтримка. Нині для реалізації серверів частіше застосовують універсальні ОС (UNIX або системи лінії Windows XP).
Персональні ОС. Деякі ОС цієї категорії розробляли з розрахунком на непрофесійного користувача (лінія Windows 95/98/Ме фірми Microsoft), інші є спрощеними версіями універсальних ОС. Особлива увага в персональних ОС приділяється підтримці графічного інтерфейсу користувача і технологій мультимедіа.
ОС реального часу (ОСРЧ). У такій системі кожна операція має бути гарантовано виконана в заданому часовому діапазоні. ОС реального часу можуть керувати польотом космічного корабля, технологічним процесом або демонстрацією відеороликів. Існують спеціалізовані ОС реального часу, такі як QNX і WxWorks.
Вбудовані ОС. До них належать керуючі програми для різноманітних мікропроцесорних систем, які використовують у військовій техніці, системах побутової електроніки, смарт-картах та інших пристроях. До таких систем ставлять особливі вимоги: розміщення в малому обсязі пам’яті, підтримка спеціалізованих засобів введення-виведення, можливість прошивання в постійному запам’ятовувальному пристрої. Часто вбудовані ОС розробляються під конкретний пристрій; до універсальних систем належать Embedded Linux та Windows CE.
2. Класифікація ОС, за режимом обробки задач:
Одно програмні. Така ОС забезпечує роботу одної задачі одного користувача.
Мульти (багато) програмні. ОС дозволяє одночасно виконувати декілька програм одного користувача. Основна мета мультипрограмування — підвищення продуктивності обчислювальної системи за рахунок розподілення її ресурсів між декількома завданнями. Будь-яка затримка у виконанні однієї програми (наприклад, для здійснення операцій уведення-виведення даних) використовується для виконання інших (таких же, або менш важливих) програм.
Багатокористувацькі. Дозволяє одночасно обслуговувати багато задач багатьох користувачів, поділяється на мульти-процесорну та мульти-машинну (мережева ОС).
3. Класифікація ОС, за способом взаємодії з системою:
Системи пакетної обробки. Вони обробляють потік завдань. Все керування з читання та виконання завданнями бере на себе ОС. Характерні для великих машин, серверних та розподілених обчислювальних засобів.
Діалоговий або інтерактивний доступ. ОС виконує директиви користувачів в темпі надходження та намагається дати відповідь на кожну команду користувача за найкоротший час. Забезпечують підтримку одного (однотермінальні) або деякої кількості (багатотермінальні) користувачів одночасно. Для спілкування з користувачем може використовуватися командні (Linux) чи графічні (Windows, MacOS) інтерфейси. Тут мається на увазі, що графічний інтерфейс вбудований в ОС, а не є надбудовою над нею (KDE, X-Window).
4. Класифікація ОС, за способами побудови:
Мікроядерні. Ядро складаються зі скороченого набору процедур, що займаються тільки диспетчеризацією процесів та управлінням апаратурою обчислювальної системи. Яскравим прикладом мікроядерної ОС є ОСРЧ QNX.
Монолітні. У ядро ОС включено повний набір функцій. У захищеному режимі виконуються як процедури диспетчеризації так і планування використання ресурсів. Монолітними можна назвати ОС Windows та Linux. Слід зауважити, що ядро ОС Windows не можливо змінити, його початкові коди не доступні і немає програми для збірки (компіляції) цього ядра. А ось у випадку з Linux є можливість самостійно зібрати таке ядро, яке нам необхідно, включивши в нього тільки ті програмні модулі і драйвери, які ми рахуємо доцільним, включити саме в ядро (а не звертатися до них з ядра).
