Особенности операционной системы UNIXРефераты >> Информатика >> Особенности операционной системы UNIX
режима ядра и режима задачи и протекает одинаково для всех пользовательских
программ, выполняющихся в этих режимах. Операционная система хранит внутренние записи о каждом процессе, выполняющемся в системе. На Рисунке 1.5 показано это разделение: ядро делит процессы A, B, C и D, расположенные вдоль
горизонтальной оси, аппаратные средства вводят различия между режимами вы-
полнения, расположенными по вертикали.
Несмотря на то, что система функционирует в одном из двух режимов, ядро
действует от имени пользовательского процесса. Ядро не является какой-то
особой совокупностью процессов, выполняющихся параллельно с пользовательски-
ми, оно само выступает составной частью любого пользовательского процесса.
Сделанный вывод будет скорее относиться к "ядру", распределяющему ресурсы,
или к "ядру", производящему различные операции, и это будет означать, что
процесс, выполняемый в режиме ядра, распределяет ресурсы и производит соот-
ветствующие операции. Например, командный процессор shell считывает вводной
поток с терминала с помощью запроса к операционной системе. Ядро операцион-ной системы, выступая от имени процессора shell, управляет функционированием
терминала и передает вводимые символы процессору shell. Shell переходит в
режим задачи, анализирует поток символов, введенных пользователем и выполняет заданную последовательность действий, которые могут потребовать выполнения и других системных операций.
5.1 Прерывания и особые ситуации
Система UNIX позволяет таким устройства, как внешние устройства ввода-вывода и системные часы, асинхронно прерывать работу центрального процес-
сора. По получении сигнала прерывания ядро операционной системы сохраняет
свой текущий контекст (застывший образ выполняемого процесса), устанавливает
причину прерывания и обрабатывает прерывание. После того, как прерывание бу-
дет обработано ядром, прерванный контекст восстановится и работа продолжится
так, как будто ничего не случилось. Устройствам обычно приписываются приори-
теты в соответствии с очередностью обработки прерываний. В процессе обработки прерываний ядро учитывает их приоритеты и блокирует обслуживание прерывания с низким приоритетом на время обработки прерывания с более высоким приорите-том.
Особые ситуации связаны с возникновением незапланированных событий, выз-
ванных процессом, таких как недопустимая адресация, задание привилегирован-
ных команд, деление на ноль и т.д. Они отличаются от прерываний, которые вы-
зываются событиями, внешними по отношению к процессу. Особые ситуации
возникают прямо "посредине" выполнения команды, и система, обработав особую ситуацию, пытается перезапустить команду; считается, что прерывания возникают
между выполнением двух команд, при этом система после обработки прерывания
продолжает выполнение процесса уже начиная со следующей команды. Для обра-
ботки прерываний и особых ситуаций в системе UNIX используется один и тот же
механизм.
5.2 Уровни прерывания процессора
Ядро иногда обязано предупреждать возникновение прерываний во время кри-
тических действий, могущих в случае прерывания запортить информацию. Напри-
мер, во время обработки списка с указателями возникновение прерывания от
диска для ядра нежелательно, т.к. при обработке прерывания можно запортить
указатели, что можно увидеть на примере в следующей главе. Обычно имеется
ряд привилегированных команд, устанавливающих уровень прерывания процессора
в слове состояния процессора. Установка уровня прерывания на определенное
значение отсекает прерывания этого и более низких уровней, разрешая обработку только прерываний с более высоким приоритетом. На Рисунке 1.6 показана
последовательность уровней прерывания. Если ядро игнорирует прерывания от
диска, в этом случае игнорируются и все остальные прерывания, кроме прерываний от часов и машинных сбоев.
Рисунок 1.6. Стандартные уровни прерываний
5.3 Распределение памяти
Ядро постоянно располагается в оперативной памяти, наряду с выполняющимся в данный момент процессом (или частью его, по меньшей мере). В процессе
компиляции программа-компилятор генерирует последовательность адресов, явля-
ющихся адресами переменных и информационных структур, а также адресами инст-
рукций и функций. Компилятор генерирует адреса для виртуальной машины так,
словно на физической машине не будет выполняться параллельно с транслируемой
ни одна другая программа.
Когда программа запускается на выполнение, ядро выделяет для нее место в
оперативной памяти, при этом совпадение виртуальных адресов, сгенерированных
компилятором, с физическими адресами совсем необязательно. Ядро, взаимодейс-твуя с аппаратными средствами, транслирует виртуальные адреса в физические,
т.е. отображает адреса, сгенерированные компилятором, в физические, машинные
адреса. Такое отображение опирается на возможности аппаратных средств, поэтому компоненты системы UNIX, занимающиеся им, являются машинно-зависимыми.
Например, отдельные вычислительные машины имеют специальное оборудование для подкачки выгруженных страниц памяти.
6. ВЫВОДЫ
В работе были описаны полная структура системы UNIX, взаимоотношения между процессами, выполняющимися в режиме задачи и в режиме ядра, а также аппаратная среда функционирования ядра операционной системы. Процессы выполняются в режиме задачи или в режиме ядра, в котором они пользуются услугами системы благодаря наличию набора обращений к операционной системе. Архитектура системы поддерживает такой стиль программирования, при котором из небольших программ, выполняющих только отдельные функции, но хорошо, составляются более сложные программы, использующие механизм каналов и переназначение ввода-вывода.
Обращения к операционной системе позволяют процессам производить операции, которые иначе не выполняются. В дополнение к обработке подобных обращений ядро операционной системы осуществляет общие учетные операции, управляет планированием процессов, распределением памяти и защитой процессов в оперативной памяти, обслуживает прерывания, управляет файлами и устройствами и обрабатывает особые ситуации, возникающие в системе. В функции ядра системы UNIX намеренно не включены многие функции, являющиеся частью других операционных систем, поскольку набор обращений к системе позволяет процессам выполнять все необходимые операции на пользовательском уровне.
ЛИТЕРАТУРА
1. THE DESIGN OF THE UNIX OPERATING SYSTEM by Maurice J. Bach («Морис Дж. Бах. Архитектура операционной системы Unix»Перевод с английского к.т.н. Крюкова А.В.) Copyright c 1986 Корпорация Bell Telephone Laboratories. Издано корпорацией Prentice-Hall. Отделение Simon & Schuster Энглвуд Клиффс, Нью-Джерси 07632
2. Кристиан К. Операционная система UNIX. - М., Финансы и статистика, 1985, 320 стр.