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

content: Лекція 3-4. Архітектура операційних систем.Викладач:Карчевська Ольга Ігорівна,асистент кафедри інформаційних систем та технологій,Інститут підприємництва та перспективних технологійНаціонального університету “Львівська політехніка”

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

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

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

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

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

content: Схема взаємодії між ядром та прикладними програмами.ПрикладнапрограмаЯдро ОССистемний виклик,передача параметрів ядруВиконання командиВикористання одержаних данихПеремиканняміжрежимамиПеремиканняміжрежимамиПередачарезультатуРезультатНеобхідність доступу до апаратних ресурсівРежим користувачаРежимядра

content: Схема взаємодії між ядром та прикладними програмами (приклад).ПрикладнапрограмаЯдро ОСmkdirпараметр: ім'я папкиВиконання команди:- перевірка прав доступу,- виділення місця на диску,- внесення запису у файлову таблицюВикористання папки / аналіз причини неможливості створення папкиПеремиканняміжрежимамиПеремиканняміжрежимамиПередачарезультатуРезультат:- створена папка,- код помилки у разі невдачіСтворити папкуРежим користувачаРежимядра

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

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

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

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

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

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

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

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

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

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

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

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

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

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

content: Архітектура операційної системи 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. Прикладні програми.

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

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