Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
госы / Lektsii_OS_new_new.doc
Скачиваний:
66
Добавлен:
10.04.2015
Размер:
3.62 Mб
Скачать

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

Процесс завершается в результате появления следующих событий:

1)обычный выход (преднамеренно);

2) выход по ошибке (преднамеренно);

3) выход по неисправимой ошибке (непреднамеренно);

4)уничтожение другим процессом (непреднамеренно).

В основном процессы завершаются по мере выполнения своей работы. После окончания программы выполняется системный запрос, чтобы сообщить операционной системе об окончании работы. В UNIXэтот сис­темный запрос —exit, а вWindows—ExitProcess.

Второй причиной завершения процесса может стать неустранимая ошибка. Например, если пользователь набрал на клавиатуре команду неправильную команду.

Третьей причиной завершения процесса является ошибка, вызванная самим процессом, чаще всего связанная с ошибкой в программе.

Четвертой причиной завершения процесса может служить выполнение другим процессом системного запроса на уничтожение процесса. В UNIXтакой системный запрос —kill, а соответствующая функция Win32 —TernminateProcess.

По завершении работы процесса (добровольно либо принудительно со стороны операционной системы), ОС свобождает память процесса и другие занимаемые им ресурсы, удаляет ин­формацию о нем из таблицы процессов, предоставляя память процесса и ресурсы для других процессов.

Потоки

В обычных операционных системах каждому процессу соответствует адресное пространство и одиночный управляющий поток. Фактически это и определяет процесс. Тем не менее часто встречаются ситуации, в которых предпочтительно иметь несколько квазипараллельных потоков в одном адресном про­странстве, как если бы они были различными процессами (однако разделяющим одно адресное пространство).

Модель потока

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

Процесс может находиться в одном из трех состояний:

  • Очередь готовых процессов

  • Выполнение процесса

  • Ожидание

Состояние процесса можно представить в виде:

Выполнение – это активное состояние процесса, в это время происходит счет процесса.

Блокирование – это пассивное состояние процесса. Процесс ожидает завершения некоторого события, например, окончания операции ввода-вывода.

Готовность – это пассивное состояние процесса. Процессу выделяются ресурсы, разделы памяти, дисковое пространство и др. Процесс ожидает освобождения процессора.

Переходы процесса на выполнениеи вытеснение процессавызываются частью операционной системы, называемойпла­нировщиком. Вытеснение происходит, если планировщик предо­ставил процессор следующему процессу. Переход на выполнение происходит, когда все осталь­ные процессы уже исчерпали свое процессорное время, и процессор снова воз­вращается к первому процессу.

Переход из сосотояния блокировки в состояние готовностипроисходит с появлением внешнего события, ожидавшегося про­цессом (например, подкачка данных из ВЗУ). Если в этот момент не запущен какой-либо другой процесс, то освободившийся из состояния блокировки процесс запускается. В противном случае процессу придется некоторое время находиться в состоянии готовности, пока не освободится процессор.

В однопроцессорных системах в состоянии готовности или ожидания может одновременно находиться несколько процессов, а в состоянии выполнения – один. Эти процессы образуют очередипутем объединения в списки блоки управления про­цессами (дескрипторов процессов). Каждый дескриптор содержит дополнительную ссылку на соседа по очереди. Такая организация позволяет легко переупорядочивать, включать и исключать процессы, переводить их из одного состояния в другое. Нарисунке ___ показана очередь процессов, установленных в порядкеA,B,D,E,C.

Рисунок - Очередь процессов

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