Основні концепції операційних систем 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Основні концепції операційних систем



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

Причиною появи операційних систем була необхідність створення зручних у використанні комп'ютерних систем (під комп'ютерною системою будемо розуміти сукупність апаратного і програмного забезпечення комп'ютера). Комп'ютерні

системи від самого початку розроблялися для розв'язання практичних задач користувачів. Оскільки робити це за допомогою лише апаратного забезпечення виявилося складно, були створені прикладні програми. Для таких програм знадоби­

лися загальні операції керування апаратним забезпеченням, розподілу апаратних

ресурсів тощо. Ці операції згрупували в рамках окремого рівня програмного забезпечення, який і стали називати операційною системою.

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

Можна дати таке означення операційної системи:

Операційна система (ОС) — це програмне забезпечення, що реалізує зв'язок між прикладними програмами й апаратними засобами комп'ютера.

Основні концепції операційних систем

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

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

Перша функція властива ОС як розширеній машині, друга - ОС як розподілювача апаратних ресурсів.

Операційна система як розширена машина

За допомогою операційної системи у прикладного програміста (а через його програми і в користувача) має створюватися враження, що він працює з розширеною

машиною Апаратне забезпечення комп'ютера недостатньо пристосоване до безпосереднього використання у програмах. Наприклад, якщо розглянути роботу із пристроями введення-виведення на рівні команд відповідних контролерів, то можна побачити, що набір таких команд обмежений, а для багатьох пристроїв - примтивний (є навіть вислів: «апаратне забезпечення потворне»). Операційна система приховує такий інтерфейс апаратного забезпечення, замість нього програмістові пропонують інтерфейс прикладного програмування, що використовує поняття вищого рівня (їх називають абстракціями). Наприклад, при роботі з диском типовою абстракцією є файл. Працювати з файлами простіше, ніж безпосередньо з контролером диска (не потрібно враховувати переміщення головок дисковода, запускати й зупиняти мотор тощо), внаслідок цього програміст може зосередитися на суті свого прикладного завдання. За взаємодію з контролером диска відповідає операційна система. Виділення абстракцій дає змогу досягти того, що код ОС і прикладних програм не потребуватиме зміни при переході на нове апаратне забезпечення. Наприклад, якщо встановити на комп'ютері дисковий пристрій нового типу (за умови, що він підтримується ОС), всі його особливості будуть враховані на рівні ОС, а прикладні програми продовжуватимуть використовувати файли, як і раніше. Така характеристика системи називається апаратною незалежністю. Можна ска­

зати, що ОС надають апаратно-незалежне середовище для виконання прикладних програм.

Функціональні компоненти операційних систем

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

Керування пам'яттю

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

Мережна підтримка

Мережні системи

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

 

Безпека даних

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

шов аутентифікацію, на виконання певної операції)

Інтерфейс користувача

Розрізняють два типи засобів взаємодії користувача з ОС: командний інтерпретатор (shell) і графічний інтерфейс користувача (GUI). Командний інтерпретатор дає змогу користувачам взаємодіяти з ОС, використовуючи спеціальну командну мову (інтерактивно або через запуск на виконання командних файлів). Команди такої мови змушують ОС виконувати певні дії (наприклад, запускати програми, працювати із файлами). 24 Розділ 1. Основні концепції операційних систем Графічний інтерфейс користувача надає йому можливість взаємодіяти з ОС, відкриваючи вікна і виконуючи команди за допомогою меню або кнопок. Підходи до реалізації графічного інтерфейсу доволі різноманітні: наприклад, у Windows-системах засоби його підтримки вбудовані в систему, а в UNIX вони є зовнішніми для системи і спираються на стандартні засоби керування введенням-виведенням.

2.1.1. Механізми і політика

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

її гнучкість. Компонентам, що реалізують механізм, не повинна бути доступна інформація про причини та цілі його застосування; усе, що потрібно від них, - це 26 Розділ 2. Архітектура операційних систем

виконувати призначену їм роботу. Для таких компонентів використовують тер­мін «вільні від політики» (policy-free). Компоненти, відповідальні за політику, мають оперувати вільними від неї компонентами як будівельними блоками, для них недоступна інформація про деталі реалізації механізму. Прикладом відокремлення механізму від політики є керування введенням-ви веденням. Базові механізми доступу до периферійних пристроїв реалізують драй­вери. Політику використання цих механізмів задає програмне забезпечення, що здійснює введення-виведення.

Концепція віртуальних машин

У системах віртуальних машин програмним шляхом створюють копії апаратного забезпечення (відбувається його емуляція). Ці копії (віртуальні машини) працю ють паралельно, на кожній із них функціонує програмне забезпечення, з яким взаємодіють прикладні програми і користувачі. Уперше концепція віртуальних машин була реалізована в 70-ті роки в опера ційній системі VM фірми IBM. У СРСР варіант цієї системи (VM/370) був ши роко розповсюджений у 80-ті роки і мав назву Система віртуальних машин ЄС ЕОМ (СВМ ЄС). Ядро системи, яке називалося монітором віртуальних машин (VM Monitor, МВМ), виконувалося на фізичній машині, безпосередньо взаємодіючи з її апа ратним забезпеченням. Монітор реалізовував набір віртуальних машин (ВМ). Кожна ВМ була точною копією апаратного забезпечення, на ній могла бути запу щена будь-яка ОС, розроблена для цієї архітектури. Найчастіше на ВМ встано влювали спеціальну однокористувацьку ОС CMS (підсистема діалогової оброб ки, ПДО). На різних ВМ могли одночасно функціонувати різні ОС. Коли програма, написана для ПДО, виконувала системний виклик, його пере хоплювала копія ПДО, запущена на відповідній віртуальній машині. Потім ПДО виконувала відповідні апаратні інструкції, наприклад інструкції введення-виве дення для читання диска. Ці інструкції перехоплював МВМ і перетворював їх на апаратні інструкції фізичної машини. зо Розділ 2. Архітектура операційних систем Віртуальні машини спільно використовували ресурси реального комп'ютера; наприклад, дисковий простір розподілявся між ними у вигляді віртуальних дис ків, названих мінідисками. ОС, запущена у ВМ, використовувала мінідиски так само, як фізичні диски. Сьогодні концепція віртуальних машин застосовується і в прикладному про грамному забезпеченні; опис відповідних рішень (програмних емуляторів апаратно го забезпечення, технології керованого коду) можна знайти на сайті супроводу. 2.3. Операційна система та її оточення Із означення ОС випливає, що вона реалізує зв'язок між апаратним забезпечен ням комп'ютера (через інтерфейс апаратного забезпечення) і програмами кори стувача (через інтерфейс прикладного програмування). У цьому розділі розгля нуто особливості реалізації та використання цих інтерфейсів.

Базова архітектура UNIX

UNIX є прикладом досить простої архітектури ОС. Більша частина функціональ ності цієї системи міститься в ядрі, ядро спілкується із прикладними програмами за допомогою системних викликів. Базова структура класичного ядра UNIX зобра жена на рис. 2.3 (див., наприклад, [33, 59]). 2.4. Особливості архітектури: UNIX і Linux 35 Система складається із трьох основних компонентів: підсистеми керування процесами, файлової підсистеми та підсистеми введення-виведення. Підсистема керування процесами контролює створення та вилучення проце сів, розподілення системних ресурсів між ними, міжпроцесову взаємодію, керу вання пам'яттю. Файлова підсистема забезпечує єдиний інтерфейс доступу до даних, розташо ваних на дискових накопичувачах, і до периферійних пристроїв. Такий інтерфейс є однією з найважливіших особливостей UNIX. Одні й ті самі системні виклики використовують як для обміну даними із диском, так і для виведення на термінал або принтер (програма працює із принтером так само, як із файлом). При цьому файлова система переадресовує запити відповідним модулям підсистеми введен ня-виведення, а ті - безпосередньо периферійним пристроям. Крім того, файлова підсистема контролює права доступу до файлів, які значною мірою визначають привілеї користувача в системі. Підсистема введення-виведення виконує запити файлової підсистеми, взаємо діючи з драйверами пристроїв. В UNIX розрізняють два типи пристроїв: сим вольні (наприклад, принтер) і блокові (наприклад, жорсткий диск). Основна відмінність між ними полягає в тому, що блоковий пристрій допускає прямий 36 Розділ 2. Архітектура операційних систем доступ. Для підвищення продуктивності роботи із блоковими пристроями вико ристовують буферний кеш — ділянку пам'яті, у якій зберігаються дані, зчитані з диска останніми. Під час наступних звертань до цих даних вони можуть бути от римані з кеша. Сучасні UNIX-системи дещо відрізняються за своєю архітектурою. • У них виділено окремий менеджер пам'яті, відповідальний за підтримку вір туальної пам'яті. • Стандартом для реалізації інтерфейсу файлової системи є віртуальна файло ва система, що абстрагує цей інтерфейс і дає змогу організувати підтримку різних типів файлових систем. • У цих системах підтримується багатопроцесорна обробка, а також багатопото ковість. Базові архітектурні рішення, такі як доступ до всіх пристроїв введення-виве дення через інтерфейс файлової системи або організація системних викликів, за лишаються незмінними в усіх реалізаціях UNIX.

Архітектура Linux

В ОС Linux можна виділити три основні частини: • ядро, яке реалізує основні функції ОС (керування процесами, пам'яттю, вве денням-виведенням тощо); • системні бібліотеки, що визначають стандартний набір функцій для вико ристання у застосуваннях (виконання таких функцій не потребує переходу в привілейований режим); • системні утиліти (прикладні програми, які виконують спеціалізовані задачі). Призначення ядра Linux і його особливості Linux реалізує технологію монолітного ядра. Весь код і структури даних ядра пе ребувають в одному адресному просторі. У ядрі можна виділити кілька функціо нальних компонентів [63]. • Планувальник процесів — відповідає за реалізацію багатозадачності в системі (обробка переривань, робота з таймером, створення і завершення процесів, пе ремикання контексту). • Менеджер пам'яті - виділяє окремий адресний простір для кожного процесу і реалізує підтримку віртуальної пам'яті. • Віртуальна файлова система — надає універсальний інтерфейс взаємодії з різ ними файловими системами та пристроями введення-виведення. • Драйвери пристроїв - забезпечують безпосередню роботу з периферійними пристроями. Доступ до них здійснюється через інтерфейс віртуальної фай лової системи. • Мережний інтерфейс — забезпечує доступ до реалізації мережних протоколів і драйверів мережних пристроїв. • Підсистема міжпроцесової взаємодії — пропонує механізми, які дають змогу різним процесам у системі обмінюватися даними між собою. Деякі із цих підсистем є логічними компонентами системи, вони завантажу ються у пам'ять разом із ядром і залишаються там постійно. Компоненти інших 2.4. Особливості архітектури: UNIX і Linux 37 підсистем (наприклад, драйвери пристроїв) вигідно реалізовувати так, щоб їхній код міг завантажуватися у пам'ять на вимогу. Для розв'язання цього завдання Linux підтримує концепцію модулів ядра. Модулі ядра Ядро Linux дає можливість на вимогу завантажувати у пам'ять і вивантажувати з неї окремі секції коду. Такі секції називають модулями ядра (kernel modules) [ЗО] і виконують у привілейованому режимі. Модулі ядра надають низку переваг. • Код модулів може завантажуватися в пам'ять у процесі роботи системи, що спрощує налагодження компонентів ядра, насамперед драйверів. • З'являється можливість змінювати набір компонентів ядра під час виконання: ті з них, які в цей момент не використовуються, можна не завантажувати у пам'ять. • Модулі є винятком із правила, за яким код, що розширює функції ядра, відпо відно до ліцензії Linux має бути відкритим. Це дає змогу виробникам апарат ного забезпечення розробляти драйвери під Linux, навіть якщо не запланова но надавати доступ до їхнього вихідного коду. Підтримка модулів у Linux складається із трьох компонентів. • Засоби керування модулями дають можливість завантажувати модулі у па м'ять і здійснювати обмін даними між модулями та іншою частиною ядра. • Засоби реєстрації драйверів дозволяють модулям повідомляти іншу частину ядра про те, що новий драйвер став доступним. • Засоби розв'язання конфліктів дають змогу драйверам пристроїв резервува ти апаратні ресурси і захищати їх від випадкового використання іншими драйверами. Один модуль може зареєструвати кілька драйверів, якщо це потрібно (на приклад, для двох різних механізмів доступу до пристрою). Модулі можуть бути завантажені заздалегідь — під час старту системи (заван тажувальні модулі) або у процесі виконання програми, яка викликає їхні функції. Після завантаження код модуля перебуває в тому ж самому адресному просторі, що й інший код ядра. Помилка в модулі є критичною для системи. Особливості системних бібліотек Системні бібліотеки Linux є динамічними бібліотеками, котрі завантажуються у пам'ять тільки тоді, коли у них виникає потреба. Вони виконують ряд функцій: • реалізацію пакувальників системних викликів; • розширення функціональності системних викликів (до таких бібліотек нале жить бібліотека введення-виведення мови С, яка реалізує на основі системних викликів такі функції, як printfO); • реалізацію службових функцій режиму користувача (сортування, функції об робки рядків тощо). Застосування користувача Застосування користувача в Linux використовують функції із системних бібліотек

і через них взаємодіють із ядром за допомогою системних викликів. 38 Розділ 2. Архітектура операційних систем

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

Керування пам'яттю

Мережна підтримка

Безпека даних

Інтерфейс користувача

Монолітні системи

Багаторівневі системи

Системи з мікроядром

Концепція віртуальних машин

Монолітні системи

Багаторівневі системи

Системи з мікроядром

Концепція віртуальних машин

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

Причиною появи операційних систем була необхідність створення зручних у використанні комп'ютерних систем (під комп'ютерною системою будемо розуміти сукупність апаратного і програмного забезпечення комп'ютера). Комп'ютерні

системи від самого початку розроблялися для розв'язання практичних задач користувачів. Оскільки робити це за допомогою лише апаратного забезпечення виявилося складно, були створені прикладні програми. Для таких програм знадоби­

лися загальні операції керування апаратним забезпеченням, розподілу апаратних

ресурсів тощо. Ці операції згрупували в рамках окремого рівня програмного забезпечення, який і стали називати операційною системою.

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

Можна дати таке означення операційної системи:

Операційна система (ОС) — це програмне забезпечення, що реалізує зв'язок між прикладними програмами й апаратними засобами комп'ютера.

Основні концепції операційних систем



Поделиться:


Последнее изменение этой страницы: 2017-02-17; просмотров: 149; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 34.227.191.136 (0.029 с.)