Особенности операционной системы 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 стр.


Страница: