
- •Місце операційної системи в структурі комп'ютера
- •Програмне|програмове| забезпечення і його види
- •1. Лекція: Введення|вступ|
- •Головні поняття з Операційних систем
- •Основні принципи побудови|шикування| ос
- •Класифікація ос
- •Модель клієнт-сервер
- •Особливості методів побудови
- •3. Лекція: Процеси в операційних системах. Стратегії планування процесів
- •Стратегії планування процеcу
- •4.3.2 Пріоритетне планування
- •4.3.3 Методи розділення процесів на групи
- •4.4 Планування в системах реального часу
- •4.4.1 Планування однорідних процесів
- •4.4.2 Загальне планування реального часу
- •Адресний простір процесу
- •3. Взаємодія процесів. Користувальницький рівень.
Основні принципи побудови|шикування| ос
принцип модульності.
Модуль – функціонально закінчений елемент, що виконується відповідно до прийнятого міжмодульного інтерфейсу. Модуль виділяється за функціональною ознакою. Модульна організація дозволяє легко |із|замінювати неправильно працюючі модулі в ОС.
принцип функціональної вибірковості. Для організації ефективної роботи ОС, необхідно виділити деякі модулі і зберігати їх в ОЗУ. Ці модулі складають ядро ОС. Ядро:
Модулі по управлінню системи переривань;
Засіб|кошт| управління виконання програм (завантаження|загрузка|, призупинення|припинення|, зупинка);
Модулі по управлінню процесом (розподіл процесорного часу), тобто диспетчери програм;
Модулі по управлінню виділення пам'яті. Залежно від ОС в ядро можуть ще входити інші модулі;
Транзитні модулі (завантажуються в ОЗУ в міру необхідності, при браку|нестачі| ОЗУ можуть бути вивантажені з пам'яті).
принцип генеруємості ОС. Маємо на увазі собою можливість генерації ОС залежно від апаратного забезпечення. Процес генерації зазвичай проводиться один раз, перед досить довгим режимом експлуатації. Для генерації необхідна наявність декількох компонентів:
Вихідний|початковий| код ОС;
Компілятор з мови|язика| програмування на якому система написана;
Спеціальна програма і вхідна мова|язик| для неї, яка дозволяє управляти процесом генерації.
ОС з|із| відкритим|відчиняти| системним кодом – Linux| (UNIX|), є можливість|спроможність| тонкого налаштування ядра для конкретного процесора.
принцип функціональної надмірності. До складу ОС повинно входить декілька типів ПО для виконання однакових функцій (підтримка різних файлових систем).
принцип віртуалізації. Дозволяє представити ресурси ОС у вигляді певного набору планувальників і моніторів і використовує єдину схему розподілу ресурсів. Найбільший прояв – концепція віртуальної машини (відтворює архітектуру реальної машини, але може володіти довільними характеристиками).
принцип незалежності програм від зовнішніх пристроїв. Зв'язок програм з конкретним зовнішнім пристроєм проводиться не на етапі трансляції, а на етапі виконання програми. Виходить вигода: не потрібна зайва «перекомпіляція».
принцип сумісності. Здатність виконувати програми для іншої ОС або навіть для іншої апаратної платформи.
2 рівня сумісності:
за виконуваним кодом (бінарна). Умови сумісності:
На рівні команд процесора (одна і та ж платформа);
Сумісність на рівні системних викликів;
Сумісність на рівні бібліотечних викликів, якщо є динамічно зв'язуваними.
за вихідним|початковим| кодом. Потрібне виконання наступних|слідуючих| умов:
Наявність компілятора платформи, на якому написана програма;
Сумісність на рівні системних викликів;
Сумісність на рівні бібліотечних викликів.
принцип відкритої нарощуваної ОС (відкритий вихідний код). Цілісність ОС зберігається (UNIX).
принцип мобільності (переносимості). ОС повинна легко переноситися на іншу апаратну платформу. Правила створення переносимих ОС:
ОС має бути написана на мові|язиці| високого рівня, для якої існує компілятор на апаратній платформі. В основному, сучасні ОС пишуть на Сі.
Необхідно уникати коду, який безпосередньо працює з|із| апаратним забезпеченням.
принцип забезпечення безпеки і захисту:
Захист системи від користувача;
Захист від несанкціонованого доступу.
У 1983 р. придумані|вигадувати| критерії оцінки надійності ОС.
Існують 4 класи безпеки:
Клас D. Відносяться системи, що не задовольняють системам попередніх класів (небезпечний);
Клас C. Забезпечення захисту даних від помилок користувача. ОС повинна мати наступні|слідуючі| засоби|кошти|:
Засоби|кошти| секретного входу;
Обов'язкова наявність виборчого|вибіркового| контролю доступу;
Засоби|кошти| обліку|урахування| і спостереження (аудит);
Необхідна ініціалізація пам'яті при її звільненні|визволенні|. Сучасні ОС відносяться до цього класу.
Клас B. Засновані на помічених|позначити| даних і є наявність розподілу користувачів по категоріях, будь-який користувач має рейтинг доступу до даних.
Клас A. Найвищий рівень безпеки. Необхідно, щоб|аби| був|наявний| формальний (математичний) доказ безпеки ОС. Приблизно 90% процесорного часу витрачається на систему безпеки. У наш час|в наші часи| використовуються класи B і C.
Основні поняття, концепції ОС
В процесі еволюції виникло декілька важливих|поважних| концепцій, які стали невід'ємною частиною|часткою| тео-|
рії| і практики ОС. Ті що розглядаються|розглядують| в даній лекції поняття зустрічатимуться і роз'яснюватимуться|роз'яснятимуть| на
протязі всього курсу. Тут дається їх короткий опис.
Системні виклики
У будь-якій операційній системі підтримується механізм, який дозволяє призначеним для користувача про|грамам звертатися|обертатися| до послуг ядра ОС. У операційних системах найбільш відомої радянською |машини БЕСМ-6 відповідні засоби|кошти| "спілкування" з|із| ядром називалися екстракодами, в операційних системах IBM| вони називалися системними макрокомандами і так далі. У ОС Unix| такі засоби називаються системними викликами.
Системні виклики (system| calls|) – це інтерфейс між операційною системою і призначеною для користувача програмою. Вони створюють, видаляють|віддаляють| і використовують різні об'єкти, головні|чільні| з|із| яких, – процеси і файли. Призначена для користувача програма запрошує сервіс в|біля| операційної системи, здійснюючи системний виклик. Є|наявний| бібліотеки процедур, які завантажують машинні регістри|реєстри| певними параметрами і здійснюють переривання процесора, після чого управління передається обробникові даного виклику, що входить в ядро операційної системи. Мета|ціль| таких бібліотек – зробити системний виклик схожим на звичайний|звичний| виклик підпрограми.
Основна відзнака|відмінність| полягає в тому, що при системному виклику завдання|задача| переходить в привілейований ре|жим або режим ядра (kernel| mode|). Тому системні виклики інколи|іноді| ще називають програмними|програмовими| перериваннями, на відміну від апаратних переривань, які частіше називають просто перериваннями.
У цьому режимі працює код ядра операційної системи, причому виконується він в адресному просторі || і в контексті завдання|задачі|, що викликало|спричиняло| його. Таким чином, ядро операційної системи має повний|цілковитий| доступ до пам'яті призначеної для користувача програми, і при системному виклику досить передати адреси однієї або декількох областей пам'яті з|із| параметрами виклику і адреси однієї або декількох областей пам'яті для результатів виклику.
У більшості операційних систем системний виклик здійснюється командою програмного|програмового| перери-|
вання| (INT|).
Програмне|програмове| переривання – це синхронна подія, яка може бути повторена при виконанні одного й тогож програмного коду|програмової|.
Переривання
Переривання (hardware| interrupt|) – це подія, що генерується зовнішнім (по відношенню до процесора) пристроєм|устроєм|. За допомогою апаратних переривань апаратура або інформує центральний процесор про те, що сталася яка-небудь подія, що вимагає негайної реакції (наприклад, користувач натиснув|натискав| клавішу), або повідомляє про завершення асинхронної операції введення-виводу|висновку| (наприклад, закінчено читання даних з диска в основну пам'ять).
Важливий|поважний| тип апаратних переривань – переривання таймера, які генеруються періодично через фіксований проміжок часу.
Переривання таймера використовуються операційною системою при плануванні|плануванні| процесів. Кожний тип|тип| апаратних переривань має власний номер, однозначно визначене джерело переривання. Апаратне переривання – це асинхронна подія, тобто|цебто| вона виникає незалежно від того, який код виконується процесором в даний момент. Обробка апаратного переривання не повинна враховувати, який процес є поточним.
Виняткові ситуації
Виняткова ситуація (exception|) – подія, що виникає в результаті|внаслідок| спроби виконання про|грамної команди, яка по якихось причинах не може бути виконана до кінця.
Прикладами|зразками| таких команд можуть бути спроби доступу до ресурсу за відсутності достатніх привілеїв|привілегій| або звернення до відсутньої сторінки пам'яті. Виняткові ситуації, як і системні виклики, є|з'являються| син-|
хронними| подіями, що виникають в контексті поточного завдання|задачі|. Виняткові ситуації можна
розділити на ті що можна виправити і н не виправні.
До поправних відносяться такі виняткові ситуації як відсутність потрібної інформації в оперативній пам'яті. Після|потім| усунення причини поправної виключної ситуації програма може виконуватися далі. Виникнення в процесі роботи опе|раціонної системи поправних виняткових ситуацій вважається|лічить| нормальним явищем.
Невиправні| виняткові ситуації найчастіше виникають в результаті|внаслідок| помилок в програмах (наприклад
ділення|поділка| на нуль). Зазвичай|звично| в таких випадках операційна система реагує завершенням програми, що викликала|спричиняла| виняткову ситуацію.
Файли
Файли призначені для зберігання інформації на зовнішніх носіях, тобто|цебто| прийнято, що інформа-|
ція|, записана, наприклад, на диску, повинна знаходитися|перебувати| усередині|всередині| файлу. Зазвичай|звично| під файлом розуміють іменовану частину|частку| простору|простір-час| на носієві інформації.
Головне|чільне| завдання|задача| файлової системи (file| system|) – приховати особливості введення-виводу|висновку| і дати програмістові просту абстрактну модель файлів, незалежних від пристроїв|устроїв|. Для читання, створення|створіння|, видалення|віддалення|, запи|сів, відкриття|відчиняти| і закриття файлів також є|наявний| обширна|величезна| категорія системних викликів (створення|створіння|, видалення|, відкриття|відчиняти|, закриття, читання і так далі). Користувачам добре знайомі такі пов'язані з організацією файлової системи поняття, як каталог, поточний каталог, кореневий каталог, |колія|. Для маніпулювання цими об'єктами в операційній системі є|наявний| системні виклики.
Файлова система ОС описана в лекціях 15–18.
Процеси, нитки
Концепція процесу в ОС одна з найбільш фундаментальних. Процеси детально розглянуті|розглядувати| в лекції №3.