ТОП просматриваемых книг сайта:
Операционные системы. А. Ю. Кручинин
Читать онлайн.Название Операционные системы
Год выпуска 2009
isbn
Автор произведения А. Ю. Кручинин
Жанр Учебная литература
Издательство "Центральный коллектор библиотек "БИБКОМ"
Поскольку процессор переключается между программами, скорость, с которой процессор производит свои вычисления, будет непостоянной и, возможно, даже будет отличной при каждом новом запуске программы.
Существует четыре основных события, приводящие к созданию процессов:
• инициализация системы;
• выполнение изданного работающим процессом системного запроса на создание процесса;
• запрос пользователя на создание процесса;
• инициирование пакетного задания.
Программист для создания процесса в UNIX должен вызвать комбинацию из двух функций fork и execve, а в Windows – CreateProcess [12].
Процесс может завершиться благодаря одному из следующих действий:
• обычный выход (преднамеренно);
• выход по ошибке (преднамеренно);
• выход по неисправимой ошибке (непреднамеренно);
• уничтожение другим процессом (непреднамеренно).
Для завершения процесса программист в UNIX должен вызвать системный запрос kill, соответствующая функция в Win32 API – TerminateProcess.
Основным отличием структуры процессов в Windows и UNIX является связь между родительским и дочерним процессами. Так в UNIX существует иерархия процессов, а в Windows все процессы равноправны. Единственное, в чем проявляется что-то вроде иерархии процессов в Windows – создание процесса, в котором родительский процесс получает специальный маркер (так называемый дескриптор), позволяющий контролировать дочерний процесс. Но маркер можно передать другому процессу, нарушая иерархию.
Рисунок 10 – 4 программы в многозадачном режиме (а); модель 4 независимых последовательных процессов (б); в каждый момент времени активна только одна программа (в)
Процесс может находиться в 3 возможных состояниях (Рисунок 11):
• работающий (в конкретный момент времени использующий процессор);
• готовый к работе (процесс временно приостановлен, чтобы позволить выполняться другому процессу);
• заблокированный (процесс не может быть запущен прежде, чем произойдёт некое внешнее событие).
Рисунок 11 – Процесс может находиться в рабочем, готовом и заблокированном состоянии
Переходы между состояниями:
1) процесс блокируется, ожидая входных данных;
2) планировщик выбирает другой процесс;
3) планировщик выбирает этот процесс;
4) доступны входные данные.
Переход 1 происходит, когда процесс обнаруживает, что продолжение работы невозможно. Переходы 2 и 3 вызываются частью операционной системы, называемой планировщиком процессов, так что сами процессы даже не знают о существовании