You are on page 1of 7

Громов Андрій Андрійович

ФКІТ 122, КН 121


Екзаменаційний білет № 3

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

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


викликати кожну. Всі процедури працюють в привілейованому режимі.
Таким чином, монолітне ядро - це така схема операційної системи, при
якої всі її компоненти є складовими частинами однієї програми,
використовують загальні структури даних і взаємодіють один з одним
шляхом безпосереднього виклику процедур. Для монолітної операційної
системи ядро збігається з усією системою. Збірка ядра, тобто його
компіляція, здійснюється окремо для кожного комп'ютера, на який
встановлюється операційна система. При цьому можна вибрати список
обладнання і програмних протоколів, підтримка яких буде включена в
ядро. Так як ядро є єдиною програмою, перекомпіляція - це єдиний спосіб
додати в нього нові компоненти або виключити невикористовувані. Слід
зазначити, що присутність в ядрі зайвих компонентів вкрай небажано, так
як ядро завжди повністю розташовується в оперативній пам'яті. Крім того,
виключення непотрібних компонентів підвищує надійність операційної
системи в цілому.
Монолітне ядро - найстаріший спосіб організації операційних систем.
Прикладом систем з монолітним ядром є більшість Unix-систем.
Багаторівневі системи Продовжуючи структуризацію, можна розбити
всю обчислювальну систему на ряд більш дрібних рівнів з добре
визначеними зв'язками між ними, так щоб об'єкти рівня N могли
викликати тільки об'єкти рівня N-1. Нижнім рівнем в таких системах
зазвичай є hardware (Апаратнее забезпечення), верхнім рівнем - інтерфейс
користувача. Чим нижче рівень, тим більше привілейовані команди і дії
може виконувати модуль, що знаходиться на цьому рівні. Вперше такий
підхід був застосований при створенні системи THE (Technishe Hogeschool
Eindhoven) Дейкстрой (Dijkstra) і його студентами в 1968 р. Ця система
мала такі рівні:
5 - Інтерфейс користувача
4 - Керування введенням-виведенням
3 - Драйвер пристрою зв’язку оператора та консолі
2 - Керування пам’яттю
1 - Планування завдань та процесів
0 - Hardware (Апаратнее забезпечення)

2. Основні поняття, концепції операційної системи


Системні виклики - це інтерфейс між операційною системою і
призначеною для користувача програмою. Вони створюють, видаляють і
використовують різні об'єкти, головні з яких - процеси і файли.
Призначена для користувача програма запитує сервіс у операційної
системи, здійснюючи системний виклик. Є бібліотеки процедур, які
завантажують машинні регістри певними параметрами і здійснюють
переривання процесора, після чого управління передається обробнику
даного виклику, що входить в ядро операційної системи. Мета таких
бібліотек - зробити системний виклик схожим на звичайний виклик
підпрограми. Основна відмінність полягає в тому, що при системному
виклику завдання переходить в привілейований режим або режим ядра.
Тому системні виклики іноді ще називають програмними перериваннями,
на відміну від апаратних переривань, які частіше називають просто
перериваннями.
Переривання - це подія, яка генерується зовнішнім (по відношенню до
процесора) пристроєм. За допомогою апаратних переривань апаратура або
інформує центральний процесор про те, що сталася якась подія, що
вимагає негайної реакції (наприклад, користувач натиснув клавішу), або
повідомляє про завершення асинхронної операції введення-виведення
(наприклад, закінчено читання даних з диска в основну пам'ять).
Важливий тип апаратних переривань - переривання таймера, які
генеруються періодично через фіксований проміжок часу. Переривання
таймера використовуються операційною системою при плануванні
процесів. Кожен тип апаратних переривань має власний номер, що
однозначно визначає джерело переривання.
Апаратне переривання - це асинхронна подія, тобто воно виникає
незалежно від того, який код виконується процесором в даний момент.
Обробка апаратного переривання не повинна враховувати, який процес є
поточним.
Виняткова ситуація - подія, що виникає в результаті спроби виконання
програмою команди, яка з якихось причин не може бути виконана до
кінця. Прикладами таких команд можуть бути спроби доступу до ресурсу
за відсутності достатніх привілеїв або звернення до відсутньої сторінці
пам'яті. Виняткові ситуації, як і системні виклики, є синхронними подіями,
що виникають в контексті поточної задачі. Виняткові ситуації можна
розділити на виправні і невиправні.
До виправних відносяться такі виняткові ситуації, як відсутність потрібної
інформації в оперативній пам'яті. Після усунення причини виправної
виняткової ситуації програма може виконуватися далі. Виникнення в
процесі роботи операційної системи виправних виняткових ситуацій
вважається нормальним явищем.
Невиправні виняткові ситуації найчастіше виникають в результаті
помилок в програмах (наприклад, розподіл на нуль). Зазвичай в таких
випадках операційна система реагує завершенням програми, що викликала
виняткову ситуацію.
Файли призначені для зберігання інформації на зовнішніх носіях, тобто
прийнято, що інформація, записана, наприклад, на диску, повинна
перебувати всередині файлу. Зазвичай під файлом розуміють іменовану
частину простору на носії інформації.
Головне завдання файлової системи - приховати особливості введення-
виведення і дати програмісту просту абстрактну модель файлів,
незалежних від пристроїв. Для читання, створення, видалення, запису,
відкриття і закриття файлів також є велика категорія відповідних
системних викликів. Користувачам добре знайомі такі пов'язані з
організацією файлової системи поняття, як каталог, поточний каталог,
кореневий каталог, шлях. Для маніпулювання цими об'єктами в
операційній системі є системні виклики.
Процеси, потоки
Процес — об'єкт операційної системи, контейнер системних ресурсів,
призначених для підтримки виконання програми. Коли в середовищі
операційної системи запускається прикладна програма, система створює
спеціальний об'єкт – процес, – який призначений для підтримки її
виконання. Концепція процесу в ОС одна з найбільш фундаментальних.
Потоки - легковажні процеси.
Потік - реалізація потоків в родині операційних систем, структури
всередині процесу, які містять виконуваний код та отримують
процесорний час для його виконання з метою одночасного чи псевдо-
одночасного виконання кількох задач.
3. Операції над процесами?
Процес не може перейти з одного стану в інший самостійно. Зміною стану
процесів займається операційна система, здійснюючи операції над ними.
Кількість таких операцій в моделі поки збігається з кількістю стрілок на
діаграмі станів Зручно об'єднати їх в три пари:
· створення процесу – завершення процесу;
· припинення процесу (переклад із стану виконання в стан готовність) –
запуск процесу (переклад із стану готовність в стан виконання);
· блокування процесу (переклад із стану виконання в стан очікування) –
розблокування процесу (переклад із стану очікування в стан готовність).

Операції створення та завершення процесу є одноразовими, так як


застосовуються до процесу не більше одного разу (деякі системні процеси
при роботі обчислювальної системи не завершуються ніколи). Всі інші
операції, пов'язані зі зміною стану процесів, будь то запуск або
блокування, як правило, є багаторазовими.
Одноразові операції призводять до зміни кількості процесів, що
знаходяться під управлінням операційної системи, і завжди пов'язані з
виділенням або звільненням певних ресурсів.
Багаторазові операції, навпаки, не призводять до зміни кількості
процесів в операційній системі і не зобов'язані бути пов'язаними з
виділенням або звільненням ресурсів.
Для того щоб операційна система могла виконувати операції над
процесами, кожен процес представляється в нєї деякою структурою даних.
Ця структура містить інформацію, специфічну для даного процесу:
· стан, в якому знаходиться процес;
· програмний лічильник процесу або, іншими словами, адреса команди,
яка повинна бути виконана для нього такою;
· вміст регістрів процесора;
· дані, необхідні для планування використання процесора і управління
пам'яттю (пріоритет процесу, розмір і розташування адресного простору і
т.д.);
· облікові дані (ідентифікаційний номер процесу, який користувач
ініціював його роботу, загальний час використання процесора даним
процесом і т.д.);
· відомості про пристрої введення-виведення, пов'язаних з процесом
(наприклад, які пристрої закріплені за процесом, таблицю відкритих
файлів).
Її склад та будова залежать від конкретної операційної системи. У
багатьох операційних системах інформація, що характеризує процес,
зберігається не в одній, а в декількох пов'язаних структурах даних. Ці
структури можуть мати різні найменування, містити додаткову
інформацію або, навпаки, лише частина описаної інформації. Важливим є
те, що для будь-якого процесу, що знаходиться в обчислювальній системі,
вся інформація, необхідна для здійснення операцій над ним, доступна
операційній системі. Вона зберігається PCB (Process Control Block) або
блоці управління процесом. Блок управління процесом є моделлю процесу
для операційної системи. Будь-яка операція, вироблена операційною
системою над процесом, викликає певні зміни в PCB.
Операція народження
Ініціатором народження нового процесу після старту операційної системи
може виступити або процес користувача, що зробив спеціальний
системний виклик, або сама операційна система, тобто, в кінцевому
підсумку, теж певний процес. Процес, який ініціював створення нового
процесу, прийнято називати процесом-батьком (parent process), а
новостворений процес - процесом-дитиною (child process). Процеси-діти
можуть в свою чергу породжувати нових дітей і т. д. При народженні
процесу система заводить новий PCB зі станом процесу народження і
починає його заповнювати. Новий процес отримує власний унікальний
ідентифікаційний номер. Оскільки для зберігання ідентифікаційного
номера процесу в операційній системі відводиться обмежена кількість
бітів, для дотримання унікальності номерів кількість одночасно присутніх
в ній процесів має бути обмежена. Після завершення будь-якого процесу
його звільнений ідентифікаційний номер може бути повторно
використаний для іншого процесу. Зазвичай для виконання своїх функцій
процес-дитина вимагає певних ресурсів: пам'яті, файлів, пристроїв
введення-виведення і т. д. Існує два підходи до їх виділення. Новий процес
може отримати в своє розпорядження певну частину батьківських
ресурсів, можливо розділяючи з процесом-батьком і іншими процесами-
дітьми права на них, або може отримати свої ресурси безпосередньо від
операційної системи. Інформація про виділені ресурси заноситься в
PCB.Після наділення процесу-дитини ресурсами необхідно занести в його
адресний простір програмний код, значення даних, встановити
програмний лічильник. Тут також можливі два рішення.
У першому випадку процес-дитина стає дублікатом процесу-батька по
регистровому і призначеного для користувача контекстам, при цьому
повинен існувати спосіб визначення, хто для кого з процесів-двійників є
батьком.
У другому випадку процес-дитина завантажується новою програмою з
будь-якого файлу. Процес-батько після народження процесів-дітей може
продовжувати своє виконання одночасно з виконанням процесу-дитини, а
може очікувати завершення роботи деяких або всіх своїх «дітей".
Операція завершення
Після того як процес завершив свою роботу, операційна система
переводить його в стан «закінчив виконання» і звільняє всі асоційовані з
ним ресурси, роблячи відповідні записи в блоці управління процесом. При
цьому сам PCB не знищується, а залишається в системі ще деякий час. Це
пов'язано з тим, що процес-батько після завершення процесу-дитини може
запитати операційну систему про причини «смерті» породженого їм
процесу і або статистичну інформацію про його роботу. Подібна
інформація зберігається в PCB відпрацьованого процесу до запиту
процесу-батька або до кінця його діяльності, після чого всі сліди процесу,
що завершився, остаточно зникають із системи. В операційній системі
Unix процеси, що знаходяться в стані «закінчив виконання», прийнято
називати процесами-зомбі.
Багаторазові операції
Запуск процесу. З числа процесів, що знаходяться в стані готовність,
операційна система вибирає один процес для подальшого виконання. Для
обраного процесу операційна система забезпечує наявність в оперативній
пам'яті інформації, необхідної для його подальшого виконання. Далі стан
процесу змінюється на «виконання», відновлюються значення регістрів
для даного процесу і управління передається команді, на яку вказує
лічильник команд процесу. Всі дані, необхідні для відновлення контексту,
витягуються з PCB процесу, над яким здійснюється операція.
Призупинення процесу
Робота процесу, що знаходиться в стані виконання, припиняється в
результаті якого-небудь переривання. Процесор автоматично зберігає
лічильник команд і, можливо, один або кілька регістрів в стеку
виконуємого процесу, а потім передає управління за спеціальною адресою
обробки даного переривання. На цьому діяльність hardware по обробці
переривання завершується. За вказаною адресою зазвичай розташовується
одна з частин операційної системи. Вона зберігає динамічну частину
системного і реєстрового контекстів процесу в його PCB, переводить
процес в стан «готовність» і приступає до обробки переривання, тобто до
виконання певних дій, пов'язаних з виниклим перериванням.
Блокування процесу
Процес блокується, коли він не може продовжувати роботу, не
дочекавшись виникнення якої-небудь події в обчислювальній системі. Для
цього він звертається до операційної системи за допомогою певного
системного виклику. Операційна система обробляє системний виклик і,
при необхідності зберігши потрібну частину контексту процесу в його
PCB, переводить процес зі стану «виконання» в стан«очікування».
Розблокування процесу
Після виникнення в системі якої-небудь події операційній системі
потрібно точно визначити, яка саме подія відбулася. Потім операційна
система перевіряє, чи перебував деякий процес в стані очікування для
даної події, і якщо перебував, переводить його в стан «готовність»,
виконуючи необхідні дії, пов'язані з настанням події (ініціалізація операції
введення-виведення для чергового очікуючого процесу і т.п.).

You might also like