Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 11 лет назад пользователемВера Русинова
1 Основы операционных систем
2 Часть V. Ввод-вывод Лекция 13. Система управления вводом-выводом
3 Два вида деятельности вычислительной системы Обработка информации Обработка информации Операции ввода-вывода Операции ввода-вывода С точки зрения программиста: Обработка информации – выполнение команд процессора над данными, находящимися в памяти, независимо от уровня иерархии Ввод-вывод – обмен данными между памятью и устройствами, внешними по отношению к ней и процессору С точки зрения ОС: Обработка информации – выполнение команд процессора над данными, лежащими в памяти на уровнях не ниже основной памяти Ввод-вывод – все остальное
4 Два вида деятельности вычислительной системы Обработка информации Обработка информации –Что делается? –Как делается? Операции ввода-вывода Операции ввода-вывода –Что делается? –Как делается? Курс «Алгоритмы и алгоритмические языки» Часть II этого курса Тема этой лекции
5 Общие сведения об архитектуре компьютера ПроцессорПамятьДиски МониторКлавиатура линии Локальная магистраль
6 Общие сведения об архитектуре компьютера Локальная магистраль Процессор Монитор ПамятьДиски Клавиатура Шина данных Шина адреса Шина управления Ширина шины – количество линий в шине
7 Общие сведения об архитектуре компьютера Передача информации из процессора в память 1.На адресной шине выставить сигналы для адреса памяти 2.На шине данных выставить сигналы для данных 3.На шине управления выставить сигналы работы с памятью и операции записи
8 Общие сведения об архитектуре компьютера Память и устройства I/O Память: Память: –Локализована в пространстве –Ячейки взаимно однозначно отображаются на линейное адресное пространство памяти. Устройства I/O: Устройства I/O: –Пространственно разнесены и подключаются к локальной магистрали через порты ввода-вывода. I/O I/OI/O Порты i/o
9 Общие сведения об архитектуре компьютера Память и устройства I/O Память: Память: –Локализована в пространстве –Ячейки взаимно однозначно отображаются на линейное адресное пространство памяти. Устройства I/O: Устройства I/O: –Пространственно разнесены и подключаются к локальной магистрали через порты ввода-вывода. –Порты ввода-вывода взаимно однозначно отображаются на линейное адресное пространство ввода-вывода (иногда на линейное адресное пространство памяти)
10 Общие сведения об архитектуре компьютера Передача информации из процессора в порт, отображенный в адресное пространство ввода-вывода 1.На адресной шине выставить сигналы для адреса порта 2.На шине данных выставить сигналы для данных 3.На шине управления выставить сигналы работы с устройствами ввода-вывода и операции записи
11 Общие сведения об архитектуре компьютера Память и устройства I/O Занесение информации в память завершает операцию записи Занесение информации в память завершает операцию записи Занесение информации в порт часто инициализирует реальное совершение устройства ввода-вывода Занесение информации в порт часто инициализирует реальное совершение устройства ввода-вывода Что делать после получения информации через порт и как предоставить информацию для чтения из порта определяют контроллеры устройств
12 Общие сведения об архитектуре компьютера Устройства ввода-вывода подключаются к локальной магистрали через порты Устройства ввода-вывода подключаются к локальной магистрали через порты Могут существовать два адресных пространства: пространство памяти и пространство ввода-вывода Могут существовать два адресных пространства: пространство памяти и пространство ввода-вывода Порты обычно отображаются в адресное пространство ввода-вывода и иногда – в адресное пространство памяти Порты обычно отображаются в адресное пространство ввода-вывода и иногда – в адресное пространство памяти Какое адресное пространство использовать определяется типом команды или типом операндов Какое адресное пространство использовать определяется типом команды или типом операндов Управлением устройством ввода-вывода, приемом и передачей данных через порты и выставлением сигналов на магистрали занимаются контроллеры Управлением устройством ввода-вывода, приемом и передачей данных через порты и выставлением сигналов на магистрали занимаются контроллеры
13 Структура контроллера устройства Регистр состояния (read only) Бит занятости Бит готовности данных Бит ошибки Регистр управления (write only) Биты кода команды Биты режима работы Бит готовности команды Регистр выходных данных (read only) Регистр входных данных (write only)
14 Вывод данных на внешнее устройство Чтение из порта регистра состояния пока бит занятости == 1 Процессор Запись кода команды в порт регистра управления Запись данных в порт регистра входных данных Запись бита готовности команды в порт регистра управления команды в порт регистра управления Установить бит занятости Анализ кода команды Инициализация операции вывода После завершения операции – сбросить бит готовности команды Выставить значение бита ошибки и сбросить бит занятости Контроллер Чтение из порта регистра состояния пока бит занятости == 1 Polling или опрос устройств
15 Вывод данных на внешнее устройство Процессор Линия прерываний 1.После выполнения команды процессор обнаруживает сигнал на линии прерываний 2.Сохраняет часть регистров 3.Передает управление по заранее определенному адресу 4.Обрабатывает прерывание 5.Восстанавливает контекст I/O Память I/O
16 Вывод данных на внешнее устройство Процессор 1.После выполнения команды процессор обнаруживает сигнал на линии прерываний 2.Сохраняет часть регистров 3.Передает управление по заранее определенному адресу 4.Обрабатывает прерывание 5.Восстанавливает контекст I/O Память Шина прерываний Контроллер прерываний I/O
17 Внешние прерывания, исключительные ситуации и программные прерывания Внешние прерывания Исключительные ситуации Программные прерывания Обнаруживаются процессором между выполнением командОбнаруживаются процессором между выполнением команд Сохраняется часть контекста перед выполнением следующей командыСохраняется часть контекста перед выполнением следующей команды Не связаны с работой процессора и непредсказуемыНе связаны с работой процессора и непредсказуемы Обнаруживаются во время выполнения командыОбнаруживаются во время выполнения команды Сохраняется часть контекста перед выполнением текущей командыСохраняется часть контекста перед выполнением текущей команды Связаны с работой процессора, но непредсказуемыСвязаны с работой процессора, но непредсказуемы Происходят в результате выполнения командыПроисходят в результате выполнения команды Сохраняется часть контекста перед выполнением следующей командыСохраняется часть контекста перед выполнением следующей команды Связаны с работой процессора и предсказуемыСвязаны с работой процессора и предсказуемы
18 Прямой доступ к памяти (Direct memory access – DMA) 1.Контроллер DMA программируется 2.После получения сигнала от устройства I/O запрашивает у процессора управление магистралью 3.Получив управление, выставляет адрес и извещает устройство I/O 4.Используя шины данных и управления совместно с устройством I/O передает информацию 5.Возвращает управление магистралью I/O Память Контроллер прерываний Процессор Контроллер DMA I/O Канал DMA
19 Основные направления различия устройств ввода-вывода Скорость обмена информацией (от нескольких байтов до нескольких Гигабайтов в секунду) Скорость обмена информацией (от нескольких байтов до нескольких Гигабайтов в секунду) Возможность использования несколькими процессами параллельно Возможность использования несколькими процессами параллельно Запоминание выведенной информации для последующего ввода Запоминание выведенной информации для последующего ввода Символьные и блочные Символьные и блочные Только для ввода информации, только для вывода информации и read-write устройства Только для ввода информации, только для вывода информации и read-write устройства
20 Структура системы ввода-вывода клавиатурамышьмонитор IDE диски SCSI диски Контроллер клавиатуры Контроллер мыши Контроллер монитора IDE контроллер SCSIконтроллер Hardware Драйвер клавиатуры Драйвер мыши Драйвер монитора IDE драйвер SCSI драйвер Базовая подсистема ввода-вывода Остальные части ядра ОС и пользовательские процессы
21 Систематизация внешних устройств Символьные устройства (клавиатура, модем, терминал и т.д.) Символьные устройства (клавиатура, модем, терминал и т.д.) Блочные устройства (магнитные и оптические диски и ленты и т.д.) Блочные устройства (магнитные и оптические диски и ленты и т.д.) Сетевые устройства (сетевые карты) Сетевые устройства (сетевые карты) Все остальные (таймеры, графические дисплеи, видеокамеры и т.д.) Все остальные (таймеры, графические дисплеи, видеокамеры и т.д.)
22 Интерфейс между базовой подсистемой ввода-вывода и драйверами Символьные устройства Блочные устройства Ввести символ – get Вывести символ – put Прочитать блок – read Записать блок – write Найти блок – seek Выполнить произвольную команду – ioctl (Ре)инициализировать драйвер и устройство – open Временно завершить работу с устройством – close Остановить работу драйвера – stop Опросить состояние устройства – poll
23 Функции базовой подсистемы ввода-вывода Поддержка блокирующихся, неблокирующихся и асинхронных вызовов Поддержка блокирующихся, неблокирующихся и асинхронных вызовов Буферизация и кэширование входных и выходных данных Буферизация и кэширование входных и выходных данных Осуществление spoolingа и монопольного захвата внешних устройств Осуществление spoolingа и монопольного захвата внешних устройств Обработка ошибок и прерываний Обработка ошибок и прерываний Планирование последовательности запросов на выполнение операций ввода-вывода Планирование последовательности запросов на выполнение операций ввода-вывода
24 Блокирующиеся, неблокирующиеся и асинхронные вызовы При блокирующемся системном вызове процесс переходит из состояния исполнение в состояние ожидание. После выполнения операций ввода-вывода в полном объеме он разблокируется. При блокирующемся системном вызове процесс переходит из состояния исполнение в состояние ожидание. После выполнения операций ввода-вывода в полном объеме он разблокируется. При неблокирующемся системном вызове операции ввода- вывода могут быть выполнены неполностью. Процесс либо неблокируется совсем, либо блокируется не более чем на определенное время. При неблокирующемся системном вызове операции ввода- вывода могут быть выполнены неполностью. Процесс либо неблокируется совсем, либо блокируется не более чем на определенное время. При асинхронном системном вызове процесс никогда не блокируется. Операции ввода-вывода выполняются в полном объеме. При асинхронном системном вызове процесс никогда не блокируется. Операции ввода-вывода выполняются в полном объеме.
25 Буферизация и кэширование Разные скорости приема и передачи информации участников обмена Разные скорости приема и передачи информации участников обмена Разные объемы данных, которые могут быть приняты или переданы участниками обмена единовременно Разные объемы данных, которые могут быть приняты или переданы участниками обмена единовременно Необходимость копирования данных из приложения в ядро ОС и обратно Необходимость копирования данных из приложения в ядро ОС и обратно Буфер – область памяти для запоминания информации при обмене данными между устройствами, процессами или между устройством и процессом Причины буферизации в базовой подсистеме ввода-вывода
26 Буферизация и кэширование Буфер служит для согласования параметров участников обмена информацией и для ее промежуточного хранения. Кэш применяется для ускорения доступа к данным. Буфер служит для согласования параметров участников обмена информацией и для ее промежуточного хранения. Кэш применяется для ускорения доступа к данным. Кэш всегда содержит копию данных, существующих где-либо еще. Буфер часто содержит единственный экземпляр данных в системе. Кэш всегда содержит копию данных, существующих где-либо еще. Буфер часто содержит единственный экземпляр данных в системе. Кэш (cache) – область быстрой памяти, содержащая копию данных, расположенных где-либо в более медленной памяти, предназначенная для ускорения работы вычислительной системы Разница между кэшем и буфером
27 Spooling и захват устройств Монопольный захват устройства. Монопольный захват устройства. Spooling. Spooling. Spool – буфер, содержащий входные или выходные данные для устройства, на котором следует избегать чередования его использования различными процессами Способы использования неразделяемых устройств
28 Обработка прерываний и ошибок Ожидание Исполнение Прерывание Выполнение кода ОС Работа hardware Сохранение контекста Обработка прерывания ГотовностьИсполнение Готовность Планирование Работа hardware Выполнение кода ОС Восстановление контекста Выполнение кода пользователя
29 Определение устройства, выдавшего прерывание. Определение устройства, выдавшего прерывание. Взаимодействие с устройством. Взаимодействие с устройством. Проверка успешности выполнения операции. Проверка успешности выполнения операции. Попытка устранения возможных ошибок. Попытка устранения возможных ошибок. Определение процесса, ожидающего этого прерывания. Перевод его из состояния ожидание в состояние готовность. Определение процесса, ожидающего этого прерывания. Перевод его из состояния ожидание в состояние готовность. Если есть еще процессы с неудовлетворенными запросами к этому устройству – инициализация нового запроса. Если есть еще процессы с неудовлетворенными запросами к этому устройству – инициализация нового запроса. Действия операционной системы Обработка прерываний и ошибок Действия по обработке прерывания и компенсации ошибок могут быть частично делегированы драйверу устройства – функция intr в интерфейсе драйвера
30 При занятости устройства запрос ставится в очередь к данному устройству. При занятости устройства запрос ставится в очередь к данному устройству. После освобождения устройства необходимо принять решение: какой из запросов в очереди инициировать следующим – планирование запросов. После освобождения устройства необходимо принять решение: какой из запросов в очереди инициировать следующим – планирование запросов. Для блокирующихся и асинхронных системных вызовов Планирование запросов Действия по планированию запросов могут быть частично или полностью делегированы драйверу устройства – функция strategy в интерфейсе драйвера
31 Строение жесткого диска Алгоритмы планирования запросов к жесткому диску
32 Параметры планирования Алгоритмы планирования запросов к жесткому диску Запрос полностью характеризуется: Запрос полностью характеризуется: –типом операции –номером цилиндра –номером дорожки –номером сектора Параметр планирование – время, необходимое для выполнения запроса. Параметр планирование – время, необходимое для выполнения запроса. Время выполнения запроса = transfer time + positioning time Positioning time = seek time + positioning latency Единственным параметром запроса остается seek time – время пропорциональное разнице между номером цилиндра в запросе и номером текущего цилиндра
33 Диск имеет 100 цилиндров (от 0 до 99) Очередь запросов: 23, 67, 55, 14, 31, 7, 84, 10 Текущий цилиндр – 63 Алгоритмы планирования запросов к жесткому диску Алгоритм FCFS (First Come First Served) Алгоритм FCFS (First Come First Served) Всего перемещение на 329 цилиндров Алгоритм SSTF ( Short Seek Time First) Алгоритм SSTF ( Short Seek Time First) Всего перемещение на 141 цилиндр 63 -> 23 -> 67 -> 67 -> 55 -> 55 -> 31 -> 31 -> 14 -> 14 -> 07 -> 07 -> 84 -> 84 -> 10 -> > 67 -> 55 -> 55 -> 31 -> 31 -> 14 -> 14 -> 23 -> 23 -> 10 -> 10 -> 07 -> 07 -> 84 -> 84
34 Диск имеет 100 цилиндров (от 0 до 99) Очередь запросов: 23, 67, 55, 14, 31, 7, 84, 10 Текущий цилиндр – 63 Алгоритмы планирования запросов к жесткому диску Алгоритм SCAN Алгоритм SCAN Всего перемещение на 147 цилиндров Алгоритм LOOK Алгоритм LOOK Всего перемещение на 133 цилиндра Алгоритм C-SCAN Алгоритм C-SCAN Алгоритм C-LOOK Алгоритм C-LOOK 63 -> 55 -> 31 -> 31 -> 23 -> 23 -> 10 -> 10 -> 14 -> 14 -> 07 -> 07 -> 67 -> 67 -> 84 -> > 55 -> 31 -> 31 -> 23 -> 23 -> 10 -> 10 -> 14 -> 14 -> 07 -> 07 -> 67 -> 67 -> 84 -> 84 -> 0 -> > 55 -> 31 -> 31 -> 23 -> 23 -> 10 -> 10 -> 14 -> 14 -> 07 -> 07 -> 84 -> 84 ->67 -> > 55 -> 31 -> 31 -> 23 -> 23 -> 10 -> 10 -> 14 -> 14 -> 07 -> 07 -> 84 -> 84 -> 67 -> 67 -> 0 -> 0 -> 99 -> 99
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.