МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
КІСіТ КНЕУ ім. В. Гетьмана
Самостійна робота №1
з предмету: "Методи та засоби комп’ютерних інформаційних технологій”
за ІІ семестр 2010-2011 н.р.
Тема: Структури даних для введення-виведення.
Київ-2010
Годинники і таймери Дані хронометричні пристрою в комп'ютерній системі зберігають інформацію про поточний час, що пройшов відрізку часу, установках таймера. Як правило, операційна система використовує програмовані інтервали часу для роботи з таймером. Таким чином в системі організовуються періодичні переривання з метою опитування пристроїв і диспетчеризації процесів. У системі UNIX роботу з годинником і таймером підтримує системний виклик і команда ioctl. Крім того, в системі є процес-демон cron, за допомогою якого в системі організуються події, що відбуваються в призначений час, - наприклад, автоматичне резервне копіювання всіх найбільш важливих файлових систем на стрічку.
Підсистема вводу-виводу в ядрі ОС Операційна система керує пристроями введення-виведення. ОС здійснює планування, включаючи впорядкування запитів на введення-виведення в чергах до кожного пристрою. ОС забезпечує буферизацію - запис даних в пам'ять в процесі передачі між пристроями. Мета буферизації: - балансування пристроїв з різними швидкостями;- згладжування невідповідності розміру даних для роботи з пристроєм;- підтримка "семантики копіювання".Для оптимізації роботи із зовнішніми пристроями організується кешування - використання швидкої пам'ять, в якій зберігається копія даних (фактично в ній зберігаються найбільш часто використовувані блоки). Слід, однак, мати на увазі, що вміст кеш-пам'яті - завжди тільки копія реальних даних, тому в деяких випадках доводиться синхронізувати вміст кешу з вмістом диска, щоб не допустити неузгодженості інформації. Кешування - ключ до підвищення продуктивності дискових пристроїв.Дуже важлива також така функція ОС, як буферизація висновку (spooling) - затримка виведення на пристрій, з метою підтримки цілісності інформації, що виводиться одним і тим же процесом. Типовий приклад - друк на принтер.ОС виконує також резервування пристрою - забезпечення монопольного доступу до нього. Є системні виклики для заняття та звільнення пристроїв монопольного доступу. ОС контролює відсутність тупиків (deadlocks), які можливі при монопольному використанні пристроїв.ОС виконує обробку помилок введення-виведення. Система підтримує відновлення інформації після читання з диска, недоступності пристрої, тимчасових збоїв при записі. У більшості випадків повертається номер (код) помилки, у випадку, якщо запит на введення-виведення завершується невдало. У системні журнали записується інформація про виявлені проблеми.
Структури даних для введення-виведення в ядрі ОСУ ядрі ОС зберігається інформація про стан для компонент введення-виведення, включаючи таблиці відкритих файлів, мережевих з'єднань, стан символьних пристроїв. Вона являє собою велику кількість складних структур даних (черг введення-виведення і таблиць пристроїв) для контролю буферів, розподілу пам'яті і ін. Реалізація багатьох з цих системних структур використовує об'єктно-орієнтовані методи і передачу повідомлень.Структура модулів вводу-виводу в системі UNIX зображена на рис. 1. Рис. 1. Структура модулів вводу-виводу в ядрі UNIX.
Життєвий цикл запиту на введення-виведенняРозглянемо більш детально процес читання з дискового файлу. Він складається з наступних етапів:• Визначається пристрій, на якому зберігається файл;• Виконується трансляція імені в уявлення пристрої;• Фізично зчитані дані з диска розміщуються в буфері;• Дані стають доступними для їх запитів процесу;• Управління повертається процесу.Життєвий цикл запиту на введення-виведення зображений на рис. 2. Рис. 2. Життєвий цикл запиту на введення-виведення.
Контрольні питання:1. Для чого використовуються години та лічильники?2. Які два методи організації введення-виведення використовуються в системах, з точки зору синхронізації процесу та ініційованого їм введення-виведення?3. Які основні функції виконує ОС для організації вводу-виводу?4. Що таке буферизація пристроїв?5. Що таке кешування пристроїв?6. Що таке планування пристроїв?7. Що таке резервування пристроїв?8. Що таке spooling?9. Як обробляється запит процесу на введення-виведення?10. Які фактори впливають на продуктивність вводу-виводу?