69290

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

Лекция

Информатика, кибернетика и программирование

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

Украинкский

2014-10-02

41.5 KB

5 чел.

Лекція № 17

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

План

  1.  Завдання підсистеми введення-виведення
  2.  Забезпечення ефективності доступу до пристроїв
  3.  Забезпечення спільного використання зовнішніх пристроїв
  4.  Універсальність інтерфейсу прикладного програмування
  5.  Універсальність інтерфейсу драйверів пристроїв

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

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

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

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

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

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

Забезпечення ефективності доступу до пристроїв

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

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

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

Забезпечення спільного використання зовнішніх пристроїв

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

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

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

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

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

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

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

  1.  Розширити допустимий набір операцій, створивши інтерфейс, що відображає особливості конкретного пристрою. Його будують на основі стандартного файлового інтерфейсу, створюючи операції, характерні для конкретного пристрою. Ці операції, в свою чергу, використовують стандартні виклики, подібні до read() і writeO.
  2.  Надати прикладним програмам можливість взаємодіяти із драйвером пристрою безпосередньо. Для цього звичайно пропонують універсальний системний виклик (в UNIX його називають ioctlO, у Windows XP - DeviceloCon-troH)), параметри якого задають необхідний драйвер, команду, яку потрібно виконати, і дані для неї.

Універсальність інтерфейсу драйверів пристроїв

Як відомо з розділу 2, драйвер пристрою — це програмний модуль, що керує взаємодією ОС із конкретним зовнішнім пристроєм.

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

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

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

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

Питання для самоконтролю:

  1.  Завдання підсистеми введення-виведення
  2.  Забезпечення ефективності доступу до пристроїв
  3.  Забезпечення спільного використання зовнішніх пристроїв
  4.  Універсальність інтерфейсу прикладного програмування
  5.  Універсальність інтерфейсу драйверів пристроїв


 

А также другие работы, которые могут Вас заинтересовать

24355. Три аспекта бытия науки: как познавательная деятельность, как социальный институт, как особая сфера культуры 83 KB
  Такая переформулировка имеет логическое оправдание: вопервых значение науки как элемента культуры в современных условиях выросло настолько что требует специального рассмотрения см вопрос 7 вовторых научные знания являются наиважнейшей компонентой культуры и одновременно присутствуют в двух других составляющих науки поэтому без обсуждения вопроса о сущности и роли научных знаний в жизни общества не обойтись. Знакомство с деятельной стороной науки позволяет понять не только что происходило и почему происходило но и как происходило то...
24356. Позитивисткая традиция в философии науки. О.Конт как основоположник позитивизма 41.5 KB
  Это значит что: философское знание должно быть абсолютно точным и достоверным; для его достижения философия должна использовать научный метод при познании и опираться на достижения других наук; основной путь для получения научного знания в философии эмпирическое наблюдение; философия должна исследовать лишь факты а не их причины внутреннюю сущность окружающего мира и другие далекие от науки проблемы; философия должна освободиться от ценностного подхода и от оценочного характера при исследовании; философия не должна стремиться...
24357. Неопозитивизм (логический позитивизм – Карнап, Шлик, Рейхенбах и др.). Принципы верификации, физикализма и конвенционализма 56 KB
  22 Предмет философии науки в неопозитивизме Р.Рассел Наиболее последовательную системную роль философия науки впервые приобрела в работах неопозитивистов Р. Неопозитивисты стремились создать философию науки как строгую науку которая позволила бы найти в конгломерате человеческих убеждений мнений те безусловно истинные элементы которые могли бы служить надежным базисом познания и деятельности. Философия науки по их мнению должна базироваться на строгих методологических установках основу которых составляет методология современного...
24358. Постпозитивизм. Характеристика взглядов К.Поппера (принцип фальсификации); И.Лакатоса (роль научной программы); Т.Кун (парадигма и революции в науке); Г.Фейерабенд (принцип пролиферации); М.Полани (2 типа знаний, личное знание) 130 KB
  Понимание предмета философии науки в критическом рационализме К. С точки зрения критического рационализма предметом философии науки является изучение не высказываний а наука как целостная динамичная развивающая система. А это значит что философия не только оказывает стимулирующее негативное или позитивное воздействие на науку но философские положения органически входят в тело науки.Поппер исходил из предпосылки что законы науки не выражаются аналитическими суждениями и в то же время не сводимы к наблюдениям.
24359. Проблема интернализма и экстернализма в понимании механизмов научной деятельности 54.5 KB
  60 Движущие силы развития научного познания: интернализм и экстернализм а Интернализм Что является движущими силами развития научного знания При ответе на этот вопрос исследователь сталкивается с двойственным характером существования и движения научного знания. Они развиваются по внутренней логике: вытекают одна из другой обосновывают друг друга и образуют единую систему знания. С другой стороны исследователь не может не учитывать того обстоятельства что производит эти знания конкретный субъект ученый научное сообщество и что их...
24360. Предмет философии науки: общие закономерности научного познания в его историческом развитии и изменяющемся социокультурном контексте 54.5 KB
  Функции науки культурная технологическая наука как фактор соц регуляции проективно конструктивная экологическая Научное познание процесс получения объективного истинного знания направленного на отражение закономерности действительности. 9 Предмет и структура философии науки Специфика предмета науки определяется в ходе исследовательской деятельности. Поэтому представление о предмете философии науки в истории развития этой отрасли знания существенно меняется.
24361. Наука и культура. Традиционалистический и техногенный тип цивилизации. Ценность научной рациональности 53.5 KB
  Тема соотношения науки и культуры обширна здесь много деталей но общий механизм их взаимодействия таков: наука выявляя законы изменения природных и социальных процессов становится необходимым условием их управления воздействует на потребности общества помогает человечеству в выборе жизненных стратегий поиске путей культурного развития. Надежность влияния культуры на науку подчеркивает хотя бы тот факт что не всякая культура способна продуцировать науку: многие культуры в истории человечества в частности культура майя обходились без...
24362. Соотношение науки и философии 100.5 KB
  Первые пять вопросов получили впоследствии в философии название онтологических или метафизических первый смысл этого понятия проблем. Шестой вопрос гносеологические вопросы философии: философия вырабатывает положения являющиеся базисными для познающего мир о глобальности и абсолютности материи о постоянном развитии мира в целом и отдельных его частей о сотканности мира из противоречий о маятникообразности всех процессов относительно положения равновесия о несводимости закона целого к законам его частей и др. И если на какомто...
24363. Единство и различие науки и искусства 60 KB
  Он же положил начало тенденции рассматривать поэзию в качестве главной составляющей искусства. Белинский утверждал что наука живая современная наука сделалась пестуном искусства и без нее немощно вдохновение бессилен талант. Новый виток обсуждения взаимоотношений науки и искусства связан с огромными достижениями науки и искусства XX столетия.