Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

spz / spz

.pdf
Скачиваний:
33
Добавлен:
23.02.2016
Размер:
5.16 Mб
Скачать

Системне програмне забезпечення.

1

Процеси і треди

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

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

Основні види ресурсів

Насамперед, одним з найважливіших ресурсів є сам процесор (для мультипроцесорних систем), точніше - процесорний час(для однопроцесорних систем). Процесорний час поділяється поперемінно (паралельно).

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

Коли говорять про зовнішню пам'ять (наприклад, пам'ять на магнітних дисках), то власне пам'ять і доступ (процес звертання до пам'яті) до неї вважаються різними видами ресурсу. Кожний з цих ресурсів може надаватися незалежно від іншого. Але для повної роботи з зовнішньою пам'яттю необхідно мати обидва ці ресурси. Власне зовнішня пам'ять може розділятися одночасно, а доступ до неї — поперемінно.

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

Системне програмне забезпечення.

2

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

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

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

Як відомо, програмні модулі можуть бути однократно і багаторазово

(чи повторно) використовуваними.

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

Повторно використовувані програмні модулі, у свою чергу, можуть бути не привілейованими, привілейованими і реентерабельними.

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

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

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

Системне програмне забезпечення.

3

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

Класифікація операційних систем

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

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

Насамперед, розрізняють ОС загального і спеціального призначення.

По режиму обробки задач розрізняють ОС, що забезпечують

однопрограмний і мультипрограмний режими.

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

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

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

Сучасні ОС для ПК реалізують і мультипрограмний і мультизадачний режими.

При організації роботи з обчислювальною системою в діалоговому режимі можна говорити про однокористувальницькі (однотермінальні) і мультитерминальні ОС.

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

Системне програмне забезпечення.

4

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

Існують наступні режими організації обчислювального процесу:

-пакетний режим;

-режим розподілу часу (РРЧ);

-режим реального часу.

Пакетний режим.

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

На початку роботи формується пакет завдань. Кожне завдання містить вимоги до системних ресурсів. Із даного пакету формується мультипрограмна суміш, тобто множина одночасно виконуваних задач (у відповідності до розподілу між ресурсами).

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

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

Тому одна задача може надовго зайняти CPU, що приводить до неможливості виконання інтерактивних задач.

Характеризується максимальною пропускною здатністю та максимальну загрузку процесора та оперативної пам’яті. В цьому режимі користувач не має безпосереднього доступу до ЕОМ (саме під час виконання пакету програм).

Режим розподілу часу (РРЧ). В цьому режимі кожен користувач (а їх декілька) має безпосередній доступ до ЕОМ через свій термінал. Мета цього режиму – обслужити кожного користувача, забезпечивши йому допустимий час реакції ЕОМ на його запити.

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

Суть РРЧ: В схемі мультиплексування (розподілу центрального процесора) серед готових до виконання програм проводиться детерменізм.

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

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

Системне програмне забезпечення.

5

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

Таке циклічне мультиплексування процесора (що базується на детермінованій схемі переривань програм) гарантує, що всі програми будуть обслуговуватись “справедливо” (ніхто не зможе монополізувати процесор).

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

Саме ця обставина дозволила будувати на основі метода “розподілу часу” діалогові або інтерактивні багатокористувачеві режими роботи ЕОМ. Інтервал мультиплексування дуже малий (200мс), а черга складається з 10 програм. Тоді програма поновить роботу на черговому інтервалі в 200мс з періодом =2с. Такі затримки майже не сприймаються людиною. Жоден з користувачів, (а їх декілька, що працюють паралельно) не відчують, що процесор мультиплексується декількома програмами.

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

Режим реального часу

Системи реального часу призначені для керування тих об’єктів, для яких існує обмежений допустимий час, в межах якого задача має бути виконана (Напр. керування супутником, науковим експериментальним обладнанням…)

Критерій ефективності – здатність витримати наперед задані інтервали часу між запуском програми та отриманням результатів).

Цей час називають реакцією системи, а відповідну властивість системи – реактивністю.

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

Деякі ОС можуть суміщати властивості систем різних типів, тоді один з режимів буде називатися фоновим.

ОСНОВНОЮ особливістю операційних систем реального часу (ОСРЧ) є

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

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

Системне програмне забезпечення.

6

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

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

По основному архітектурному принципі ОС розділяються на

мікроядерні і монолітні. До деякої міри цей поділ теж умовний, однак можна як яскравий приклад мікроядерної ОС привести ОСРВ QNX, тоді як у якості монолітної можна назвати Windows 95/98 чи ОС Linux. Ядро ОС Windows ми не можемо змінити, нам не доступні його вихідні коди й у нас немає програми для зборки (компіляції) цього ядра. А от у випадку з Linux ми можемо зібрати ядро, яке нам необхідно, включивши в нього ті необхідні програмні модулі і драйвери, що ми вважаємо за доцільне включити саме в ядро (а не звертатися до них з ядра).

Основні принципи побудови ОС

ОС розрізняються по:

призначенню;

функціями, що виконуються;

формами реалізації.

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

Частотний принцип

Це найбільш загальний принцип реалізації системних програм.

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

при роботі ОС, забезпечуються умови їх швидкого виконання.

Такі програмні тексти постійно знаходяться в ОЗП (оперативному запам’ятовуючому пристрої), активно підтримуються спеціальними засобами.

Системне програмне забезпечення.

7

До даних, до яких відбувається часте звернення, забезпечується найбільш швидкий доступ.

Найбільш суттєві наслідки від застосування частотного принципу – можливість застосування багаторівневого планування при організації роботи ОС.

На рівень довгострокового планування виходять “поодинокі” та “довгі” операції керування діяльністю системи. На рівень короткострокового планування пропонуються часто використовуємі та “не довгі” операції по забезпеченню виконання на даному рівні окремих програм.

Система ініціює або перериває виконання програм, надає або відбирає динамічні ресурси, що необхідні і перед усім центральний процесор.

Принцип модульності

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

Суть цього принципу в слідую чому.

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

Із цього визначення випливає, що модуль передбачає простий засіб його заміни на інший при наявності заданих інтерфейсів.

Існують різноманітні засоби розподілення складових частин ОС на окремі модулі:

1)за функціональними ознаками;

2)за методом проектування ОС, що використовувався (Напр.. ієрархічне розташування модулів);

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

Тобто, якщо при виконанні модуля були змінені і не відновлені у вихідний стан, або зовсім зникли деякі команди або дані модуля, то цей модуль стає непридатним.)

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

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

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

Системне програмне забезпечення.

8

Принцип функціональної вибірковості

Цей принцип є логічним продовженням частотного та модульного принципів.

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

До складу ядра повинні увійти найбільш часто використовуємі системні модулі. Їх кількість повинна бути такою, щоб об’єм пам’яті був не надто великим. Як правило в склад ядра входять: модулі по керуванню системою переривань, засоби по переведенню програм із стана зчитування в стан очікування, готовності і навпаки; засоби розподілу таких основних ресурсів, як оперативна пам’ять та процесор.

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

Такі програми називаються резидентними.

Окрім резидентних програм також існують транзитні системні програми, котрі постійно зберігаються в пам’яті на магнітних дисках і завантажуються в ОЗП тільки при необхідності та у випадку відсутності вільного місця можуть перекривати одна іншу.

Принцип генерування

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

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

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

Принцип функціональної надлишковості

Цей принцип враховує проведення однієї і тієї ж роботи декількома засобами.

Системне програмне забезпечення.

9

Наприклад. 1. ОС володіє функціональною надлишковістю при організації пакетної мультипрограмної обробки. Вона допускає три альтернативних конфігурації ОС:

MFT-ОС (мультипрограмування із фіксованою кількістю задач); MVT-ОС (мультипрограмування із змінюваною кількістю задач);

MVC-ОС (мультипрограмування із змінюваною кількістю задач на основі використання кеш-пам’яті.);

2) ОС володіє функціональною надлишковістю при реалізації доступу до даних (декілька методів);

3) підтримка декількох типів моніторів; і т д.

Принцип за мовчазною згодою

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

Принцип переміщення

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

Надбудова тексту модуля, у відповідності з його розташуванням в пам’яті, може здійснювати спеціальним механізмом або безпосередньо перед виконанням програми, або по мірі її виконання.

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

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

Принцип захисту

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

Системне програмне забезпечення.

10

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

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

Двохконтектність роботи процесора

Принцип незалежності програм від зовнішніх пристроїв.

Принцип відкритої ОС та ОС, що нарощується.

Принцип віртуалізації

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

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

Частіше віртуальна машина, надавана користувачеві, відтворює архітектуру реальної машини, але архітектурні елементи в такому поданні виступають із новими або поліпшеними характеристиками, що часто спрощують роботу із системою. Характеристики можуть бути довільними, але найчастіше користувачі бажають мати власну «ідеальну» по архітектурних характеристиках машину в наступному складі:

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

Соседние файлы в папке spz