Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
operatsionnye_sistemy (1).docx
Скачиваний:
38
Добавлен:
02.04.2015
Размер:
229.45 Кб
Скачать

Создание процессов

В универсальных ОС способ создания и прерывания процессов происходит по мере их необходимости. Есть 4 основных события, приводящие к созданию процессов:

1) Инициализация системы.

2) Выполнение изданного работающим процессом системного вызова на создание нового процесса.

3) Запрос пользователя на создание процесса.

4) Инициирование пакетного задания. Обычно при загрузке ОС создаются несколько процессов.

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

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

Действие – это работающий процесс, в этот конкретный момент использующий процессор. Готовый к работе – процесс временно приостановлен, чтобы позволить выполниться другому процессу. Блокировка или заблокирование процесса – процесс не может быть запущен прежде, чем произойдет некоторое внешнее событие.

1 переход – процесс блокируется, ожидая входных данных.

2 переход – планировщик выбирает другой процесс.

3 переход – планировщик выбирает этот процесс.

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

Переход 1 происходит тогда, когда процессор обнаруживает, что продолжение работы невозможно. В некоторых ОС процесс должен выполнить системный запрос, напр., block или pause, чтобы оказаться в заблокированном состоянии. В других системах (Unix) процесс автоматически блокируется, если он не в состоянии считать из специального файла или канала данные. Переход 2 и 3 вызываются частью ОС, называемой планировщик процессов. Переход 2 происходит, если планировщик решил предоставить процессор другому процессу. Переход 3 происходит, когда все остальные процессы уже исчерпали свое процессорное время и процессор снова передается первому процессу. Переход 4 происходит с появление внешнего события, ожидавшего процессор, напр., прибытие входных данных. Если в этот момент не запущен никакой другой процесс, то срабатывает переход 3 и процесс запускается. В противном случае процессу придется некоторое время находиться в состоянии готовности, пока не освободится процессор.

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

Рано или поздно процесс завершает свое существование. Чаще всего это происходит благодаря одному из следующих событий:

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

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

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

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

1) Процесс выполняет системный запрос, чтобы сообщить ОС о том, что он выполнил свою работу. 2) Второй причиной может стать неустранимая ошибка. Напр., пользователь вводит команду компиляции файла, которая не существует. В этом случае компилятор просто завершает свою работу. Интерактивные процессы, рассчитанные на работу с экраном обычно не завершают работу при получении неправильных параметров, а просят пользователя ввести правильные параметры, происходит диалог.

3) Ошибка, вызванная самим процессом. Чаще всего она связана с ошибкой в программе. Напр., выполнение недопустимой команды, обращение к несуществующей области памяти и др. В некоторых ОС, напр. Linux, процесс может информировать ОС о том, что он сам обрабатывает некоторые ошибки. В этом случае процессу посылается сигнал (процесс прерывается при появлении ошибки).

4) Выполнение другим процессом системного запроса на уничтожение определенного процесса (kill – Unix, Terminate Process – Windows 32). В обоих случаях процесс, который выбивает другой процесс, должен обладать соответствующими полномочиями. В некоторых ОС при завершении процесса преднамеренно или нет – все процессы, созданные этим процессом, завершаются.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]