Студопедия
Новини освіти і науки:
МАРК РЕГНЕРУС ДОСЛІДЖЕННЯ: Наскільки відрізняються діти, які виросли в одностатевих союзах


РЕЗОЛЮЦІЯ: Громадського обговорення навчальної програми статевого виховання


ЧОМУ ФОНД ОЛЕНИ ПІНЧУК І МОЗ УКРАЇНИ ПРОПАГУЮТЬ "СЕКСУАЛЬНІ УРОКИ"


ЕКЗИСТЕНЦІЙНО-ПСИХОЛОГІЧНІ ОСНОВИ ПОРУШЕННЯ СТАТЕВОЇ ІДЕНТИЧНОСТІ ПІДЛІТКІВ


Батьківський, громадянський рух в Україні закликає МОН зупинити тотальну сексуалізацію дітей і підлітків


Відкрите звернення Міністру освіти й науки України - Гриневич Лілії Михайлівні


Представництво українського жіноцтва в ООН: низький рівень культури спілкування в соціальних мережах


Гендерна антидискримінаційна експертиза може зробити нас моральними рабами


ЛІВИЙ МАРКСИЗМ У НОВИХ ПІДРУЧНИКАХ ДЛЯ ШКОЛЯРІВ


ВІДКРИТА ЗАЯВА на підтримку позиції Ганни Турчинової та права кожної людини на свободу думки, світогляду та вираження поглядів



Процеси

Рис. 1.

Схема компонування завантажуваного модуля

 

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

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

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

5. Основні принципи розробки системного програмного забезпечення.

Розглянемо 10 принципів побудови системних програм:

1) Частотний принцип.

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

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

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

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

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

4) Принцип генерованості.

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

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

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

6) Принцип по замовчуванню.

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

7) Принцип переміщуваності.

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

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

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

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

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

10) Принцип відкритості і нарощуваності.

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


Тема 2. Концептуальні основи системних програм

1. Визначення етапів та структури процесу.

2. Властивості та класифікація процесу.

3. Визначення ресурсу та класифікації.

1. Визначення етапів та структури процесу.

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

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

Стани процесів:

 

 

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

· Passive– процес завантаження в пам’ять, але його виконання ще неініційоване.

· Ready – процес готовий до виконання (очікує ресурс центрального процесора).

· Run – процес виконується на центральному процесорі.

· Wait – процес очікує звільнення необхідного ресурсу.

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

· з обмеженням по вводу/виводу (в таких системах найбільший час очікування витрачається процесом при зверненні до підсистем вводу/виводу);

· з обмеженням по швидкодії (найбільший час витрачається на доступ до процесора).

Будь – який процес може знаходитись в одному з перерахованих станів один раз в певний момент часу.

Умови зміни станів процесу (з Рис.1.)

2 – активізація процесу програмою – диспетчером або ОС;

3 – диспетчеризація процес;

4 – виникнення переривань;

5 – запитом процесом певної системної функції в складі ОС (можливе створення певного процесу);

6 – запитом процесом певної системної функції (вводу/виводу);

7 – завершення виконання системної функції;

8 – зупинка виконання процесу;

1 – завершення виконання процесу.

В загальному випадку процес складається з:

· коду процесу;

· підсистеми керуванням процесу;

· підсистеми даних.

Код процесу – це його ідентифікаційний номер для його ідентифікації в ОС.

Підсистема керування процесом – містить наступну інформацію:

· символічний ідентифікатор процесу – це символічне ім’я процесу, яке присвоюється йому системою – планувальником і виконується для визначення стану процесу;

· пріоритет процесу – встановлюється як системним планувальником так і користувачем, може бути змінений диспетчером процесів функціонування;

· посилання на попередній процес в черзі процесу і на наступний;

· ідентифікатор поточного стану процесу;

· квант процесорного часу наданий даному процесу.

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

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

2. Властивості та класифікація процесу.

По приналежності до ЦП   1) внутрішні 2) зовнішні
До ОС   1) системні 2) користувацькі
По генеологічному типу   1) породжуючі 2) породжені
По результативності   1) рідні 2) еквівалентні 3) поточні 4) рівні
По динамічному типу   1) послідовні 2) паралельні 3) комбіновані
По зв’язності   1) ізольовані 2) взаємодіючі 3) конкуруючі 4) інформаційно - незалежні

 

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

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

Породжуючі – це процеси, які можуть породжувати існування інших процесів.

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

Траса – це тривалість і порядок перебування процесу в допустимих станах на інтервалі існування.

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

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

Зовнішні процеси – це процеси, розвиток яких проходить під контролем не ЦП, а інших.

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

3. Визначення ресурсу та класифікації.

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

Ресурс – це деякі матеріальні, енергетичні, системні характеристики певного предмету в складі деякого об’єкту.

Ресурси поділяються на такі категорії:

1) по формі існування:

· фізичні – ресурс, який реально існує і володіє всіма притаманними йому фізичними характеристиками при його розподілі між користувачами,

· віртуальні – це деяка узагальнена модель фізичного ресурсу;

2) по можливості розширення властивостей:

· еластичний – це фізичний ресурс, який допускає віртуалізацію, а також відтворення і розширення своїх властивостей,

· нееластичний (жорсткий) – це ресурс, який по своїх внутрішніх властивостях не допускає віртуалізації;

3) по ступеню активності:

· активний ресурс – при використанні його він здатний виконувати дії по відношенню до інших ресурсів або процесів,

· пасивний ресурс – це ресурси які не володіють активними ресурсами;

4) по часу існування:

· постійний – це ресурс по відношенню до певного процесу, якщо він існує до породження певного процесу і доступний для користувача під час виконання цього процесу,

· тимчасовий – даний ресурс може з’являтися і може знищуватися в системі динамічно під час існування певного процесу (наприклад: буфер обміну);

5) по ступеню важливості:

· головний ресурс – по відношенню до певного процесу, якщо без цього ресурсу процес взагалі не може працювати,

· другорядний – це ресурс, який допускає певне артельнативне виділення інших ресурсів при умові власної недоступності;

6) по структурі:

· простий – це ресурс, який не містить складових елементів і при своєму розподілі розглядається як єдине ціле,

· складний – характеризується деякою структурою, складається з деяких частин і не може розглядатися як єдине ціле;

7) по характеру використання:

· паралельно використовувані,

· послідовно використовувані;

8) по формі реалізації:

· м’який,

· твердий;

9) по функціональній надлишковості:

· дорогий – може бути використаний для здійснення декількох функцій,

· дешевий – для здійснення однієї функції;

10) по відновлюваності:

· відновлювальні – можуть відновлюватись,

· спожиті – не можуть відновлюватись.


Тема 3. Планування та диспетчеризація процесів

1. Стратегії планування.

2. Дисципліни диспетчеризації.

3. Алгоритми в диспетчеризації з витісненням та без.

4. Способи забезпечення гарантованого обслуговування процесів.

5. Критерії порівняння алгоритмів диспетчеризації.

6. Вплив планування на ефективність обчислювальних систем.

7. Використання динамічних пріоритетів.

1. Стратегії планування.

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

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

Стратегії можуть бути наступними:

1) закінчувати обчислення в тому самому порядку, в якому вони були розпочаті;

2) перевагу надавати біль коротким процесам;

3) надавати всім процесам однакові послуги, в тому числі і однаковий час очікування.

Розрізняють два типи планування:

· короткострокове планування називається диспетчеризацією;

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

Системний процес який здійснює планування може бути реалізований двома способами:

· цілісний планувальник – це програмний модуль, який є частиною операційної системи, його робота ініціюється перериваннями і він виконується як окремий системний процес;

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

У загальному випадку планувальник здійснює наступні функції:

1) запис копії процесу в пам’ять обчислювальної системи;

2) аналіз атрибутів при виконанні обчислювального процесу та формування набору робочих атрибутів в залежності від характеристик обчислювальної системи;

3) запис процесу в чергу процесів у випадку, якщо є вільне місце в черзі, або перевід процесу в пасивний стан у випадку, якщо всі елементи черги зайняті;

4) періодичний перегляд черги процесів, запис або знищення процесів в черзі у відповідності з часом функціонування процесів.

 

2. Дисципліни диспетчеризації.

Розрізняють два великих класи дисциплін диспетчеризації: безпріоритетні і пріоритетні.

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

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

 

Рис. 3.1. Структура диспетчеризації.

Розглянемо деякі дисципліни диспетчеризації:

1) Дисципліна FIFO (first input first output) – є реалізацією безпріоритетної черги. Якщо в черзі звільняється елемент і він не останній, то всі після нього посуваються вперед і в останній вільний елемент черги записується ім’я нового процесу. Першим з черги вибирається елемент, який стоїть на початку черги.

2) Дисципліна LIFO (last input first output) – першим з черги вибирається елемент, який прийшов останнім.

3) Дисципліна FCFS (first come first server) – є подібна до FIFO. Ця дисципліна враховує перебування процесів в станах блокування, наприклад при операціях вводу/виводу. Ті, які були заблоковані в процесі роботи після переходу в стан готовності поступають в чергу готовності перед новими задачами, які ще не обслуговувались. При такій дисципліні організовуються дві черги: черга готових до обслуговування процесів і черга нових процесів.

 

Рис. 3.2. Дисципліна FCFS.

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

4) Дисципліна SJN (short jump next) – згідно з цією дисципліною ОС вимагає, щоб для кожного процесу була відома оцінка по необхідних обчислювальних ресурсах. Для постановки задачі в чергу диспетчер оцінює необхідний час виконання задачі і ставить задачу перед довшою задачею. При цій дисципліні існує одна черга процесів і завдання, що були заблоковані знову поступають в кінець черги як і нові завдання. Це приводить до того, що завдання які потребують мало часу очікують процесу як і довгі процеси.

5) Дисципліна SRT (short remain time) – розроблена з метою забезпечення більш якісного обслуговування коротких завдань. Виконує спочатку ті процеси, час завершення виконання яких найменший.

6) Дисципліна RR (round robin) – кожна задача отримує порцію часу (квант часу). Після закінчення цього кванту часу задача знімається з виконання на процесорі і він передається наступній задачі. Задача, яка була знята з черги записується в кінець черги задач, які готові до виконання. Величина кванту часу, як правило, вибирається, як середнє значення між достатнім часом реакції системи на запити користувачів та процесорним часом, який необхідний для перемикання між задачами.

3. Алгоритми в диспетчеризації з витісненням та без.

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

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

4. Способи забезпечення гарантованого обслуговування процесів.

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

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

Гарантоване обслуговування може бути досягнуто трьома способами:

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

2) виділяти мінімальну долю процесорного часу певному конкретному процесу якщо він готовий до виконання;

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

5. Критерії порівняння алгоритмів диспетчеризації.

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

1) використання (завантаження) ЦП – для більшості ПК середня завантаженість процесора не перевищує 3%, однак в моменти складних обчислень завантаженість процесора може досягати 100%. В системах, де ПК виконує багато роботи (сервер), завантаженість – 15-40%, може доходити до 100% при повному завантаженні;

2) пропускна здатність процесора – це кількість процесів, яка виконується процесором за одиницю часу;

3) час обороту – інтервал часу від моменту появи процесу у вхідній черзі до моменту завершення процесу. Цей час обороту включає в себе час очікування у вхідній черзі, час очікування у черзі готовності, час готовності у чергах до периферійних пристроїв, час виконання на процесорі та час вводу/виводу;

4) час очікування – це сумарний час знаходження процесу в черзі очікування готових процесів;

5) час відповіді – це час від моменту поступлення процесу на вхідну чергу до моменту першого звернення процесу на ввід/вивід даних.

6. Вплив планування на ефективність обчислювальних систем.

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

В загальному випадку використовують наступні методи підвищення продуктивності системи:

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

2) таке планування, при якому задачі, які знаходяться в критичній області не перериваються, а закінчують виконання критичної секції. Задачі, які чекають на виконання критичної секції коду не виконують її поки не завершиться переривання.

7. Використання динамічних пріоритетів.

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

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

Операційна система може змінити пріоритет задачі в таких випадках:

1) збільшення пріоритету активної задачі. При завантаженні задачі на виконання її пріоритет автоматично збільшується. Це знижує час реакції цієї активної задачі на дії користувачів в порівнянні з іншими фоновими задачами;

2) збільшення пріоритету операції вводу/виводу. Після завершення операції вводу/виводу задача отримує найвищий пріоритет в певному класі задач. Це дозволяє більш швидко закінчити всі незавершені операції вводу/виводу;

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

 

Механізм динамічної зміни пріоритету задач в ОС Windows NT та Unix – самостійно!

Тема 4. Синхронізація процесів

1. Незалежні та взаємодіючі обчислювальні процеси.

2. Види задач синхронізації паралельних процесів.

3. Синхронізація за допомогою блокування пам’яті.


Читайте також:

  1. V Практично всі психічні процеси роблять свій внесок в специфіку організації свідомості та самосвідомості.
  2. Блок 1. Соціально-демографічні та міграційні процеси.
  3. Важелі впливу на процеси розвитку ринку капіталу.
  4. Виробничий, технологічний і трудовий процеси
  5. Виробничі процеси, їх класифікація і принципи організації
  6. Вплив нового зовнішньополітичного мислення, американо-радянського співробітництва на світові процеси
  7. Вплив опромінення на процеси старіння
  8. Вплив рослин та тваринних організмів на процеси переносу
  9. Вплив світових фінансових криз на процеси глобалізації.
  10. Вплив суб’єктивних факторів на процеси управління ризиком
  11. Геодинамічні процеси у озерах і болотах
  12. Геологічні процеси і явища




Переглядів: 3288

<== попередня сторінка | наступна сторінка ==>
Системне програмування. | Алгоритм Деккера.

Не знайшли потрібну інформацію? Скористайтесь пошуком google:

  

© studopedia.com.ua При використанні або копіюванні матеріалів пряме посилання на сайт обов'язкове.


Генерація сторінки за: 0.052 сек.