Студопедия

КАТЕГОРИИ:


Архитектура-(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)

Синхронне введення-виведення




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

Обробка помилок

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

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

- Помилки, викликані апаратними проблемами. Серед них розрізняють:

- викликані тимчасовими причинами (високе навантаження на мережу, сиг­нал «зайнято» для модему); для цих помилок звичайною реакцією є по­вторна спроба виконання введення-виведення;

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

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

У програмному забезпеченні передача докладних відомостей про помилку є го­ловним завданням підсистеми введення-виведення у разі виникнення проблеми.

 

 

Тут зупинимося на взаємодії підсистеми введення-виведення із процесами режи­му користувача та на різних методах організації введення-виведення з режиму користувача.

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

Однак синхронне введення-виведення підходить не для всіх застосувань. Тут можна навести ті самі приклади, які описані в розділі 3 під час вивчення переду­мов до внесення паралелізму у застосування (розділ 3.2). Зокрема, воно не підхо­дить для таких категорій програм:

- серверів, що обслуговують багатьох клієнтів (отримавши з'єднання від одного

- клієнта, потрібно мати можливість відразу обслуговувати й інших);

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

- мультимедійних застосувань (відіславши запит на читання одного кадру, пот­рібно одночасно показувати інші).

Для вирішення цієї проблеми запропоновано кілька підходів

- Багатопотокова організація введення-виведення

- Введення-виведення із повідомленням

- Асинхронне введення-виведення

- Порти завершення введення-виведення




Поделиться с друзьями:


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


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



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.007 сек.