Презентація "Архітектура операційних систем"

Попередній слайд
Наступний слайд


Завантажити презентацію "Архітектура операційних систем"
Слайд #1
Лекція 3-4. Архітектура операційних систем.
Викладач:
Карчевська Ольга Ігорівна,
асистент кафедри інформаційних систем та технологій,

Інститут підприємництва та перспективних технологій
Національного університету “Львівська політехніка”


Слайд #2
Лекція 3-4. Архітектура операційних систем.
План лекції.
1. Поняття архітектури операційних систем.
2. Взаємодія операційної системи з апаратним забезпеченням.
3. Взаємодія операційної системи з програмним забезпеченням.
4. Підходи до реалізації архітектури операційних систем.
5. Архітектура системи UNIX.
6. Архітектура системи Linux.
7. Архітектура системи Windows.


Слайд #3
1. Поняття архітектури операційних систем.
Архітектура операційної системи – це сукупність компонентів системи та порядок їхньої взаємодії між собою та із зовнішнім середовищем.
Основні компоненти (складові) операційної системи:
ЯДРО
системні бібліотеки
програми обслуговування системи
базові прикладні програми
Зовнішнє середовище
(інші програми)


Слайд #4
Режими виконання процесором програмного коду
Режим ядра (kernel mode).
Команди, що виконуються у цьому режимі:
- мають прямий доступ до апаратного забезпечення;
- мають доступ до усієї пам’яті комп’ютера;
- не можуть бути витіснені у файл підкачки на диск;
- виконуються з найвищим пріоритетом.
Режим користувача (user mode).
Програма, що виконується у цьому режимі:
- не має прямого доступу до апаратури;
- має обмежений адресний простір;
- може бути витіснена у віртуальну пам’ять;
- виконується з меншим пріоритетом, ніж ядро.
Команди, які є критичними для роботи системи (перемикання задач, звертання до пам’яті з заданими межами, доступ до пристроїв введення-виведення) в цьому режимі недопустимі.
Обидва режими реалізовані на апаратному рівні.
Підтримка захищеного режиму реалізована починаючи з 32- розрядних процесорів.


Слайд #5
2. Взаємодія операційної системи з апаратним забезпеченням.
Засоби апаратної підтримки операційних систем:
система переривань:
апаратні переривання
програмні переривання
привілейований режим процесора
засоби керування пам’яттю:
механізми трансляції адрес
захист пам’яті
системний таймер
захист пристроїв введення-виведення
базова система введення-виведення. (BIOS).


Слайд #6
3. Взаємодія операційної системи з програмним забезпеченням.
Засобами взаємодії операційної системи та програм є:
системні виклики
Системний виклик – це засіб доступу до певної функції ядра операційної системи із прикладних програм.
інтерфейс програмування застосувань (API)
Сюди входять додаткові функції, котрі доповнюють та розширюють можливості системних викликів.
Мета формування інтерфейсу програмування застосувань: надати програмісту бібліотеку функцій, котрі виконують системні виклики та реалізовані у режимі користувача.
Програмна сумісність – можливість виконувати в середовищі однієї ОС програми, розроблені для іншої ОС.
Досягається за рахунок:
- наявності стандарту на мову програмування та компілятор,
- наявності стандарту на інтерфейс програмування застосувань.


Слайд #7
Схема взаємодії між ядром та прикладними програмами.
Прикладна
програма
Ядро ОС
Системний виклик,

передача параметрів ядру
Виконання команди
Використання одержаних даних
Перемикання
між
режимами
Перемикання
між
режимами
Передача
результату
Результат
Необхідність доступу до апаратних ресурсів
Режим користувача
Режим
ядра


Слайд #8
Схема взаємодії між ядром та прикладними програмами (приклад).
Прикладна
програма
Ядро ОС
mkdir

параметр: ім’я папки
Виконання команди:
- перевірка прав доступу,
- виділення місця на диску,
- внесення запису у файлову таблицю
Використання папки / аналіз причини неможливості створення папки
Перемикання
між
режимами
Перемикання
між
режимами
Передача
результату
Результат:
- створена папка,
- код помилки у разі невдачі
Створити папку
Режим користувача
Режим
ядра


Слайд #9
Механізм операційної системи – набір фундаментальних можливостей, які надають її компоненти.
(ЩО реалізовано компонентом)
Політика управління компонентами – рішення щодо використання визначених можливостей.
(ЯК можна використати компоненти)
Механізм операційної системи та політика управління компонентами.


Слайд #10
4. Підходи до реалізації архітектури операційних систем.
Виділяють наступні основні реалізації архітектури операційних систем:
Монолітна система
Багаторівнева система
Система з мікроядром
Віртуальна машина


Слайд #11
Монолітна система – це система, у якій всі базові функції сконцентровані у ядрі.
Базова структура монолітної системи:
Монолітні системи
+
-
1) підвищується продуктивність (не витрачається час на перемикання між режимами).
Основна програма
Службові процедури, котрі виконують системні виклики
Допоміжні підпрограми для виконання службових процедур
!!! Увесь код виконується у привілейованому режимі
1) менш надійні (оскільки увесь код виконується у привілейованому режимі, то кожна помилка може бути критичною).
Приклади: OS/360, UNIX ранніх версій.


Слайд #12
Багаторівневі системи
Багаторівнева система – це система, компоненти котрої утворюють ієрархію рівнів, кожен з яких спирається на функції попереднього рівня.
Схема рівнів
системи:
+
-
1) Висока продуктивність;
Апаратура
Засоби апаратної підтримки ядра
Машинно-залежні модулі
Базові функції ядра
Менеджери ресурсів
Інтерфейс системних викликів
Системні та прикладні програми
Приклад: THE, створена Е.Дейкстрою в Technische Hogeschool Eindhoven, 1968 р.
MULTICS, Масачусетський університет, Bell Labs, General Electrics.
1) великий обсяг коду ядра знижує надійність системи.


Слайд #13
Системи з мікроядром
Система з мікроядром – це система, у якій невелика частка функцій ядра реалізована у привілейованому режимі (mikrokernel), інші функції – виконуються процесами режиму користувача.
+
-
1) невеликий розмір ядра спрощує його розробку та налагодження;
2) висока надійність (тільки невелика кількість команд мікроядра має доступ до апаратного забезпечення);
3) більша гнучкість та розширюваність (нові функції можна додати шляхом додавання нового модуля);
4) можливість адаптації до умов мережі (функції ядра та режиму користувача можуть знаходитись на різних комп’ютерах).
1) зниження продуктивності через велику кількість переключень між режимами
Прикладна
програма
Модуль
операційної системи
режиму користувача
Мікроядро
Режим ядра
Режим користувача
Системний виклик
Повернення результату
Обмін даними
Приклад: Symbian OS, Minix.


Слайд #14
Віртуальні машини
Віртуальна машина – це створена програмно копія апаратного забезпечення, на якій функціонує одна чи декілька інших операційних систем.
Існує два типи віртуальних машин:
1) Віртуальна машина, що працює безпосередньо на реальному обладнанні,
2) Віртуальна машина, котра встановлена як прикладна програма над існуючою ОС.
Монітор віртуальної машини (гіпервізор)
Апаратне забезпечення
ОС 1
Windows
OC 2
Linux
OC n
FreeBSD
Прикладні програми, що працюють в межах конкретної ОС
Операційні системи, встановлені на віртуальній системі


Слайд #15
Віртуальні машини
Схема роботи віртуальної машини, котра встановлена як прикладна програма над існуючою ОС.
Прикладні програми, що працюють в межах конкретної гостьової ОС
Гостьові операційні системи
(guest OS)
Прикладні програми, що працюють в межах основної ОС
Основна операційна система (host OS)
Монітор віртуальної машини (гіпервізор)
Апаратне забезпечення
ОС 1
Windows
OC 2
Linux
OC n
FreeBSD
Приклади: VMware, розробка дослідників Стенфордського університету, 1999р.
Virtual PC, розробку розпочала фірма Connectix, згодом проект викупила Microsoft.


Слайд #16
5. Архітектура операційної системи UNIX (базова)
Режим апаратури
Режим ядра
Режим користувача
Апаратне забезпечення
Засоби керування апаратурою
Підсистема
введення-виведення
Драйвери символьних пристроїв
Драйвери блокових пристроїв
Підсистема
керування
процесами
Міжпроцесорна взаємодія
Планувальник
Керування пам’яттю
Буферний кеш
Файлова підсистема
Інтерфейс системних викликів
Програми користувача
Системні бібліотеки


Слайд #17
Архітектура операційної системи UNIX
Компоненти режиму ядра
1. Підсистема керування процесами – контролює створення та вилучення процесів, розподілення системних ресурсів між ними, міжпроцесову взаємодію, керування пам’яттю.
2. Файлова підсистема – забезпечує єдиний інтерфейс доступу до даних, розташованих на дискових накопичувачах та до периферійних пристроїв, контролює права доступу до файлів.
!!! В UNIX-подібних системах одні і ті самі системні виклики використовують як для обміну даними з диском, так і для виведення на термінал або принтер (програма працює з принтером як з файлом).
3. Підсистема введення-виведення – виконує запити файлової підсистеми.
Символьні пристрої – файли цих пристроїв потрібно зчитувати/записувати послідовно, потоками символів. (принтер, модем)
Блокові пристрої – допускають прямий доступ до будь-якої ділянки файлу. (диск)
4. Інтерфейс системних викликів – обов’язково має містити визначений стандартом POSIX мінімальний набір функцій для управління процесами, файловою системою, правами користувачів, системним часом.
Стандарт POSIX (Portable Operating System) розроблений інститутом IEEE для забезпечення сумісності усіх UNIX-подібних систем.


Слайд #18
6. Архітектура операційної системи Linux
Ядро
Планувальник процесів
Менеджер пам’яті
Віртуальна файлова система
Драйвери пристроїв
Мережний інтефейс
Підсистема міжпроцесорної взаємодії
Системні бібліотеки
Системні утиліти
- стандартний набір функцій для використання у прикладних програмах
- прикладні програми, які виконують спеціалізовані задачі
В ОС Linux можна виділити три основні частини:


Слайд #19
Архітектура операційної системи Linux
1. Планувальник процесів - відповідає за реалізацію багатозадачності (робота з таймером, створення та завершення процесів та ін.)
2. Менеджер пам’яті - виділяє адресний простір для кожного процесу та реалізує підтримку віртуальної пам’яті.
3. Віртуальна файлова система - надає універсальний інтерфейс взаємодії з різними файловими системами та пристроями введення-виведення.
4. Драйвери пристроїв - забезпечують роботу з периферійними пристроями.
5. Мережний інтефейс - забезпечує доступ до мережних протоколів та драйверів мережних пристроїв.
6. Підсистема міжпроцесорної взаємодії - забезпечує обмін даними між процесами.
Компоненти режиму ядра:


Слайд #20
7. Архітектура операційної системи Windows
Режим апаратури
Режим ядра
Режим користувача
Апаратне забезпечення
Рівень абстрагування від апаратури (HAL)
Диспетчер
введення-виведення
Виконавчий рівень NTOS
Програми користувача
Бібліотека системного інтерфейсу
Ядро NTOS.
Диспетчер кеша
Диспетчер процесів і потоків
Диспетчер об’єктів
Засіб локального виклику процедур
Менеджер конфігурації
Диспетчер безпеки
Менеджер енерго-споживання
Диспетчер віртуальної пам’яті
Файлова система
Драйвери пристроїв
Графічні драйвери


Слайд #21
Архітектура операційної системи Windows
Компоненти режиму ядра.
1. Рівень абстрагування від устаткування (Hardware Abstraction Layer, HAL). (hal.dll)
Завданням цього рівня є “приховати” залежні від апаратури команди для роботи з регістрами процесора, пам’яттю, системним таймером та іншим обладнанням, надаючи ядру системи та драйверам набір незалежних від комп’ютера служб (процедур та макросів).
2. Ядро (ntoskrnl.exe) має два рівні:
1) Рівень ядра, котрий здійснює
- диспетчирезацію пасток, виключень, переривань,
- планування та синхронізацію процесів;
2) Виконавчий рівень – набір компонентів (диспетчерів), відповідальних за найважливіші служби ОС.


Слайд #22
Архітектура операційної системи Windows
Складові виконавчого рівня ядра:
Диспетчер об’єктів – відповідає за розподіл ресурсів у системі, підтримуючи їхнє універсальне подання через об’єкти.
Диспетчер введення-виведення:
а) Реалізує єдиний інтерфейс для драйверів пристроїв,
б) Містить засоби Plug and Play.
в) Керує енергоспоживанням (економний режим для ноутбуків).
3. Диспетчер процесів і потоків – створює та завершує процеси та потоки, розподіляє для них ресурси.
4. Диспетчер вітруальної пам’яті.
5. Диспетчер кешу – оптимізує продуктивність читання/запису у файловій системі.
6. Диспетчер конфігурації – компонент, що підтримку роботи з реєстром. Реєстр містить конфігураційні файли для системи та прикладних програм.
7. Засіб для локального виклику процедур – забезпечує механізм зв’язку між процесами.
Драйвери пристроїв – це динамічно зв’язувані бібліотеки, котрі завантажуються компонентами виконавчого рівня ядра.


Слайд #23
Архітектура операційної системи Windows
Компоненти режиму користувача.
1. Бібліотека системного інтерфейсу. (ntdll.dll)
Надає набір функцій, кожній з яких відповідає функція режиму ядра. Використовуються підсистемами середовища.
2. Підсистеми середовища.
Надають прикладним програмам доступ до служб операційної системи, реалізуючи інтерфейс прикладного програмування – Application Programming Interface, API. У MS Windows це Win32 API (Win64 API - сучасна).
До Win API входять компоненти:
процес підсистеми (csrss.exe), котрий відповідає за реалізацію консольного введення-виведення, створення та знищення процесів,
бібліотеки функцій Win API. Найчастіше функції містяться у файлах kernel32.dll, user32.dll, gdi32.dll.
3. Системні процеси.
Менеджер сесій (Session manager, smss.exe). Запускається першим і запускає процес реєстрації в системі.
Процес реєстрації в системі (winlogon.exe) відповідає за допуск користувача в систему.
Диспетчер керування службами (services.exe) відповідає за запуск служб планувальника задач, журналу подій, відновлення системи, служби баз даних та веб-сервісів.
4. Прикладні програми.


Слайд #24
Висновки
Архітектура операційної системи – це сукупність компонентів системи та порядок їхньої взаємодії між собою та із зовнішнім середовищем.
Режими роботи процесора: режим ядра, режим користувача.
Виділяють наступні основні реалізації архітектури операційних систем: монолітна система, багаторівнева система, система з мікроядром, віртуальна машина.
Операційна система UNIX є прикладом реалізації багаторівневої архітектури.
Операційна система Linux має монолітну архітектуру.
Архітектура операційної системи Windows не належить до стандартних типів. Вона має риси архітектури системи з мікроядром та багаторівневої архітектури.


Слайд #25
Література:
Шеховцов В. А. Операційні системи. – К.: BHV, 2005 . -576 с.
Таненбаум. Э. Современные операционные системы.2-е изд. – СПб.: Питер, 2002. – 1040 с.