Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Завдання підсистеми введення-виведення

Керування пристроями введення-виведення

 

1. Завдання і організація підсистеми введення-виведення

2. Способи виконання операцій введення-виведення

3. Введення-виведення у режимі користувача

4. Таймери та системний час

5. Керування введенням-виведенням в Linux, Unix та Windows XP

 

У даній лекції розглядатимуться можливості ОС щодо керування пристроями введення-виведення, а саме: загальна організація підсистеми введення-виведен­ня, різні способи виконання зазначених операцій, деякі особливості роботи цієї підсистеми ядра, засоби організації інтерфейсу введення-виведення для приклад­них програм, а також особливості функціонування відповідних драйверів для Linux і Windows XP.

 

Основним завданням підсистеми введення-виведення є реалізація доступу до зов­нішніх пристроїв із прикладних програм, яка повинна забезпечити:

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

 

  1. Забезпечення ефективності вимагає розв'язання кількох важливих задач.

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

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



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

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

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

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

 

  1. Універсальність інтерфейсу прикладного програмування.

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

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

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

1. Розширити допустимий набір операцій, створивши інтерфейс, що відображає особливості конкретного пристрою. Його будують на основі стандартного фай­лового інтерфейсу, створюючи операції, характерні для конкретного пристрою. Ці операції, в свою чергу, використовують стандартні виклики, подібні до read() і write().

2. Надати прикладним програмам можливість взаємодіяти із драйвером при­строю безпосередньо. Для цього звичайно пропонують універсальний систем­ний виклик (в UNIX його називають ioctK), у Windows XP — DeviceloCon-trol О), параметри якого задають необхідний драйвер, команду, яку потрібно виконати, і дані для неї.

 

 

<== предыдущая лекция | следующая лекция ==>
| Завдання підсистеми введення-виведення

Дата добавления: 2014-01-07; Просмотров: 853; Нарушение авторских прав?;


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



ПОИСК ПО САЙТУ:


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



studopedia.su - Студопедия (2013 - 2017) год. Не является автором материалов, а предоставляет студентам возможность бесплатного обучения и использования! Последнее добавление ‚аш ip: 23.20.179.211
Генерация страницы за: 0.09 сек.