загрузка...
загрузка...
На головну

Призначення і завдання підсистеми введення-виведення

  1. I. Завдання семіотики і передумови, необхідні для її розробки
  2. I. До чого прагне педагогіка, якою вона має бути і в чому її завдання?
  3. I. Основні завдання
  4. I. Основні завдання ЗОВНІШНЬОЇ ПОЛІТИКИ
  5. I. Поняття, основні принципи, цілі, завдання та напрями забезпечення безпеки дорожнього руху.
  6. II. ЗАВДАННЯ аеродромного ПОЖЕЖНО-РЯТУВАЛЬНОЇ СЛУЖБИ В РАЗІ ВІЙНИ
  7. II. Призначення лікарських препаратів при наданні медичної допомоги в стаціонарних умовах

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

Основними компонентами підсистеми введення-виведення є драйвери, керуючими зовнішніми пристроями і файлову систему. У роботі підсистеми введення-виведення активно бере участь диспетчер переривань. Більш того, основне навантаження диспетчера переривань обумовлена ??саме підсистемою введення-виведення, тому диспетчер переривань іноді вважають частиною підсистеми введення-виведення.

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

На підсистему введення-виведення покладаються такі функції:

· Організація паралельної роботи пристроїв введення-виведення і процесора;

· Узгодження швидкостей обміну і кешування даних;

· Поділ пристроїв і даних між процесами (що виконуються програмами);

· Забезпечення зручного логічного інтерфейсу між пристроями і іншою частиною системи;

· Підтримка широкого спектра драйверів з можливістю простого включення в систему нового драйвера;

· Динамічне завантаження і вивантаження драйверів без додаткових дій з операційною системою;

· Підтримка декількох різних файлових систем;

· Підтримка синхронних і асинхронних операцій введення-виведення.

54. Організація паралельної роботи пристроїв введення-виведення і процесора.Еволюція введення-виведення може бути представлена ??наступними етапами:

· Процесор безпосередньо управляє периферійним пристроєм.

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

· Використання контролера переривань. Введення-виведення, керований перериваннями.

· Використання модуля (каналу) прямого доступу до пам'яті. Переміщення даних в пам'ять (з неї) без використання процесора.

· Використання окремого спеціалізованого процесора введення-виведення, керованого центральним процесором.

· Використання окремого комп'ютера для управління пристроями введення-виведення при мінімальному втручанні центрального процесора.

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

Для персональних комп'ютерів операції введення-виведення можуть виконуватися трьома способами.

1. За допомогою програмованого введення-виведення. У цьому випадку, коли процесору зустрічається команда, пов'язана з введенням-висновком, він виконує її, посилаючи відповідні команди контролеру введення-виведення. Це пристрій виконує потрібні дії, а потім встановлює відповідні біти в регістрах стану вводу-виводу і не посилає жодних сигналів, в тому числі сигналів переривань. Процесор періодично перевіряє стан модуля введення-виведення з метою перевірки завершення операції введення-виведення. Таким чином, процесор безпосередньо управляє операціями введення-виведення, включаючи впізнання стану пристрою, пересилання команд читання-запису і передачу даних. Процесор посилає необхідні команди контролеру введення-виведення і переводить поточний процес в стан очікування завершення операції введення-виведення. На блок-схемі (рис. 4.3) видно недоліки такого методу - великі втрати процесорного часу, пов'язані з управлінням введенням-виведенням.

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

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

3. Прямий доступ до пам'яті (direct memory access - DMA). У цьому випадку спеціальний модуль прямого доступу до пам'яті управляє обміном даними між основною пам'яттю і контролером введення-виведення. Процесор надсилає запит на передачу блоку даних модулю прямого доступу до пам'яті, а переривання відбувається тільки після передачі всього блоку даних.

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

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

Узгодження швидкостей обміну і кешування даних

При обміні даними завжди виникає завдання узгодження швидкостей роботи пристроїв. Вирішення цього завдання досягається буферизацией даних [8,18, 20]. У підсистемі введення-виведення часто використовується буферизація в оперативній пам'яті. Однак буферизация тільки на основі оперативної пам'яті часто виявляється недостатньою через велику різницю швидкостей роботи оперативної пам'яті і зовнішніх пристроїв обсягу оперативної пам'яті може просто не вистачити. У цих випадках часто використовують в якості буфера дисковий файл під назвою спула-файлом. Типовий приклад застосування спулінга - висновок даних на принтер. (Для друкованих документів обсяг в декілька Мбайт - не рідкість, тому тимчасове зберігання такого файлу протягом десятків хвилин в оперативній пам'яті недоцільно.)

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

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

Можливі схеми буферизації введення-виведення наведені на рис. 4.7.

Найпростіший тип підтримки з боку ОС - одинарний буфер. У той момент, коли для користувача процес виконує запит вводу-виводу, операційна система призначає йому буфер в системної частини оперативної пам'яті.

Робота одинарного буфера для блочно-орієнтованих пристроїв може бути

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

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

простір і негайно проводить запит наступного блоку. Така процедура на-

називається випереджаючим зчитуванням або випереджувальним введенням.

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

Нехай Т - час, необхідний для введення одного блоку, а С - для обчислень, що виконуються між запитами на введення-виведення. Без буферизації час виконання, що припадає на один блок, дорівнюватиме Т + С, при використанні одинарної буферизації час дорівнюватиме max [С, Т] + М, де М - час переміщення даних з системного буфера в призначену для користувача пам'ять. У більшості випадків Т + С> max [С, Т] + М.

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

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

Час виконання при блочно-орієнтованої передачі можна грубо оцінити як max [С, Т]. Таким чином, якщо С <Т, то блочно-орієнтоване пристрій може працювати з максимальною швидкістю. Якщо С> Т, то подвійна буферизація позбавляє процес від необхідності очікування завершення введення-виведення.

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

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

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

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

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

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

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

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

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




Семафори, м'ютекси. Використання семафорів для синхронізації процесів | Організація фізичної пам'яті комп'ютера | Функції ОС по управлінню пам'яттю | Класифікація методів розподілу пам'яті | Розподіл пам'яті фіксованими розділами | Розподіл пам'яті динамічними розділами | Віртуальна пам'ять | Методи структуризації віртуального адресного простору | Сторінкова організація віртуальної пам'яті | Сегментація віртуальної пам'яті |

загрузка...
© um.co.ua - учбові матеріали та реферати