Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Unix лекции / lection5.ppt
Скачиваний:
13
Добавлен:
20.04.2015
Размер:
217.6 Кб
Скачать

Архитектура ОС UNIX

Структура процессов. Управление процессами.

Процесс

Процессом называется последовательность операций при выполнении программы, которые представляют собой наборы байтов, интерпретируемые центральным процессором как машинные инструкции (т.н. "текст"), данные и стековые структуры.

Выполнение процесса заключается в точном следовании набору инструкций, который является замкнутым и не передает управление набору инструкций другого процесса; он считывает и записывает информацию в раздел данных и в стек, но ему недоступны данные и стеки других процессов.

Одни процессы взаимодействуют с другими процессами и с остальным миром посредством обращений к ОС.

Состояния процесса

1.Процесс выполняется в режиме задачи.

2.Процесс выполняется в режиме ядра.

3.Процесс не выполняется, но готов к запуску под управлением ядра.

4.Процесс приостановлен и находится в оперативной памяти.

Состояния процесса

5.Процесс готов к запуску, но программа подкачки (нулевой процесс) должна еще загрузить процесс в оперативную память, прежде чем он будет запущен под управлением ядра.

6.Процесс приостановлен и программа подкачки выгрузила его во внешнюю память.

7.Процесс возвращен из режима ядра в режим задачи.

8.Процесс вновь создан и находится в переходном состоянии.

9.Процесс вызывает системную функцию exit и прекращает существование.

Диаграмма

переходов

Процесс может:

1.Создать другой процесс

2.Вызвать системную функцию

3.Завершиться с помощью exit Все остальное – часть модели, закодированной в ядре!

Структуры данных в ядре для описания процесса

Две принадлежащих ядру структуры данных описывают процесс:

запись в таблице процессов. Таблица процессов содержит поля, которые должны быть всегда доступны ядру.

пространство процесса. Содержит

поля, необходимость в которых возникает только у выполняющегося процесса.

Информационные структуры ядра для поддержания процессов

Записи в таблице процессов

1.Поле состояния.

2.Поля, используемые ядром при размещении процесса и его пространства в основной или внешней памяти.

3.Несколько пользовательских идентификаторов (UID), устанавливающих различные привилегии.

4.Идентификаторы процесса (PID), указывающие взаимосвязь между процессами.

5.Дескриптор события (когда приостановлен).

6.Параметры планирования (режим ядра-задачи).

7.Поле сигналов (которые еще не обработаны процессом, но уже получены).

8.Различные таймеры

Записи в пространстве процесса

Указатель на таблицу процессов.

Пользовательские идентификаторы.

Поля таймеров.

Вектор, описывающий реакцию процесса на сигналы.

Поле операторского терминала, идентифицирующее "регистрационный терминал", который связан с процессом.

Поле ошибок.

Поле возвращенного значения (результат выполненной системной функции).

Параметры ввода-вывода.

Имена текущего каталога и текущего корня.

Таблица пользовательских дескрипторов файла и др.

Формат памяти системы

Предположим, что физическая память машины имеет адреса, начиная с 0 и кончая адресом, равным объему памяти в байтах.

Поэтому компилятор генерирует адреса для виртуального адресного пространства заданного диапазона, а устройство управления памятью, называемое диспетчером памяти, транслирует виртуальные адреса, сгенерированные компилятором, в адреса ячеек, расположенных в физической памяти!

адреса в физической памяти, два процесса не смогут параллельно выполняться, если их адреса перекрываются !!!

Соседние файлы в папке Unix лекции