- Главная
- Информатика
- Функції базової підсистеми вводу-виводу. Тема 5.2
Содержание
- 2. 1 СИСТЕМНІ ВИКЛИКИ ОПЕРАЦІЙ ВВОДУ-ВИВОДУ Базова підсистема вводу-виводу служить посередником між процесами обчислювальної системи і набором
- 3. 1 СИСТЕМНІ ВИКЛИКИ ОПЕРАЦІЙ ВВОДУ-ВИВОДУ 2 Системні виклики, що не блокуються. У простому випадку процес, що
- 4. 2 БУФЕРИЗАЦІЯ І КЕШУВАННЯ ДАНИХ Найважливішою технологією підвищення ефективності обміну даними між пристроєм і додатком або
- 5. 2 БУФЕРИЗАЦІЯ І КЕШУВАННЯ ДАНИХ Різниця в обсязі даних, переданих пристроями або рівнями підсистеми введення-виведення за
- 6. 2 БУФЕРИЗАЦІЯ І КЕШУВАННЯ ДАНИХ Розглянемо різні способи реалізації буферизації (рисунок 5.2.1). Рисунок 5.2.1 - Різні
- 7. 2 БУФЕРИЗАЦІЯ І КЕШУВАННЯ ДАНИХ Першим підходом, який реально використовують на практиці, є одинарна буферизація в
- 8. 2 БУФЕРИЗАЦІЯ І КЕШУВАННЯ ДАНИХ Узагальнення цієї схеми на n буферів називають циклічною буферизацією, її можна
- 9. 3 SPOOLING І ЗАХОПЛЕННЯ ПРИСТРОЇВ Використання буферного кеша дає можливість накопичувати дані для збереження їх на
- 10. 3 SPOOLING І ЗАХОПЛЕННЯ ПРИСТРОЇВ Роботи надходять у спул і в ньому вишиковуються у FIFO-чергу (нові
- 11. 4 ОБРОБКА ПЕРЕРИВАНЬ І ПОМИЛОК Якщо при роботі із зовнішнім пристроєм обчислювальна система не користується методом
- 12. 4 ОБРОБКА ПЕРЕРИВАНЬ І ПОМИЛОК що вимагають втручання користувача (відсутність диска в дисководі, відсутність паперу у
- 13. УЗАГАЛЬНЕННЯ ВИВЧЕНОГО МАТЕРІАЛУ: Усно дайте відповіді на питання. 1 Поясніть роботу системних викликів, що блокуються. 2
- 14. УЗАГАЛЬНЕННЯ ВИВЧЕНОГО МАТЕРІАЛУ: Усно дайте відповіді на питання. 8 У випадку коли час збереження буфера перевищує
- 16. Скачать презентацию
Слайд 21 СИСТЕМНІ ВИКЛИКИ ОПЕРАЦІЙ ВВОДУ-ВИВОДУ
Базова підсистема вводу-виводу служить посередником між процесами обчислювальної системи
1 СИСТЕМНІ ВИКЛИКИ ОПЕРАЦІЙ ВВОДУ-ВИВОДУ
Базова підсистема вводу-виводу служить посередником між процесами обчислювальної системи
Розглянемо деякі можливості, які надає підсистема введення-виведення ядра, та їхнє місце в загальній інфраструктурі введення-виведення.
Усі системні виклики, пов’язані із здійсненням операцій вводу-виводу, можна розбити на три групи по способах реалізації взаємодії процесу і пристрою вводу-виводу.
1 Системні виклики, що блокуються. Як випливає з самої назви, застосування такого виклику призводить до блокування процесу, що ініціював його, тобто процес переводиться операційною системою із стану виконання в стан очікування. Завершивши виконання усіх операцій вводу-виводу, наказаних системним викликом, операційна система переводить процес із стану очікування в стан готовність. Після того, як процес буде знову вибраний для виконання, в нім станеться остаточне повернення з системного виклику. Типовим для застосування такого системного виклику є випадок, коли процесу необхідно отримати від пристрою строго певну кількість даних, без яких він не може виконувати роботу далі.
Слайд 31 СИСТЕМНІ ВИКЛИКИ ОПЕРАЦІЙ ВВОДУ-ВИВОДУ
2 Системні виклики, що не блокуються. У простому випадку
1 СИСТЕМНІ ВИКЛИКИ ОПЕРАЦІЙ ВВОДУ-ВИВОДУ
2 Системні виклики, що не блокуються. У простому випадку
3 Асинхронні системні виклики. Процес, що використав асинхронний системний виклик, ніколи в нім не блокується. Системний виклик ініціює виконання необхідних операцій вводу-виводу і негайно повертається, після чого процес продовжує свою регулярну діяльність. Про закінчення завершення операції вводу-виводу операційна система згодом інформує процес зміною значень деяких змінних, передачею йому сигналу або повідомлення або яким-небудь іншим способом. Необхідно чітко розуміти різницю між викликами, що не блокуються і асинхронними. Системний виклик, що не блокується, для виконання операції read повернеться негайно, але може зчитати запитану кількість байтів, меншу кількість або взагалі нічого. Асинхронний системний виклик для цієї операції також повернеться негайно, але необхідна кількість байтів рано чи пізно буде зчитана в повному об’ємі.
Слайд 42 БУФЕРИЗАЦІЯ І КЕШУВАННЯ ДАНИХ
Найважливішою технологією підвищення ефективності обміну даними між пристроєм і
2 БУФЕРИЗАЦІЯ І КЕШУВАННЯ ДАНИХ
Найважливішою технологією підвищення ефективності обміну даними між пристроєм і
Розглянемо причини, які викликають необхідність буферизації:
Різниця у пропускній здатності різних пристроїв. Наприклад, якщо дані зчитують із модему, а потім зберігають на жорсткому диску, без буферизації процес переходитиме у стан очікування перед кожною операцією отримання даних від модему. Власне кажучи, буферизація потрібна у будь-якій ситуації, коли для читання даних потік має у циклі виконати блокувальну операцію введення-виведення для кожного отримуваного символу; без неї така робота буде вкрай неефективною.
Слайд 52 БУФЕРИЗАЦІЯ І КЕШУВАННЯ ДАНИХ
Різниця в обсязі даних, переданих пристроями або рівнями підсистеми
2 БУФЕРИЗАЦІЯ І КЕШУВАННЯ ДАНИХ
Різниця в обсязі даних, переданих пристроями або рівнями підсистеми
Необхідність підтримки для застосування семантики копіювання (copy semantics). Вона полягає в тому, що інформація, записана на диск процесом, має зберігатися в тому вигляді, у якому вона перебувала у пам’яті в момент записування, незалежно від змін, зроблених після цього.
Слайд 62 БУФЕРИЗАЦІЯ І КЕШУВАННЯ ДАНИХ
Розглянемо різні способи реалізації буферизації (рисунок 5.2.1).
Рисунок 5.2.1 -
2 БУФЕРИЗАЦІЯ І КЕШУВАННЯ ДАНИХ
Розглянемо різні способи реалізації буферизації (рисунок 5.2.1).
Рисунок 5.2.1 -
Слайд 72 БУФЕРИЗАЦІЯ І КЕШУВАННЯ ДАНИХ
Першим підходом, який реально використовують на практиці, є одинарна
2 БУФЕРИЗАЦІЯ І КЕШУВАННЯ ДАНИХ
Першим підходом, який реально використовують на практиці, є одинарна
Використання одинарного буфера не позбавлене недоліків, головний з яких пов’язаний з тим, що в момент, коли буфер переповнений, нові дані нікуди помістити (а буфер може бути переповнений деякий час, наприклад, поки його зберігають на диску або поки йде завантаження з диска сторінки з буфером користувача). Для вирішення цієї проблеми запропонована технологія подвійної буферизації, за якої у пам’яті ядра створюють два буфери. Коли перший з них заповнений, дані починають надходити в другий, і до моменту, коли заповниться другий, перший уже буде готовий прийняти нові дані і т. д.
Слайд 82 БУФЕРИЗАЦІЯ І КЕШУВАННЯ ДАНИХ
Узагальнення цієї схеми на n буферів називають циклічною буферизацією,
2 БУФЕРИЗАЦІЯ І КЕШУВАННЯ ДАНИХ
Узагальнення цієї схеми на n буферів називають циклічною буферизацією,
Буферизація і кешування. Буферизацію варто відрізняти від кешування. Основна відмінність між ними полягає в тому, що буфер може містити єдину наявну копію даних, тоді як кеш за визначенням зберігає у більш швидкій пам’яті копію даних з іншого місця.
З іншого боку, ділянку пам’яті в деяких випадках можна використати і як буфер, і як кеш. Наприклад, якщо після виконання операції введення із використанням буфера надійде запит на таку саму операцію, дані можуть бути отримані із буфера, який при цьому буде частиною кеша. Сукупність таких буферів називають буферним кешем (buffer cache).
Функції буферизації і кешування не обов’язково мають бути локалізовані в базовій підсистемі вводу-виводу. Вони можуть бути частково реалізовані в драйверах і навіть в контролерах пристроїв, потайно по відношенню до базової підсистеми.
Слайд 93 SPOOLING І ЗАХОПЛЕННЯ ПРИСТРОЇВ
Використання буферного кеша дає можливість накопичувати дані для збереження
3 SPOOLING І ЗАХОПЛЕННЯ ПРИСТРОЇВ
Використання буферного кеша дає можливість накопичувати дані для збереження
Спулінг (spooling) — технологія виведення даних із використанням буфера, що працює за принципом FIFO. Такий буфер називають спулом (spool) або ділянкою спула (spool area).
Спулінг використовують тоді, коли виведення даних має виконуватися неподільними порціями (роботами, jobs). Неподільність робіт полягає в тому, що їхній вміст під час виведення не перемішується (тільки після виведення всіх даних однієї роботи має починатися виведення наступної). Прикладом такого виведення є робота із розподілюваним принтером, коли запити на друкування документів приходять від багатьох процесів у довільному порядку, але друкуватися документи можуть тільки по одному (тут роботою є документ). Іншим прикладом є відсилання електронної пошти (роботами є повідомлення).
Слайд 103 SPOOLING І ЗАХОПЛЕННЯ ПРИСТРОЇВ
Роботи надходять у спул і в ньому вишиковуються у
3 SPOOLING І ЗАХОПЛЕННЯ ПРИСТРОЇВ
Роботи надходять у спул і в ньому вишиковуються у
Зазначимо, що загалом спулінг не можна назвати технологією керування введенням-виведенням режиму ядра — його часто реалізують процеси користувача.
Менш гнучкою альтернативою спулінгу є надання можливості монопольного захоплення пристрою потоками. Такий монопольний режим може, наприклад, задаватися під час відкриття пристрою, після чого інші потоки не зможуть отримати доступу до нього, поки цей режим не буде знято. Такий підхід вимагає реалізації синхронізації доступу до пристрою. У більшості випадків спулінг є гнучкішим і надійнішим вирішенням, але для таких пристроїв, як записувальний CD-дисковід або сканер, монопольне захоплення є прийнятним варіантом організації доступу.
Слайд 114 ОБРОБКА ПЕРЕРИВАНЬ І ПОМИЛОК
Якщо при роботі із зовнішнім пристроєм обчислювальна система не
4 ОБРОБКА ПЕРЕРИВАНЬ І ПОМИЛОК
Якщо при роботі із зовнішнім пристроєм обчислювальна система не
У підсистемі введення-виведення під час роботи виникають різні помилки, які можна віднести до кількох категорій.
а) Помилки в програмному коді введення-виведення (доступ до відсутнього пристрою, недопустимі дії із пристроєм тощо). Реакцією на такі помилки звичайно є повернення коду помилки в додаток. Введення-виведення при цьому зазвичай не виконують (найнебезпечнішим видом помилки в цьому разі буде виконання операції із невірним пристроєм, оскільки така операція може відповідати коректній, але зовсім іншій операції для цього пристрою).
б) Помилки, викликані апаратними проблемами. Серед них розрізняють;
викликані тимчасовими причинами (високе навантаження на мережу, сигнал «зайнято» для модему); для цих помилок звичайною реакцією є повторна спроба виконання введення-виведення;
Слайд 124 ОБРОБКА ПЕРЕРИВАНЬ І ПОМИЛОК
що вимагають втручання користувача (відсутність диска в дисководі, відсутність
4 ОБРОБКА ПЕРЕРИВАНЬ І ПОМИЛОК
що вимагають втручання користувача (відсутність диска в дисководі, відсутність
викликані некоректною роботою апаратного забезпечення (збій контролера, дефектні сектори на диску); у цьому разі важливим є надання користувачу якомога більше повної інформації про помилку (зазначимо, що після деяких таких помилок продовження роботи системи може стати неможливим).
У програмному забезпеченні передача докладних відомостей про помилку є головним завданням підсистеми введення-виведення у разі виникнення проблеми. Справді, для більшості системних викликів інтерфейс повідомлень про помилки доволі скромний (цілочисловий код повернення, глобальна змінна errno), тому розробникам драйверів необхідно передбачати додаткові способи отримання інформації про помилку.
Дії з обробки переривання і компенсації виникаючих помилок можуть бути частково перекладені на плечі відповідного драйвера. Для цього до складу інтерфейсу між драйвером і базовою підсистемою вводу-виводу додають ще одну функцію - функцію обробки переривання intr.
Слайд 13УЗАГАЛЬНЕННЯ ВИВЧЕНОГО МАТЕРІАЛУ:
Усно дайте відповіді на питання.
1 Поясніть роботу системних викликів, що блокуються.
2 Поясніть роботу
УЗАГАЛЬНЕННЯ ВИВЧЕНОГО МАТЕРІАЛУ:
Усно дайте відповіді на питання.
1 Поясніть роботу системних викликів, що блокуються.
2 Поясніть роботу
3 Поясніть роботу асинхронних системних викликів.
4 Існує три причини, що призводять до використання буферів в базовій підсистемі вводу-виводу. Назвіть їх.
5 Яку назву має технологія підвищення ефективності обміну даними між пристроєм і додатком або між двома пристроями?
6 Яку назву має область пам’яті для запам’ятовування інформації при обміні даних між двома пристроями, двома процесами або процесом і пристроєм?
7 Яку назву має спосіб організації буферизації, коли буфер створюють у ядрі, куди копіюють дані в міру їхнього надходження від пристрою? Коли цей буфер заповнюється, весь його вміст за одну операцію копіюють у буфер, що перебуває у просторі користувача.
Слайд 14УЗАГАЛЬНЕННЯ ВИВЧЕНОГО МАТЕРІАЛУ:
Усно дайте відповіді на питання.
8 У випадку коли час збереження буфера перевищує
УЗАГАЛЬНЕННЯ ВИВЧЕНОГО МАТЕРІАЛУ:
Усно дайте відповіді на питання.
8 У випадку коли час збереження буфера перевищує
9 Яку назву має технологія виведення даних із використанням буфера, що працює за принципом FIFO?
10 Яку назву має буфер для здійснення операцій введення-виведення, що працює за принципом FIFO?