Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по операционным системам.doc
Скачиваний:
215
Добавлен:
26.05.2014
Размер:
1.24 Mб
Скачать

Концепции процесса

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

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

порождение - пользователь выдал запрос на обслуживание;

готовность - задание подготовлено соответствующими модулями ОС к выполнению, но еще не выделен ресурс "процессорное время";

выполнение - процессу выделен центральный процессор (ЦП) и задание этого процесса выполняется;

ожидание (блокирован) - процесс вступил в эту фазу из фазы "вы полнение" и ожидает наступления некоторого события, например, окон чания считывания массива данных из дисковой памяти;

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

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

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

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

Рис.1. Граф переходов процесса из состояния в состояние

Блок управления процессом

Представителем процесса в ОС является блок управления процессом (БУП). Это структура данных, содержащая определенную авжную информацию о процессе, в том числе:

  • текущее состояние процесса;

  • уникальный идентификатор процесса;

  • приоритет процесса;

  • указатели памяти процесса;

  • указатели выделенных процессу ресурсов;

  • область сохранения регистров.

Когда ОС переключает ЦП с одного процесса на другой, она использует области сохранения регистров, предусмотренные в БУП, чтобы запомнить информацию,необходимую для рестарта (повторного запуска) каждого процесса, когда этот процесс в следующий раз получит в свое распоряжение ЦП.

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

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

  • создание (образование) процесса;

  • уничтожение процесса;

  • возобновление процесса;

  • изменение приоритета процесса;

  • блокирование процесса;

  • пробуждение процесса;

  • запуск (выбор) процесса.

  • Создание процесса состоит из многих операций, включая:

  • присвоение имени процессу;

  • определение начального приоритета процесса;

  • формирование БУП;

  • выделение процессу начальных ресурсов.

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