
- •Введение
- •Введение в компьютерные и операционные системы
- •Структура компьютерной системы
- •Программное обеспечение компьютерной системы
- •1.2.1 Операционная система
- •1.2.1.1 Управляющая программа
- •1.2.1.2 Системные обрабатывающие программы
- •1.2.2 Пакеты прикладных программ
- •1.2.3 Программы технического обслуживания
- •Аппаратное обеспечение компьютерной системы
- •1.3.1 Процессор
- •1.3.2 Внутренняя память
- •1.3.3 Устройства ввода и вывода, внешняя память
- •Основные функции и архитектурные особенности ос
- •1.4.1 Основные функции ос:
- •3) Управление памятью.
- •1.4.2 Монолитное ядро
- •1.4.3 Слоеные системы (Layered systems)
- •1.4.4 Виртуальные машины
- •1.4.5 Микроядерная архитектура
- •1.4.6 Смешанные системы
- •Классификация ос
- •Контрольные вопросы
- •Архитектура компьютерных систем
- •Классификация архитектур по параллельной обработке данных
- •Гибридная архитектура numa
- •Кластерная архитектура
- •Проблемы выполнения сети связи процессоров в кластерной системе
- •Контрольные вопросы
- •Способы организации высокопроизводительных процессоров. Ассоциативные конвейерные и матричные процессоры
- •1) Ассоциативные процессоры
- •2) Конвейерные процессоры
- •3) Матричные процессоры
- •Ассоциативные процессоры
- •Конвейерные процессоры
- •Матричные процессоры
- •Контрольные вопросы
- •Способы организации высокопроизводительных процессоров. Новые архитектуры процессоров
- •Клеточные и днк-процессоры.
- •Коммуникационные процессоры
- •Процессоры баз данных
- •Потоковые процессоры
- •Нейронные процессоры
- •Процессоры с многозначной (нечеткой) логикой
- •Контрольные вопросы
- •Управление процессами. Состояние процессов и операции над процессами
- •Введение в процессы
- •Состояния процесса
- •Операции над процессами и связанные с ними понятия
- •5.3.1 Набор операций
- •5.3.2 Pcb и контекст процесса
- •5.3.3 Одноразовые операции
- •5.3.4 Многоразовые операции
- •5.3.5 Прерывание и типы прерываний
- •5.3.6 Переключение контекста
- •5.3.7 Ядро операционной системы
- •Контрольные вопросы
- •Управление процессами. Кооперация процессов и основные аспекты ее логической организации
- •Введение в кооперацию процессов
- •Взаимодействующие процессы
- •Категории средств обмена информацией
- •Логическая организация механизма передачи информации
- •6.4.1 Установление связи между процессами
- •6.4.2 Однонаправленные и двунаправленные связи между процессами
- •6.4.3 Особенности передачи информации с помощью линий связи
- •1) Буферизация
- •2) Поток ввода/вывода и сообщения
- •6.4.4. Надежность средств связи
- •6.4.5 Завершение связи
- •Потоки исполнения
- •Контрольные вопросы
- •Управление процессами. Алгоритмы синхронизации
- •Чередования, условия состязания и взаимоисключения
- •Критическая секция
- •Алгоритмы взаимоисключений
- •7.3.1 Требования, предъявляемые к алгоритмам
- •7.3.2 Запрет прерываний
- •7.3.3 Переменная-замок
- •7.3.4 Строгое чередование
- •7.3.5 Флаги готовности
- •7.3.6 Алгоритм Петерсона
- •7.3.7 Алгоритм булочной (Bakery algorithm)
- •Аппаратная поддержка взаимоисключений
- •7.4.1 Команда Test-and-Set (Проверить и присвоить 1)
- •7.4.2 Команда Swap (Обменять значения)
- •Недостатки алгоритмов взаимоисключений
- •Семафоры
- •7.6.1 Концепция семафоров
- •7.6.2 Решение проблемы производитель-потребитель с помощью семафоров
- •Мониторы
- •Сообщения
- •Эквивалентность семафоров, мониторов и сообщений
- •Контрольные вопросы
- •Управление процессами. Тупики
- •Введение в тупики
- •Концепция ресурса
- •Условия возникновения тупиков
- •Основные направления борьбы с тупиками
- •2) Обнаружение тупиков
- •3) Восстановление после тупиков
- •Алгоритм страуса
- •Обнаружение тупиков
- •Восстановление после тупиков
- •8.7.1 Восстановление при помощи перераспределения ресурсов
- •8.7.2 Восстановление через откат назад
- •8.7.3 Восстановление через ликвидацию одного из процессов
- •Способы предотвращения тупиков путем тщательного распределения ресурсов
- •8.8.1 Предотвращение тупиков и алгоритм банкира
- •8.8.2 Недостатки алгоритма банкира
- •Предотвращение тупиков за счет нарушения условий возникновения тупиков
- •8.9.1 Нарушение условия взаимоисключения
- •8.9.2 Нарушение условия ожидания дополнительных ресурсов
- •8.9.3 Нарушение принципа неперераспределяемости
- •8.9.4 Нарушение условия кругового ожидания
- •Проблемы аналогичные тупикам
- •8.10.1 Двухфазная локализация
- •8.10.2 Тупики не ресурсного типа
- •8.10.3 Голод
- •Контрольные вопросы
- •Управление памятью. Простейшие схемы управления памятью
- •1) Введение в управление памятью
- •2) Связывание адресов
- •Введение в управление памятью
- •Связывание адресов
- •Простейшие схемы управления памятью
- •9.3.1 Схема с фиксированными разделами
- •1) Один процесс в памяти
- •2) Оверлейная структура
- •9.3.2 Схема со свопингом
- •9.3.3 Схема с переменными разделами
- •Контрольные вопросы
- •Управление памятью. Архитектурные средства поддержки виртуальной памяти
- •1) Проблема размещения больших программ. Понятие виртуальной памяти
- •Проблема размещения больших программ. Понятие виртуальной памяти
- •Архитектурные средства поддержки виртуальной памяти
- •Способы организации виртуальной памяти
- •1) Страничная память
- •2) Сегментная организация памяти
- •3) Сегментно-страничная организации памяти
- •Ассоциативная память
- •Иерархия памяти
- •Размер страницы
- •Контрольные вопросы
- •Управление памятью. Аппаратно-независимый уровень управления виртуальной памятью
- •Введение в аппаратно-независимый уровень управления виртуальной памятью
- •Исключительные ситуации при работе с памятью
- •Стратегии управления страничной памятью
- •Алгоритмы замещения страниц
- •11.4.1 Алгоритм fifo (выталкивание первой пришедшей страницы)
- •11.4.2 Оптимальный алгоритм
- •11.4.3 Алгоритм lru (выталкивание дольше всего не использовавшейся страницы)
- •11.4.4 Алгоритм nfu (выталкивание редко используемой страницы)
- •11.4.5 Другие алгоритмы
- •Thrashing. Свойство локальности. Модель рабочего множества
- •Демоны пейджинга
- •Аппаратно-независимая модель памяти процесса
- •Отдельные аспекты функционирования менеджера памяти
- •Контрольные вопросы
- •Система управления вводом-выводом. Физические принципы организации ввода-вывода
- •Введение в систему управления вводом-выводом
- •Введение в физические принципы организации ввода-вывода
- •Общие сведения об архитектуре компьютера
- •Структура контроллера устройства
- •Опрос устройств
- •Прерывания
- •Прямой доступ к памяти
- •Контрольные вопросы
- •Система управления вводом-выводом. Логические принципы организации ввода-вывода
- •1) Введение в логические принципы организации ввода-вывода
- •2) Структура системы ввода-вывода
- •3) Систематизация внешних устройств и интерфейс между базовой подсистемой ввода-вывода и драйверами
- •Введение в логические принципы организации ввода-вывода
- •Структура системы ввода-вывода
- •Систематизация внешних устройств и интерфейс между базовой подсистемой ввода-вывода и драйверами
- •Функции базовой подсистемы ввода-вывода
- •Блокирующиеся, не блокирующиеся и асинхронные системные вызовы
- •Буферизация и кэширование
- •Spooling и захват устройств
- •Обработка прерываний и ошибок
- •Планирование запросов
- •Алгоритмы планирования запросов к жесткому диску
- •13.10.1 Строение жесткого диска и параметры планирования
- •Алгоритм fcfs
- •Алгоритм sstf
- •Алгоритмы сканирования (scan, c-scan, look, c-look)
- •Контрольные вопросы
- •Интерфейсы компьютерных систем
- •Классификация интерфейсов
- •Интерфейс rs-232 для порта сом
- •Интерфейс ieee 1284 для порта lpt
- •Интерфейс ps/2
- •Интерфейс usb
- •Интерфейс Firewire
- •Контрольные вопросы
- •Многопроцессорные компьютерные системы
- •1) Достоинства многопроцессорных систем
- •Достоинства многопроцессорных систем
- •Организация многопроцессорной аппаратуры
- •15.2.1 Общая шина
- •15.2.2 Матрица координатной коммутации
- •15.2.3 Организация с многопортовой памятью
- •Организация многопроцессорных операционных систем
- •15.3.1 Организация «главный-подчиненный»
- •15.3.2 Организация с раздельными мониторами
- •15.3.3 Симметричная организация
- •Контрольные вопросы
- •Требования к компьютерным системам
- •Основные требования к компьютерным системам
- •Отношение "стоимость/производительность"
- •Надежность и отказоустойчивость компьютерных систем
- •Показатели надежности компьютерных систем
- •Масштабируемость
- •Совместимость и мобильность программного обеспечения
- •Контрольные вопросы
- •Программы диагностики компьютерных систем
- •1) Программа диагностики post
- •2) Программа диагностики WatchDog
- •Программа диагностики post
- •Программа диагностики WatchDog
- •Контрольные вопросы
- •Список использованных источников
Контрольные вопросы
1) Назовите основные физические принципы построения системы ввода-вывода
2) Перечислите, что входит в функции базовой подсистемы ввода-вывода
3) Назовите, какие шины выделяют в современных компьютерах
4) Перечислите действия, выполняемые для передачи информации из процессора в память
5) Перечислите действия, выполняемые для передачи информации из процессора в память
6) Назовите наиболее важные особенности ввода-вывода
7) Какие внутренние регистры имеет контролер
8) Перечислите действия, выполняемые процессором и контроллером в случае команды вывода данных на внешнее устройство
9) Опишите SVC- прерывания
10) Опишите внешние прерывания
11) Опишите внутренние прерывания (исключительные ситуации)
12) Опишите программные прерывания
13) Опишите прямой доступ в память
Система управления вводом-выводом. Логические принципы организации ввода-вывода
На лекции рассматриваются следующие вопросы:
1) Введение в логические принципы организации ввода-вывода
2) Структура системы ввода-вывода
3) Систематизация внешних устройств и интерфейс между базовой подсистемой ввода-вывода и драйверами
4) Функции базовой подсистемы ввода-вывода (блокирующиеся, не блокирующиеся и асинхронные системные вызовы; буферизация и кэширование; spooling и захват устройств; обработка прерываний и ошибок; планирование запросов)
5) Алгоритмы планирования запросов к жесткому диску (строение жесткого диска и параметры планирования; алгоритмы FCFS, SSTF; SCAN, C-SCAN, LOOK, C-LOOK)
Введение в логические принципы организации ввода-вывода
Рассмотренные в предыдущей теме физические механизмы взаимодействия устройств ввода-вывода с КС позволяют понять, почему разнообразные внешние устройства легко могут быть добавлены в существующие компьютеры. Все, что необходимо сделать пользователю при подключении нового устройства - это отобразить порты устройства в соответствующее адресное пространство, определить какой номер будет соответствовать прерыванию, генерируемому устройством, и, если нужно, закрепить за устройством некоторый канал DMA. Для нормального функционирования hardware этого будет достаточно. В данной теме рассматриваются вопросы, как должна быть построена подсистема управления вводом-выводом в операционной системе для добавления новых устройств, и какие функции на нее возлагаются.
Структура системы ввода-вывода
Приведем перечень наиболее важных направлений, по которым различаются устройства ввода-вывода:
1) Скорость обмена информацией может варьироваться в диапазоне от нескольких байт в секунду (клавиатура) до нескольких гигабайт в секунду (сетевые карты).
2) Некоторые устройства могут быть использованы параллельно несколькими процессами (являются разделяемыми), в то время как другие требуют монопольного захвата процессом.
3) Устройства могут запоминать выведенную информацию для ее последующего ввода или не обладать этой функцией. Устройства, запоминающие информацию, в свою очередь, могут дифференцироваться по формам доступа к сохраненной информации: обеспечивать к ней последовательный доступ в жестко заданном порядке или уметь находить и передавать только необходимую порцию данных.
4) Часть устройств умеет передавать данные только по одному байту последовательно (символьные устройства), а часть устройств умеет передавать блок байт как единое целое (блочные устройства).
5) Существуют устройства, предназначенные только для ввода информации, устройства, предназначенные только для вывода информации, и устройства, которые могут совершать и ввод, и вывод.
В области технического обеспечения удалось выделить несколько основных принципов взаимодействия внешних устройств с КС, т.е. создать единый интерфейс для их подключения, возложив все специфические действия на контроллеры самих устройств. Тем самым проблема, связанная с подключением внешней аппаратуры, решается не конструкторами КС, а разработчиками самой аппаратуры, которые должны придерживаться определенного стандарта.
Похожий подход оказался продуктивным и в области программного подключения устройств ввода-вывода. Можно разделить устройства на относительно небольшое число типов, отличающихся по набору операций, которые могут быть ими выполнены, считая все остальные различия несущественными. Можно затем специфицировать интерфейсы между ядром операционной системы, осуществляющим некоторую общую политику ввода-вывода, и программными частями, непосредственно управляющими устройствами, для каждого из таких типов. Более того, разработчики ОС получают возможность освободиться от написания и тестирования этих специфических программных частей, получивших название драйверов, передав эту деятельность производителям самих внешних устройств. Фактически приходим к использованию принципа уровневого построения системы управления вводом-выводом для операционной системы (рис.13.1).
Выделим следующие уровни системы ввода-вывода:
1) Устройства, непосредственно выполняющие операции,
2) Контроллеры устройств, служащие для организации совместной работы устройств и остальной КС.
3) Драйвера устройств ввода-вывода, скрывающие от разработчиков операционных систем особенности функционирования конкретных приборов и обеспечивающие четко определенный интерфейс между hardware и базовой подсистемой ввода-вывода
4) Базовая подсистема ввода-вывода, предоставляющая механизм взаимодействия между драйверами и программной частью КС в целом.
Уровень 1)-2) составляет hardware.
Рисунок 13.1 - Структура системы ввода-вывода