Лекция 9 I/O Управление и Disk Scheduling
Roadmap I/O Devices Organization of the I/O Function Operating System Design Issues I/O Buffering Disk Scheduling Raid Disk Cache UNIX SVR4 I/O LINUX I/O Windows I/O
I/O Devices Управлението на I/O е сложна задача на ОС. Необходимо е да е: Разбираемо за потребителите РАзбираемо за механизмите (х/с) Комуникациите и преноса на информация
Устройства с които комуникира потребителя Video display Клавиатура Мишка Принтери Скенери Камери Плотери
I/O свързани не пряко с потребителя Свързани са с комуникацията с електрониката Дискови драйвери USB драйвер Сензори Контролери
Комуникация Използвате се за връзка с отдалечени устройства Модеми Драйвери свързани с комуникациите
Разлики м/у I/O устройства Различват се в различни области Скорост на обмен на данни и информация Приложения Сложност на управлението и контрола Единици за трансфер/обмен Представяне на данните Условия за грешки
Скорост на обмен на данни
Необходими Приложения Софтуер за управление на файлове ако са съхранявани на дадено устройство Диск използван за съхранение на виртуални страници памет се нуждае от специален хардуер и софтуер, за да го поддържат Терминал използван от системен администратор може да има по-висок приоритет
Слойност на контрола Принтерът изисква сравнително прост интерфейс за контрол. Управлението на диска е с по-висока сложност. Сложността на контрола на устройството е в пряка зависимост от неговата сложност.
Единици на обмен Данните се обменят чрез : Потоци от битове и символи По-големи блокове памет
Представяне на данните Различните системи предоставят различни системи за енкодинг на данните, както се поддържат и различни конвенции
Условия на грешка Разглеждаме следните аспекти : Начина по който се докладват самите грешки Последствията от тях Набор от мерки за реакция при грешки
Roadmap I/O Devices Organization of the I/O Function Operating System Design Issues I/O Buffering Disk Scheduling Raid Disk Cache UNIX SVR4 I/O LINUX I/O Windows I/O
Техники зa представяне на I/O Програмирани I/O Прекъсване – Продължение I/O Директен достъп до паметта (DMA)
Еволюция на I/O функции 1. Процесорът пряко контролира периферно устройство 2. Добавят се контролери и I/O модули Процесор използва програмиран I / O, без да прекъсва Процесора не е необходимо да управлява директно периферията (детайлите на външните устройства)
еволюция…… 3. Контролери и I/O модули с прекъсвания Подобрява се бързодействието 4. Директен достъп до паметта Блок от данни се прехвърлят в паметта, без намесата на процесора Процесорът се намесва в началото и в края само при работа с I/O
еволюция…… 5. I/O модул се отделя от процесора 6. I/O processor I/O модул има собствена локална памет Контрол на комуникациите чрез интерактивни терминали
Директен достъп до паметта DMA модула трансферира данните към и от паметта Когато бъде завършен трансфера DMA модул изпраща сигнал за прекъсване на процесора
DMA конфигурация: Single Bus •DMA може да се конфигурира по няколко начина •Всички модули си поделят обща системна шина (Single system bus)
DMA Configurations: Integrated DMA & I/O •Direct Path between DMA and I/O modules •This substantially cuts the required bus cycles
DMA конфигурация: I/O Bus •Намалява броя на I/O интерфейси в DMA модула
Roadmap I/O Devices Organization of the I/O Function Operating System Design Issues I/O Buffering Disk Scheduling Raid Disk Cache UNIX SVR4 I/O LINUX I/O Windows I/O
Цели: ефективност Устройствата са доста по-бавни от основната памет Многозадачността позволява да се изчакват процесите и да се изпълняват едни докато други извършват I/O операции I/O не могат да поддържат скоростта на процесора Размяната на процеси ускорява
Йерархичен дизайн ОС е организирана на слоеве Всеки слой се позовава на следващия по-ниска слой,който изпълнява по- примитивните функции Предоставя услуга на по-горен слой. Промени на един слой не трябва да налагат промени в друг
Локално периферно устройство •Logical I/O: •Устройството като логически ресурс •Device I/O: –Преобразува операциите в поредица от I/O инструкции - Планиране и контрол •Реализира се действителния контрол на операциите
Комуникационен порт ПОдобен на предишния,но логическия слой е заменен с комуникационен Съдържа няколко слоя. Пример TCP/IP,
Файлова система Управление на директории В зависимост от потребителските операции Файлова система Логическа структура и операции Физическа организация Конвертира логическите имена във физически адрес
Roadmap I/O Devices Organization of the I/O Function Operating System Design Issues I/O Buffering Disk Scheduling Raid Disk Cache UNIX SVR4 I/O LINUX I/O Windows I/O
I/O Буфериране Процесите трябва да изчакват I/O операции За да се избегне мъртва хватка, някои страници трябва да останат в основната памет по време на I / O
Блоково буфериране Информацията се съхранява във фиксиран размер блокове Използва се за дискове и USB интерфейс
Буфериране на потоци Обменната информация е потоци данни Използва се за терминали, принтери, комуникационни портове, мишки и други устройства,както и повечето други устройства, които не са за вторично съхранение
Без буфер ОС директно достъпва устройството от което се нуждае
Единичен Буфер Операционна система възлага на буфер в основната памет за I / операция
Блоков единичен буфер Блокът се премества в потребителското пространство, когато е необходимо Следващият блок се премества в буфера най -често разумно предположение тъй като данните са обикновено с последователен достъп
Двоен Буфер Използват се 2 системни буфера вместо един Един процес може да трансферира данни към или от един буфер, докато операционната система или изпразва запълва други буфер
Кръгов буфер Използват се повече от 2 буфера Всеки отделен буфер е една единица в кръговия буфер Използва се когато при фходно изходна операция е необходимо да се запази процеса
Roadmap I/O Devices Organization of the I/O Function Operating System Design Issues I/O Buffering Disk Scheduling Raid Disk Cache UNIX SVR4 I/O LINUX I/O Windows I/O
Параметри на производителност на диск Параметрите зависят от много неща Диаграма на трансфер на данни при I/O
Позициониране на главата при R/W Когато се извършва операция на диска той се върти с постоянна скорост.
Параметри при дискове Времето за достъп е сума от: Seek time: Времето за позициониране на главата на диска Забавяне при въртене Transfer Time : време необходимо за прехвърляне на данни
First-in, first-out (FIFO) Последователни процеси Random scheduling
Last-in, first-out Добре е за системи за обработка на транзакции Устройството се дава на най-новия потребител,
Shortest Service Time First Избира се заявка, която изисква най- малкото движение на главата на диск от сегашната си позиция Избира се мин. Време за търсене
SCAN Главата се движи само в една посока докато не удовлетвори всички заявки и после се връща обратно
C-SCAN Ограничава сканирането в 1 посока След като е посетена последната писта от заявката, главата се връща в началото.
Performance Compared Comparison of Disk Scheduling Algorithms
Disk Scheduling Algorithms
Roadmap I/O Devices Organization of the I/O Function Operating System Design Issues I/O Buffering Disk Scheduling Raid Disk Cache UNIX SVR4 I/O LINUX I/O Windows I/O
Множество дискове Води до увеличаване на производителността Информацията може да бъде възстановена
Roadmap I/O Devices Organization of the I/O Function Operating System Design Issues I/O Buffering Disk Scheduling Raid Disk Cache UNIX SVR4 I/O LINUX I/O Windows I/O
Диск Кеш Буфер в основната памет за дискови сектори Съдържа копие на някои сектори на диска Когато I / O искане е за определен сектор, извършва се проверка за да се определи дали е в сектора на дисковия кеш. съществуват редица начини да се пренесат на кеш паметта
Roadmap I/O Devices Organization of the I/O Function Operating System Design Issues I/O Buffering Disk Scheduling Raid Disk Cache UNIX SVR4 I/O LINUX I/O Windows I/O
Devices are Files Each I/O device is associated with a special file Managed by the file system Provides a clean uniform interface to users and processes. To access a device, read and write requests are made for the special file associated with the device.
UNIX SVR4 I/O Each individual device is associated with a special file Two types of I/O Buffered Unbuffered
Buffer Cache Three lists are maintained Free List Device List Driver I/O Queue
Character Cache Used by character oriented devices E.g. terminals and printers Either written by the I/O device and read by the process or vice versa Producer/consumer model used
Unbuffered I/O Unbuffered I/O is simply DMA between device and process Fastest method Process is locked in main memory and can’t be swapped out Device is tied to process and unavailable for other processes
I/O for Device Types
Roadmap I/O Devices Organization of the I/O Function Operating System Design Issues I/O Buffering Disk Scheduling Raid Disk Cache UNIX SVR4 I/O LINUX I/O Windows I/O
Linux/Unix Similarities Linux and Unix (e.g. SVR4) are very similar in I/O terms The Linux kernel associates a special file with each I/O device driver. Block, character, and network devices are recognized.
Deadline scheduler Uses three queues Incoming requests Read requests go to the tail of a FIFO queue Write requests go to the tail of a FIFO queue Each request has an expiration time
Linux Page Cache Linux 2.4 and later, a single unified page cache for all traffic between disk and main memory Benefits: Dirty pages can be collected and written out efficiently Pages in the page cache are likely to be referenced again due to temporal locality
Roadmap I/O Devices Organization of the I/O Function Operating System Design Issues I/O Buffering Disk Scheduling Raid Disk Cache UNIX SVR4 I/O LINUX I/O Windows I/O
Windows I/O Manager The I/O manager is responsible for all I/O for the operating system It provides a uniform interface that all types of drivers can call.
Windows I/O The I/O manager works closely with: Cache manager – handles all file caching File system drivers - routes I/O requests for file system volumes to the appropriate software driver for that volume. Network drivers - implemented as software drivers rather than part of the Windows Executive. Hardware device drivers
Asynchronous and Synchronous I/O Windows offers two modes of I/O operation: asynchronous and synchronous. Asynchronous mode is used whenever possible to optimize application performance.
SSD