- •5 Пара. Управление вводом-выводом (слайд №1) Система управления вводом-выводом
- •Физические принципы организации ввода-вывода
- •Общие сведения об архитектуре компьютера (слайд №4)
- •Структура контроллера устройства
- •Опрос устройств
- •Прерывания
- •Исключительные ситуации
- •Прямой доступ к памяти (Direct Memory Access - dma)
- •Логические принципы организации ввода-вывода
- •Задачи программного обеспечения ввода-вывода
- •Структура системы ввода-вывода
- •Функции базовой подсистемы ввода-вывода
- •Блокирующиеся, не блокирующиеся и асинхронные системные вызовы
- •Буферизация и кэширование
- •Спулинг и захват устройств
- •Планирование запросов
- •Обобщение уровней и функций ввода-вывода
- •Аппаратно зависимые и независимые свойства ос, драйверы. (слайд №20) Машинно-(не)зависимые компоненты ос
- •Переносимость операционной системы
- •Аппаратная платформа компьютера
- •Платформы-бренды (слайд №23)
- •Несовместимые аппаратные платформы
- •Несовместимость кода, выполняемого процессором
- •Несовместимость устройств и материнских плат
- •Кроссплатформенное программное обеспечение
- •Сравнение архитектур управления аппаратными устройствами
- •Архитектура управления устройствами в Windows (слайд №24)
- •Архитектура управления устройствами в Linux (слайд №25)
- •Драйвер (слайд №26)
- •Идеология построения драйверов
- •Интеграция драйверов
- •-Принципы, заложенные в подсистему управления вводом-выводом в ос unix
- •-Ввод и вывод в Linux
- •-Алгоритмы планирования запросов к жесткому диску
- •-Строение жесткого диска и параметры планирования
- •-Алгоритм First Come First Served (fcfs)
- •-АлгоритмShortSeekTimeFirst (sstf)
- •-Алгоритмы сканирования (scan, c-scan, look, c-look)
Несовместимые аппаратные платформы
Аппаратные платформы несовместимы в случае различия программной модели процессора, а также различия системных шин и устройств на материнской плате.
Несовместимость кода, выполняемого процессором
Корпорация Intel, развивая свои семейства процессоров, наполняет процессоры дополнительными командами: команды математического сопроцессора (FPU); команды оптимизированные для обработки мультимедийного контента (MMX); серии команд SSE (SSE, SSE2, SSE3, SSE4 и SSE5); заимствованные у AMD команды 3DNow!, а также 64-битный набор команд AMD64. Новые команды серьезно влияют на совместимость процессоров, поэтому разработчикам программного обеспечения приходится ориентироваться на две платформы, более старую и «многочисленную» IA-32 и новую, перспективную x86-64. Проблема совместимости кода - ситуация, когда процессоры различных семейств не могут выполнять один и тот же машинный код. Например, между двумя 32-битными процессорами одного и того же производителя, Intel-Pentium и Pentium 2, может возникнуть несовместимость по причине присущего ограничения (аппаратного отсутствия MMX команд), если на первом будет запущена программа, откомпилированная с учётом имеющихся на Pentium 2 аппаратных возможностей.
Несовместимость устройств и материнских плат
Конкретно взятая материнская плата, особенно персонального компьютера, также вносит свой вклад в несовместимость платформ. На современной материнской плате расположено множество встроенных устройств, для которых, в отличие от определённых в дистрибутиве семейства операционных систем WindowsNT восьми альтернативных и мульти платформенных драйверов для целых классов устройств, нужны специфические драйверы. Поэтому, при установке операционной системы Windows 9x или NT, она посредством установки драйверов специфического оборудования, «привязывается» к конкретной материнской плате. Последующий перенос операционной системы на другую материнскую плату сопряжен со сложностью обеспечения аппаратной совместимости новой аппаратной платформы.
Для решения этой проблемы в корпоративном сегменте, новая техника (материнская плата, периферийные устройства) проходит тщательную подгонку под существующий HAL, либо, если разрабатываемая линейка является революционной и перспективной, под неё создается новый HAL, согласованный со сторонними разработчиками программного и аппаратного обеспечения.
Кроссплатформенное программное обеспечение
Запуск программного обеспечения на более чем одной аппаратной платформе и/или операционной системе является важной задачей, как для разработчиков новой аппаратуры, так и для программистов.
Debian компилирует свои пакеты для GNU/Linux для трёх архитектур процессоров Intel: IA-32 (x86-32), x86-64, IA64. Также официально создаются пакеты для ещё 8 аппаратных платформ. Пакеты, оптимизированные для конкретных процессоров своих платформ пользователи могут создать сами.
ОС NetBSD портирована на 60 аппаратных платформ (включающих в общей сложности 17 различных процессорных архитектур).
Microsoft разрабатывает специальные ветки своей операционной системы MicrosoftWindows: WindowsCE и WindowsEmbedded.
Запуск на различных архитектурах одного и того же прикладного программного обеспечения без необходимости обеспечивать совместимость на уровне ОС реализуется путём стандартизации языков, компиляторов, библиотек и среды исполнения (см., например, POSIX), а также путём перехода на исполнение ПО в виртуальной машине и стандартном окружении, которые реализуются для каждой платформы и гарантируют единообразное исполнение ПО независимо от платформы (см., например, CommonLanguageInfrastructure и JVM).