- •Конспект лекций по курсу: «Операционные системы. Ч.1»
- •Введение
- •Аппаратные средства.
- •Центральный процессор.
- •Разрядность шины памяти.
- •Архитектура процессора.
- •Процессорное ядро.
- •Декодер.
- •Регистры процессора.
- •Многопроцессорные и многоядерные системы.
- •Многоядерные системы.
- •Оперативная память.
- •Адресация оп.
- •Ввод-вывод.
- •Прерывания.
- •Внешние устройства.
- •Классификация ос.
- •Основные понятия ос.
- •Структура ос.
- •Программная структура ос.
- •Программная структура ядра.
- •Интерфейсы системы вызовов.
- •Понятие мобильной ос.
- •Микроядерная архитектура.
- •Основные компоненты ос
- •Процессы и потоки.
- •Потоки.
- •Взаимодействие процессов, потоков.
- •Управление памятью.
- •Организация виртуальной памяти в ос.
- •Организация виртуальной памяти.
- •Сегментно-страничное распределение.
- •Преобразование адресов.
- •Буферы быстрого преобразования адреса.
- •Инвертированные таблицы страниц.
- •Алгоритмы замещения страниц.
- •Распределение виртуального адресного пространства.
- •Очистка страниц.
- •Перезапуск прерванной команды процессора.
- •Хранение страничной памяти на диске.
- •Реализация виртуальной памяти ос multics.
- •Виртуальная память в ос с аппаратной платформой Intel Pentium.
- •Защита памяти.
- •Ввод-вывод.
- •Контроллеры устройств.
- •Обмен данными с реальной оп.
- •Принципы программной реализации управления вводом-выводом.
- •Программная организация ввода-вывода.
- •Уровни реализации ввода-вывода.
- •Обработчики прерываний
- •Драйверы устройств.
- •Управление внешними устройствами.
- •Службы времени.
- •Алфавитно-цифровые терминалы.
- •Программное обеспечение ввода.
- •Программное обеспечение вывода.
- •Датчики.
- •Управление электропотреблением.
- •Файловые системы.
- •Логическая и физическая организация файлов.
- •Файловая система msdos.
- •Организация нескольких логических разделов.
- •Надежность файловой системы.
- •Производительность фс.
- •Файловая система cdr.
- •Формат записи каталога.
- •Сжатие видеоинформации.
- •Стандарт mpeg (Motion Picture Expert Group).
- •Структура реальной оп.
- •Структура виртуальной оп виртуальной машины.
- •Организация вычислительного процесса.
- •Планирование и диспетчирование.
- •Обработка прерываний.
- •Управление памятью.
- •Управление внешней памятью.
- •Планирование и диспетчирование.
- •Управление вводом-выводом.
- •Средства программирования и инструментальные средства.
- •Сетевые возможности операционных систем.
- •Понятие dce.
- •Подходы к обеспечению безопасности информации в ос.
Ввод-вывод.
Как правило, устройства ввода-вывода состоят их двух частей – контроллера и самого устройства. К контроллеру могут подключаться несколько устройств. Для этого каждому присваивается свой адрес. Контроллер выполняет команды ввода-вывода, которые могут быть реализованы несколькими способами – непосредственно командой ассемблера или прерыванием. Контроллер управляет внешними устройствами с помощью линий или сигналами интерфейса. По одной линии может быть сигнал канала движения ленты или окончание, на другой – включение головки на запись и запись.
Контроллеры устройств для различных устройств различны.
Драйвер – программная часть ОС, которая взаимодействует с контроллером.
Драйвера устройств работают в режиме ядра, поэтому для каждой ОС для одного и того же устройства требуются различные драйвера.
Передача параметров в контроллер при выполнении операции ввода-вывода осуществляется через регистр.
Для некоторых устройств регистры контроллера могут отображаться ячейками в ОП, поэтому их можно заполнять командой пересылки тоже. В другом контроллере регистры находятся внутри, поэтому перед операцией ввода-вывода нужно их заполнить параметрами.
В некоторых случаях регистры располагаются в устройствах над портами и каждый регистр имеет свой адрес порта. Запись/чтение в регистр порта по командам in/out.
Как правило, ввод-вывод может осуществляться тремя способами:
1. Пользовательская программа выдает системный запрос на ввод-вывод. Ядро ОС анализирует запрос вызова процедуры. Другое проверяется состояние устройства и ждёт его готовности. Если готово, помещает данные в регистр устройства. Недостаток – ожидание готовности устройства.
2. Драйвер запускает устройство и просит вызвать его прерывание по окончании ввода-вывода. В это время центральным процессором выставляется прерывание. ОС обрабатывает его и передает управление другой пользовательской программе. Как только операции ввода-вывода закончились, происходит прерывание ввода-вывода и управление передается прерванной программе для обработки окончания ввода-вывода.
3. Используется специальный контроллер прямого доступа к памяти DMA, с помощью которого осуществляется передача данных между ОП и устройствами без участия процессора (драйверы). И процессор, вызывая микросхему DMA, сообщает ей сколько байт нужно передать, адрес устройства и данных, направление передачи данных и процесс записи на внешние устройства без помощи процессора. По окончании ввода-вывода генерируется прерывание.
Каждый процессор ввода-вывода может подключать к себе 1000 устройств, при этом они работают параллельно.
Процессор ввода-вывода использует команды ввода-вывода на микропрограммном уровне.
Прерывания.
Прерывание – сигнал (возможно электрический), который может прерывать выполнение программы, предусмотренное исполнительным модулем, в случае, если флаги и маски команд установлены так, что прерывание разрешено.
Прерывание, как правило, передается обработчику соответствующего типа прерываний.
Обработчик собирает информацию о данном прерывании и определяет дальнейшие действия. Например, если прерывание произошло в случае деления на ноль, – принудительное завершение пользовательской программы с выработкой соответствующего диагностического сообщения.
В некоторых ОС возможно обрабатывать некоторые аварийные ситуации, вызванные прерыванием, в пользовательской программе. В многопользовательских ОС обработка прерываний планируется специальной компонентой при помощи формирования специальных очередей, состоящих из блоков прерываний, и может осуществляться на основе приоритетов.
В зависимости от типа прерывания и результатов обработки, возврат управления может осуществляться как в операционную систему, так и в пользовательскую программу.
Как правило, общепринятыми классами прерываний являются следующие:
1. Программные прерывание – вырабатывается при выполнении команд в случаях: неправильная команда, неправильный адрес, превышение разрядной сетки и т.п. для каждой команды ЦП в спецификации системы команд указывается условие или код завершения команды и выработки прерывания.
2. Прерывания службы времени – в каждой вычислительной системе количество служб времени различно (часы, интервальный таймер, компаратор). Что конкретно произошло по прерыванию от службы времени, определяет соответствующий обработчик.
3. Прерывания ввода-вывода – как правило, инициируется контроллером внешнего устройства или аварийной ситуацией на внешнем устройстве.
4. Прерывания от схем контроля – инициируется в случае аппаратных сбоев ЦП, оперативной памяти, КЭШа и т.д. Каждое устройство в вычислительной установке имеет собственные схемы контроля. Схемы контроля строятся различными способами. Самый простой – контроль по модулю два (значения в регистре складываются по модулю два и складываются с контрольным разрядом, в результате должен получиться 0; если не 0, в каком-то бите ошибка). Более сложные схемы включают использование кодов исправления и обнаружения ошибок (код Хемминга обнаруживает двойные ошибки и исправляет единичные; циклические коды). Как правило, прерывания от схем контроля имеют самый высокий приоритет. В ЭВМ от IBM такие прерывания вырабатываются после неоднократного повторения сбойной ситуации.
Передача данных между устройствами ЭВМ.
Передача между устройствами(адресация устройств) может быть реализована двумя различными способами: дешифровкой полей микрокоманд и открытием определенных вентилей для передачи информации тому или иному адресату; выставлением адреса устройства на некоторую адресную магистраль с последующей передачей данных адресату. В первом случае выше быстродействие, но выше и количество электрических соединений. Во втором случае быстродействие ниже, но количество связей меньше.
В ранних моделях компьютеров использовалась одна шина, к которой подключались различные устройства, в настоящее время используется несколько шин. Основные их них ISA(Industry Standard Architecture – для совместимости со старыми устройствами), PCI (Peripheral Connect [Component] Interconnect - для подключения высокоскоростных устройств), IDE(Integrated Drive Electronics), SCSI (Small Computer Systems Interface) и др.
