Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
155572.rtf
Скачиваний:
35
Добавлен:
18.05.2015
Размер:
108.32 Кб
Скачать

1. Процессы

Понятие процесс(process) введено разработчиками ОС с 60-х годов, как программа во время выполнения. Заметим, что программа - это всего лишь файл в формате загрузки, сохраняемый на диске, а процесс расположен в памяти на этапе выполнения.

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

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

  • Процесс находится в состоянии выполнения, если в данный момент ему выделен центральный процессор (ЦП).

  • Процесс находится в состоянии готовности, если он мог бы сразу использовать центральный процессор, предоставленный в его распоряжение.

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

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

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

Запуск, или выбор процесса для выполнения - это предоставление ЦП первому процессу из списка готовых процессов. Запуск осуществляется с помощью программы - диспетчер. Обозначим такую смену состояний следующим образом: операционная система linux

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

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

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

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

Отметим, что единственная смена состояния, инициируемая самим процессом - это блокирование, остальные инициируются объектами, внешними по отношению к данному процессу.

Операции над процессами

Системы, управляющие процессами, должны иметь возможность выполнять над ними ряд операций.

Создание процесса. операционная система linux

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

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

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

Каждому созданному процессу UNIX назначает уникальный идентификатор процесса - PID , который идентифицирует процесс для ОС. Кроме того, каждый процесс имеет еще PPID (parent process), который представляет собой не что иное как PID его родителя.

Используя в UNIX команду ps можно видеть идентификаторы текущих процессов в системе.

Уничтожение процесса.

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

Приостановка процесса.

Приостановленный процесс может продолжить свое выполнение тогда, когда его активизирует какой-либо другой процесс.

Возобновление процесса.

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

Изменение приоритета процесса.

Эта операция означает модификацию значения приоритета процесса в РСВ.

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

С учетом введенных понятий приостановки и возобновления процесса картина смены состояний процесса, приведенная на рис.1 может быть несколько дополнена.

Например, диспетчер UNIX - это программа, которая позволяет процессам конкурировать между собой за время ЦП. Приостановка и возобновление процессов происходит много раз в секунду, поэтому создается эффект непрерывного протекания процесса. Схема разделения времени ЦП может быть представлена следующим образом:

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