МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
КІСіТ КНЕУ ім. В. Гетьмана
Самостійна робота №2
з предмету: "Методи та засоби комп’ютерних інформаційних технологій”
за ІІ семестр 2010-2011 н.р.
Тема: Блокові та символьні пристрої для введення-виведення.
Київ-2010
Блокові і символьні пристрої Типовий приклад блокового пристрою - пристрій керування дисками. Він виконує команди виду: read, write, seek (прочитати, записати або знайти блок із заданим номером). Пристрій може виконувати чисте введення-виведення або доступ до файлової системи. Є можливість доступу до файлу, псевдонімом в пам'ять. Типові приклади символьних пристроїв - клавіатура, миша, послідовні порти. Такі пристрої виконують команди виду: get, put (вважати або записати символ). Бібліотеки верхнього рівня в операційній системі для символьних пристроїв допускають порядкове редагування по символьний введеної інформації. Мережні пристрої суттєво відрізняються від блокових і символьних; мають свій власний інтерфейс і систему команд Мережні пристрої і їх драйвери в ОС підтримують традиційні або специфічні мережеві протоколи і способи передачі інформації через мережу. Наприклад, ОС UNIX та Windows NT / 9x / 2000 підтримують сокет-інтерфейс. Мережний пристрій відокремлює мережевий протокол від мережевий операції. Команди мережевих пристроїв включають функцію select - вибір мережевого пакета. Мережні пристрої різні за підходами до реалізації (конвеєри, pipes, FIFO, потоки, черги, поштові скриньки). У типовій конфігурації настільного або портативного комп'ютера присутні наступні мережні пристрої: • мережевий адаптер локальної мережі (Ethernet), що має роз'єм типу RJ45 для підключення мережевого кабелю twisted pair (кручена пара) або BNC (коаксіального); • пристрій для підключення до бездротової мережі типу IEEE.802.11x (Wi-Fi); • пристрій для підключення до локальної мережі IEEE 1394 (FireWire) для передачі цифрового відео; • вже трохи застарілий, але до цих пір використовується в комп'ютерах спосіб під'єднання до мережі Інтернет - вбудований модем для передачі інформації по телефонній лінії (dial-up) зі швидкістю максимум порядку 5-6 кілобайт в секунду. Пристрої FireWire, мабуть, із-за особливої важливості передачі мультимедійної інформації, в сучасних комп'ютерах розташовуються на материнській платі. У специфікації комп'ютера це зазвичай вказується абревіатурою типу FireWire on board (на борту). Операційні системи підтримують для користувачів більш високорівневу концепцію мережевого з'єднання (network connection), що включає інформацію про мережному пристрої, за допомогою якого дане з'єднання здійснюється. Блокуємий(синхронний) і не блокуємий (асинхронний) ввід-вивід Для оптимізації введення-виведення в системі підтримується, крім традиційного синхронного (блокується), також асинхронне введення-виведення. Блокуєме, введення-виведення засноване на простій, інтуїтивно зрозумілій парадигмі: процес затримується, поки введення-виведення не закінчиться. Він більш простий для використання та розуміння, але в силу своєї недостатньої ефективності, недостатній для деяких застосувань. Для оптимізації введення-виведення повернення з системного виклику для введення-виведення може відбуватись у міру доступності інформації. Застосовується інтерфейс користувача для копіювання даних (буферизація). Введення-виведення також частково реалізується за допомогою багатопоточності (multi-threading): введення-виведення виділяється в окремий потік. З системних викликів для введення-виведення передбачений швидке повернення з видачею в якості результату числа байтів, фактично прочитаного чи записаного. Асинхронне введення-виведення ґрунтується на іншій парадигмі: процес виконується одночасно з виконанням введення-виведення. Внаслідок цього, він більш складний у використанні. Після завершення асинхронного введення-виведення підсистема вводу-виводу генерує сигнал (виключення) у процесі, що його використовує. Програмування асинхронного введення-виведення засноване на використанні пари операцій типу почати асинхронний ввід-вивід і закінчити асинхронний ввід-вивід (почекати його результатів). Така схема загрожує помилками, так як програмістам властиво забувати завершальні дії, парні ініціалізуємим, якщо середовище розробки йому про це не нагадує. Однак саме асинхронний ввід-вивід забезпечує найбільшу ефективність.
Продуктивність введення-виведенняВведення-виведення - важливий фактор в продуктивності системи. Є декілька чинників, що визначають, наскільки введення-виведення критичний по ефективності в системі:• Введення-виведення вимагає від процесора виконання драйвера пристрою - коду рівня ядра ОС;• Необхідно виконувати контекстні перемикання, пов'язані з перериваннями;• Необхідно виконувати копіювання даних.Особливо напруженим в будь-якій комп'ютерній системі є мережевий трафік, так як його швидкість фактично визначає швидкість і продуктивність роботи всієї розподіленої системи (наприклад, роботи з віддаленими файловими системами), а також швидкість отримання інформації з Інтернету або корпоративної мережі.На рис. 1 зображено детальна схема взаємодії комп'ютерів при наборі символьної інформації та передачі її через мережу. Схема дає уявлення про складність взаємодії, діях апаратури та програмного забезпечення,що виконуються для кожного набраного і переданого символу, кількості переривань, їх обробок та відповідних контекстних перемикань. Рис. 1. Cхема взаємодії комп'ютерів при наборі символьної інформації та передачі її через мережу.
Контрольні питання:1. Вкажіть різницю між блоковими та символьними пристроями.
2 . Наведіть приклади мережевих пристроїв.
3. Що таке буферізація?
4. Поясніть принцип синхронного та асинхронного введення-виведення.
5. Наведіть приклади пристроїв синхронного та асинхронного вводу-виводу.
6. Згідно схеми взаємодії комп'ютерів при наборі символьної інформації та передачі її через мережу наведіть приклад передачі власного повідомлення, яке повинно складатись одного речення (на вибір) та проходити всі етапи пердачі.