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

Sis_prog_zabezpechennya

.pdf
Скачиваний:
60
Добавлен:
17.03.2016
Размер:
832.88 Кб
Скачать

Енциклопедичне видання

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

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

1.Швидкістю передавання даних, яка, зазвичай, у багато разів нижча від швидкості роботи ОП.

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

3.Асинхронністю роботи зовнішнього пристрою.

4.Наявністю проміжків між записами на магнітній (або іншій) поверхні носіїв.

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

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

вробочий розділ для обробки. Коли вихідний буфер заповнюєть-

11

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

ся записами або вхідний буфер вичерпується, операційною системою видаються команди відповідно ЗАПИСАТИ або ПРОЧИТАТИ блок. Доступ до вхідного буфера є критичним інтервалом відносно до команди ПРОЧИТАТИ і копіюванням запису в робочий розділ. Аналогічно критичним інтервалом є доступ до вихідного буфера. Реалізація взаємного виключення може викликати затримки через різницю відносних швидкостей обробки даних і виконання операцій введення/виведення. Взаємне виключення набагато легше організувати, реалізуючи подвійну буферизацію, тобто маючи по два вхідних та вихідних буфера. Поки заповнюється один буфер, записи для обробки вибираються з другого, а коли в ньому більше немає необроблених записів, ці два буфери міняються місцями. Аналогічно для вихідних буферів. Якщо вхідний буфер, робоча область і вихідний буфер мають неоднакову довжину, доводиться використовувати декілька вхідних і вихідних буферів згідно з кількістю одночасно використовуваних файлів. З кожним відкритим файлом зв’язується пара буферів відповідного розміру.

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

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

12

Енциклопедичне видання

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

Взаємне виключення

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

1.У будь-який момент часу тільки один процес може знаходитись у критичному інтервалі.

2.Жоден процес не може залишатись у критичному інтервалі нескінченно довго.

3.Жоден процес не повинен чекати нескінченно довго входження у критичний інтервал.

Для успішної реалізації взаємодії між конкуруючими процесами використовуються дві операції, P та V, над семафором S — двійковою змінною, яка регулює активність взаємодіючих процесів (1 — семафор відкритий, 0 — закритий). Семафори встановлюються біля кожного критичного ресурсу і з ними пов’язуються списки процесів, які очікують дозволу пройти цей сема-

фор. Семафором керує ОС, яка може:призначити для виконання готовий процес;

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

готовності до виконання і дозволяючи йому коли-небудь відновити своє виконання.

В операціях P і V це має вигляд:

13

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

P (S): ЯКЩО S = 1

ТО S := 0 /*ввійти в критичний інтервал, закрити семафор для інших */

ІНАКШЕ БЛОКУВАТИ по S процес, який звернувся за послугою

V (S): ЯКЩО список процесів, які очікують S, непустий ТО ДЕБЛОКУВАТИ процес, що очікує S, ІНАКШЕ S:=1 (відкрити семафор)

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

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

Віртуальна пам’ять — див. Управління пам’яттю.

Всесвітня павутина World Wide Web

Всесвітня павутина World Wide Web — технологія роботи з інформацією, основана на протоколі передавання даних HTTP, системі адресації URL та мові гіпертекстової розмітки HTML, і, одночасно реалізована на цій технології, розосереджена в усьому світі база даних найрізноманітнішої інформації. Інформація зберігається у вигляді файлів із текстом, розміченим на мові HTML. Ці файли, будучи завантаженими користувачем на його комп’ютер, обробляються спеціальною програмою роботи з гіпертекстом (браузером) і виводяться на його засіб відображення інформації (монітор, принтер або синтезатор мови). Мова

14

Енциклопедичне видання

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

Дескриптор файла

У системах управління файлами (СУФ) інформація про конкретний файл зібрана в дескрипторі цього файлу. У різних СУФ обсяг інформації неоднаковий. Мінімальна інформація — це ідентифікатор файлу та його фізичне розташування. У цілому, дескриптор повинен містити:

1.Інформацію, яка ідентифікує файл (символічне ім’я) — ім’я шляху до файлу, внутрішнє ім’я для полегшення доступу до файлу.

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

3.Тип фізичної організації файлу (послідовна, пряма).

4.Дескриптор пристрою, на якому розташовані файли, або вказівник на нього.

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

6.Тип файлу — частина імені файлу, яка вказує на його призначення.

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

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

15

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

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

Під час роботи з файлом дескриптор знаходиться в ОП, щоб скоротити кількість обмінів у разі звертання до файлу. Зчитування дескриптора в ОП виконується під час виконання команди ВІДКРИТИ файл. Оскільки процес не має права безпосередньо читати або змінювати дескриптор, його зберігають в захищеній операційною системою ОП.

Дисципліни планування з декількома чергами

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

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

Більш універсальним є алгоритм планування зі зворотнім зв’язком, який використовує n черг, у кожній з яких процес обслуговується у порядку надходження. Новий процес надходить у чергу номер 1, після одержання в ній кванта він переходить у чергу номер 2 і після кожного наступного кванта він переходить у чергу з наступним номером. Час центрального процесора планується так, щоб обслуговувати непусту чергу з найменшим номером. Така дисципліна сприяє коротким процесам, не вимагаючи попередньої інформації про очікуваний час виконан-

16

Енциклопедичне видання

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

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

Дисципліни планування з однією чергою

Вважається, що найкращою стратегією планування є надання всім користувачам однакових послуг: жоден процес у середньому не чекає довше за інших. Можливий варіант реалізації такої стратегії — забезпечити для всіх процесів однаковий середній час очікування в черзі. Цього можна досягти, застосувавши дисципліну FIFO (first-in-first-out) без перерозподілу процесора. Процеси обслуговуються в порядку їх надходження, перехід від процесу до процесу відбувається після завершення процесу або у разі переходу його в заблокований стан. Тоді з врахуванням блокування процесів, дисципліна буде FCFS (first-come-first-ser- ved). Вартість реалізації такої дисципліни низька, проте мають місце значні недоліки:

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

середній час очікування може необмежено рости в міру наближення системи до межі своєї завантаженості;

17

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

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

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

Інший підхід до реалізації стратегії рівних послуг — це мінімізація загального для системи середнього часу очікування шляхом надання процесора процесу, який має найвищий поточний (диспетчерський) пріоритет. Така дисципліна називається HPF (highest-priority-first). Якщо витіснення процесів не допускається, то процес із найвищим пріоритетом виконується, поки він не завершиться або не самозаблокується. Якщо в чергу надходить процес із пріоритетом, вищим, ніж у поточного, він чекає поки поточний процес не звільнить процесор. Якщо витіснення дозволено, то поточний процес переривається, витісняючись у чергу готових процесів.

Якщо використовувати дисципліну HPF, то треба вирішити на яких характеристиках буде обчислюватись поточний пріоритет процесу.

Значно скорочує загальний середній час очікування, порівняно з FCFS, дисципліна SJN (shortest-job-next), за якою процесор надається найкоротшому процесу, але водночас збільшується середній час очікування для довгих процесів, а також дисперсія часу очікування. Це надто дорога ціна за зменшення середнього часу очікування для коротких процесів. Крім того, важко передбачити, коли той чи інший процес буде обслужено, що для багатьох користувачів часто є важливим.

Більш розумно перерозподіляє процесор дисципліна SRT (shortest-remaining-time — наступний із мінімальним залишком часу), за що її часто використовують в системах реального часу. Контролюється різниця між замовленим у заголовку процесу та використаним процесом часу. Найчастіше реалізується з пере-

18

Енциклопедичне видання

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

Прихильнішою до тривалих процесів є дисципліна HRN (hig- hest-response-ratio-next — найбільший відносний час реакції). Тут диспетчерський пріоритет процесу є функцією не тільки часу обслуговування, а й часу, витраченого процесом на очікування обслуговування:

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

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

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

Нині в ОС найчастіше використовується циклічна дисципліна планування RR (round-robine, круговорот). Вона не потребує ніяких попередніх відомостей про процес, тому не затримує довгі процеси заради скорочення середнього загального часу очікування. Кожному процесу за чергою надається фіксований квант часу, у кінці якого процес, якщо він до цього моменту не завершився і не заблокований, поміщується в кінець черги. Така форма рівноправного обслуговування неявно віддає перевагу коротким процесам, які будуть закінчуватись швидше, ніж довгі, але водночас не будуть надмірно затримувати довгі процеси. Метод круговороту особливо привабливий для інтерактивних систем, розрахованих на велику кількість користувачів, де особливо цінується гарантування кожному процесу прийнятного часу відповіді.

19

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

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

Драйвер (від англ. driver — водій).

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

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

20

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]