Лекція 3. Архітектура операційних систем

3.1. Складові ОС

До основних компонентів операційної системи входять: ядро ОС, завантажувач, командний інтерпретатор, драйвери пристроїв, графічний інтерфейс користувача.

Ядро - центральна частина операційної системи, що забезпечує додаткам координований доступ до ресурсів комп'ютера, таких як процесорний час, пам'ять, зовнішнє апаратне забезпечення, зовнішні пристрої введення і виведення інформації.

Завантажувач операційної системи - системне програмне забезпечення, що забезпечує завантаження операційної системи безпосередньо після ввімкнення комп'ютера.

Для забезпечення інтерфейсу командного рядка в ОС часто використовуються командні інтерпретатори, які можуть представляти собою самостійні мови програмування, з власним синтаксисом і помітними функціональними можливостями.

Драйвер  - це комп'ютерна програма, за допомогою якої інша програма (зазвичай операційна система) отримує доступ до апаратного забезпечення деякого пристрою. У загальному випадку, для використання будь-якого пристрою (як зовнішнього, так і внутрішнього) необхідний драйвер.

Інтерфейс користувача - різновид інтерфейсів, в якому одна сторона представлена людиною (користувачем), інша – машиною/пристроєм. Являє собою сукупність засобів і методів, за допомогою яких користувач взаємодіє з різними програмами, пристроями і апаратурою.

Графічний інтерфейс користувача - різновид користувацького інтерфейсу, у якому елементи інтерфейсу (меню, кнопки, значки, списки і т.п.), що представлені користувачеві на дисплеї, виконані у вигляді графічних зображень.

 

3.2. Ядро операційної системи

Ядро — центральна частина операційної системи, що реалізовує інтерфейс між прикладними процесами та обладнанням комп'ютера. Завантажується в оперативну пам'ять комп'ютера і безпосередньо взаємодіє з апаратурою, забезпечуючи керування апаратними засобами, підтримку одночасної роботи багатьох користувачів, підтримку паралельного виконання багатьох процесів в системі.

Підсистеми ядра операційної системи:

  • Інтерфейс ядра операційної системи

Функції ядра операційної системи можуть бути виконані внаслідок виконання в прикладних програмах спеціальних функцій — системних викликів. Призначення системного виклику полягає в тому, що прикладні програми не взмозі самотужки визначити, за якими адресами знаходяться функції ядра. Системні виклики найчастіше мають синтаксис функції мови програмування, на якій написано ядро ОС.

  • Підсистема управління введенням-виведенням

Дана підсистема реалізує базові механізми обміну даними між пристроями введення-виведення та оперативною пам'яттю обчислювальної машини та забезпечує організацію файлів в файлові системи.

В окремих операційних системах підсистема управління введенням-виведенням також може впроваджувати механізми, які призвані підвищити швидкість обміну даними між задачами та файлами. Найчастіше використовується механізм буферизації (кешування) даних, який полягає в тому, що при читанні даних з файлу підсистема намагається за одну операцію введення читати дані блоками зручного (зазвичай досить великого) розміру, а не порціями, які запитує задача.

  • Підсистема управління оперативною пам'яттю

Будь яка програма може виконуватись лише тоді, коли вона завантажена в оперативну пам'ять, так само, будь які дані з файлів можуть оброблятись лише тоді, коли вони завантажені в оперативну пам'ять. Завантаження програми та даних в оперативну пам'ять призводить до того, що в оперативній пам'яті одночасно знаходяться одразу кілька компонентів: ядро операційної системи, командний інтерпретатор, програма, що виконується, та дані, що обробляються. Крім того, програма в процесі свого виконання може звертатись до підсистеми управління оперативною пам'яттю з запитами на виділення додаткової — динамічної — оперативної пам'яті.

  • Підсистема управління задачами (процесами)

Дана підсистема забезпечує створення задачі (процесу), завантаження програмного коду і його виконання та завершення задачі (процесу).

В багатозадачних системах підсистема управління задачами (процесами) також забезпечує механізми залежностей між задачами, в тому числі: синхронізацію задач та успадкування властивостей.

  • Засоби міжпроцесної взаємодії

Взаємодія процесів дозволяє процесам синхронізувати свою роботу, сумісно і узгоджено використовувати спільні ресурси та спільно виконувати обробку даних.

Взаємодія процесів забезпечується всіма підсистемами ядра ОС.

 

3.3. Базовий набір прикладних програм

Безпека ОС базується на двох ідеях:

  • ОС надає прямий чи непрямий доступ до ресурсів на кшталт файлів на локальному диску, привілейованих системних викликів, особистої інформації про користувачів та служб, представлених запущеними програмами;
  • ОС може розділити запити ресурсів від авторизованих користувачів, дозволивши доступ, та неавторизованих, заборонивши його.

Запити, в свою чергу, також діляться на два типи:

  1. Внутрішня безпека — вже запущені програми. На деяких системах програма, оскільки вона вже запущена, не має ніяких обмежень, але все ж типово вона має ідентифікатор, котрий використовується для перевірки запитів до ресурсів.
  2. Зовнішня безпека — нові запити із-за меж комп'ютера, як наприклад реєстрація з консолі чи мережеве з'єднання. В цьому випадку відбувається процес авторизації за допомогою імені користувача та паролю, що його підтверджує, чи інших способів як наприклад магнітні картки чи біометричні дані.

На додачу до моделі дозволити/заборонити системи з підвищеним рівнем безпеки також слідкують за діяльністю користувачів, що дозволяє пізніше дати відповідь на питання типу «Хто читав цей файл?»

Більшість сучасних операційних систем мають графічний інтерфейс користувача (ГІК). В деяких старіших ОС ГІК вбудований у ядро, як наприклад у оригінальних реалізаціях Microsoft Windows чи MacOS. Більшість сучасних ОС є модульними і графічна підсистема у них відділена від ядра (як наприклад у Linux, macOS і частково у Windows).

Багато операційних систем дозволяють користувачеві встановити будь-який графічний інтерфейс на власний вибір. Типовим прикладом у більшості Unix-систем є віконна система Х у поєднанні з графічним менеджером KDE чи Gnome. Для Unix-систем графічний інтерфейс не є необхідним.

Графічний інтерфейс користувача постійно розвивається. Наприклад, інтерфейс Windows модифікується щоразу при випуску нової основної версії, а ГІК MacOS було кардинально змінено після випуску Mac OS X у 2001 році.

Драйвери — це особливий тип комп'ютерних програм, розроблених для коректної взаємодії з пристроями. Вони представляють інтерфейс для взаємодії з пристроєм через певну шину комп'ютера, до якої даний пристрій під'єднано, за допомогою ряду команд що відправляють та отримують дані з пристрою. Ці програми залежні як від пристрою так і від операційної системи, тобто кожен пристрій потребує свого драйвера під кожну ОС.

Ключовим моментом проектування драйверів є абстрагування. Кожна модель пристрою (навіть якщо пристрої однакового класу) є унікальною. Новіші моделі часто працюють швидше чи продуктивніше та інакше контролюються. ОС не може знати, як контролювати кожен пристрій зараз і в майбутньому. Для вирішення цієї проблеми ОС лише задає правила поведінки класу пристроїв. Задачею драйвера є перетворення цих правил у специфічні для кожного пристрою команди керування.

В більшості сучасних ОС реалізовано підтримку стеку протоколів TCP/IP. Це означає що вони можуть взаємодіяти в мережі, отримуючи доступ до ресурсів один одного.

Остання зміна: Saturday 30 May 2020 14:24 PM