КАТЕГОРИИ: Архитектура-(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; Просмотров: 1503; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |