- •Классификация, критерии оценки и структура ос.
- •Критерии оценки ос
- •Надежность
- •Эффективность
- •Удобство
- •Масштабируемость
- •Способность к развитию
- •Мобильность
- •Основные функции и структура ос
- •Классификация и архитектура внешних устройств. Классификация периферийных устройств и их архитектура
- •Способы организации ввода/вывода. Синхронный и асинхронный ввод/вывод. Архитектура подсистемы ввода/вывода
- •Ввод/вывод по опросу и по прерываниям
- •Активное и пассивное ожидание
- •Синхронный и асинхронный ввод/вывод
- •Буферизация и кэширование.
- •Сглаживание неравномерности скоростей процессов
- •Распараллеливание ввода и обработки
- •Согласование размеров логической и физической записи
- •Редактирование при интерактивном вводе
- •Кэширование дисков
- •Опережающее чтение.
- •Драйверы устройств. Типовая структура драйвера.
- •Уровни доступа к устройствам в ms-dos. Драйверы устройств ms-dos.
- •Драйверы устройств в ms-dos
- •Управление символьными устройствами в ms-dos. (На примере клавиатуры) Управление символьными устройствами
- •Управление блочными устройствами в ms-dos. (Структура диска) Управление блочными устройствами Структура диска
- •Разделы и логические тома
- •Управление устройствами в Windows и unix. Управление устройствами в Windows Драйверы устройств в Windows
- •Управление устройствами в unix Драйверы устройств в unix
- •Устройство как специальный файл
- •Характеристики файлов и архитектура файловых систем.
- •Размещение файлов.
- •Разделение файлов между процессами. Разделение файлов между процессами
- •Файловая система fat. Структуры данных на диске, создание и удаление файлов. Файловая система fat и управление данными в ms-dos Общая характеристика системы fat
- •Структуры данных на диске
- •Создание и удаление файла
- •Работа с файлами в ms-dos. Хэндлы. Внутренние структуры данных подсистемы управления данными (sft, jft). Работа с файлами в ms-dos. Системные функции.
- •Доступ к данным
- •Структуры данных в памяти
- •Архитектура файловой системы unix.
- •Жесткие и символические связи
- •Монтируемые тома
- •Типы и атрибуты файлов
- •Управление доступом к файлам в unix. Управление доступом
- •Структуры данных файловой системы unix.
- •Развитие файловых систем unix. Развитие файловых систем unix
- •Особенности файловой системы ntfs. Особенности файловой системы ntfs
- •Структуры дисковых данных
- •Главная таблица файлов
- •Атрибуты файла
- •Доступ к данным в Windows. Доступ к данным
- •Защита данных в Windows. Защита данных
- •Аутентификация пользователя
- •Дескриптор защиты
- •Процессы и ресурсы. Квазипараллельное выполнение процессов. Понятия процесса и ресурса
- •Квазипараллельное выполнение процессов
- •Состояния процесса. Состояния процесса
- •Вытесняющая и невытесняющая многозадачность. Вытесняющая и невытесняющая многозадачность
- •Дескриптор и контекст процесса. Реентерабельность системных функций. Дескриптор и контекст процесса
- •Реентерабельность системных функций
- •Дисциплины диспетчеризации и приоритеты процессов. Дисциплины диспетчеризации и приоритеты процессов
- •Изоляция и взаимодействие процессов. Проблема взаимного исключения. Изоляция процессов и их взаимодействие
- •Проблема взаимного исключения процессов
- •Двоичные семафоры Дейкстры. Средства взаимодействия процессов. Двоичные семафоры Дейкстры
- •Средства взаимодействия процессов
- •Целочисленные семафоры
- •Семафоры с множественным ожиданием
- •Сигналы
- •Сообщения
- •Общая память
- •Программные каналы
- •Проблема тупиков. Проблема тупиков
- •Процессы и нити в Windows.
- •Планировщик процессов в Windows. Планировщик Windows
- •Синхронизация нитей и функции ожидания в Windows. Синхронизация нитей. Способы синхронизации.
- •Объекты синхронизации и функции ожидания
- •Объекты синхронизации в Windows. Критические секции. Типы объектов синхронизации
- •Критические секции
- •Механизм обмена сообщениями в Windows.
- •Жизненный цикл процесса в unix. Группы процессов. Жизненный цикл процесса
- •Группы процессов
- •Программные каналы
- •Сигналы
- •Интерпретатор команд shell
- •Виртуальные и физические адреса
- •Распределение памяти без использования виртуальных адресов Настройка адресов
- •Распределение с фиксированными разделами
- •Распределение с динамическими разделами
- •40. Сегментная и страничная организация памяти. Сегментная организация памяти
- •Страничная организация памяти
- •Управление памятью в Windows Структура адресного пространства
- •Регионы
- •Отображение исполняемых файлов
- •Файлы, отображаемые на память
- •Стеки и кучи
Способы организации ввода/вывода. Синхронный и асинхронный ввод/вывод. Архитектура подсистемы ввода/вывода
С программной точки зрения, устройство (или его контроллер) обычно представлено одним или несколькими регистрами. Регистр устройства — это адресуемое машинное слово, используемое для обмена данными или сигналами между устройством и процессором. Можно выделить два основных типа регистров.
· Регистр данных служит для обмена данными. Запись данных в такой регистр (если она возможна) означает вывод данных на устройство, чтение данных из регистра — ввод с устройства.
· Регистр управления и состояния содержит два типа двоичных разрядов (битов). Биты состояния служат для передачи процессору информации о текущем состоянии устройства (например, флагов готовности и ошибки, сигналов прерывания). Биты управления служат для передачи на устройство команд, позволяющих задать выполняемую операцию, запустить выполнение операции, установить режимы работы устройства и т.п.
В различных компьютерах используется один из двух способов адресации регистров устройств.
· Отображение регистров устройств на память. При этом способе для устройств отводится определенная часть адресного пространства памяти, а для работы с устройствами можно использовать те же команды, что и для работы с основной памятью (например, команду MOV).
· Адресация регистров через порты ввода/вывода. Для портов отводится отдельное адресное пространство, и для работы с ними имеются специальные команды (например, IN и OUT).
Первый способ удобнее для программирования, поскольку позволяет использовать более широкий набор команд. Однако этот способ труднее реализовать на аппаратном уровне, поскольку аппаратура должна определять, относится ли конкретный адрес к памяти или к устройству, и по-разному обрабатывать эти два случая.
Среди различных возможных конфигураций однопроцессорной вычислительной системы принято выделять два основных типа: системы с магистральной и с радиальной архитектурой.
· Магистральная архитектура основана на подключении всех имеющихся устройств, включая процессор и память, к единой системной магистрали (шине), которая объединяет в себе линии передачи данных, адресов и управляющих сигналов. Совместное использование магистрали различными устройствами подчиняется специальным правилам (протоколу), обеспечивающему корректность работы магистрали.
· Радиальная архитектура предполагает, что каждое из устройств, включая память, подключается к процессору отдельно, независимо от других устройств, и взаимодействует с процессором по собственным правилам.
Для программиста понятия магистральной и радиальной архитектуры имеют несколько иное содержание, чем для инженера-системотехника. С точки зрения программной архитектуры, неважно, подсоединено ли устройство к процессору напрямую или через посредство системной магистрали. Важно то, какие сигналы должна посылать и принимать программа, работающая с устройством, и какие команды могут для этого использоваться.
Основная особенность магистральной архитектуры — единообразный способ подключения всех устройств. Структура регистров устройства стандартизуется, при этом определяется, какими сигналами любое устройство может обмениваться с процессором и каким разрядам регистра должны соответствовать эти сигналы. Конечно, не всякое устройство нуждается в использовании всего набора стандартных сигналов. Некоторые типы устройств могут, например, не генерировать прерываний, не сообщать об ошибках. Но те сигналы, которые устройство использует, должны соответствовать стандарту данной магистрали.
Преимуществом магистральной архитектуры является простота подключения новых типов устройств, поэтому такая архитектура особенно удобна для открытых вычислительных систем, т.е. таких, которые рассчитаны на расширяемый набор периферийных устройств.
Напротив, для радиальной архитектуры характерен индивидуальный выбор способа подключения, наиболее удобного для каждого типа устройств. При этом в принципе можно достичь экономии аппаратных ресурсов и более высокой эффективности. Случается даже, что в одном порту объединяются управляющие сигналы от нескольких разных устройств. Очевидно, подобная архитектура удобна только в том случае, когда она рассчитана на постоянный набор устройств. Расширение радиальной системы всегда вызывает затруднения.
Исходя их этих определений, не так уж легко точно охарактеризовать современные IBM-совместимые ПК. Исходная модель IBM PC имела довольно четко выраженную радиальную архитектуру и небольшой набор стандартных устройств. В последующих моделях были сделаны значительные шаги по стандартизации подключения новых устройств. Однако и сегодня эти компьютеры не тянут на магистральную архитектуру в полном смысле слова: у них для этого слишком много разных шин.
Важной деталью архитектуры современных компьютеров является такое устройство, как контроллерпрямого доступа к памяти (ПДП, англ. DMA — Direct Memory Access). Если обычно весь обмен данными идет через регистры процессора, то ПДП подразумевает прямой перенос данных с устройства в память или обратно. Роль процессора в данном случае только в том, чтобы инициировать операцию ввода/вывода блока данных, послав соответствующие команды контроллеру ПДП. Далее процессор не участвует в выполнении обмена данными. Завершив операцию, контроллер ПДП посылает сигнал прерывания, извещая об этом процессор. Это позволяет повысить производительность системы за счет частичной разгрузки процессора и магистрали.
Способы организации ввода/вывода
