Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОС-ЛР-05-2012.doc
Скачиваний:
6
Добавлен:
15.08.2019
Размер:
1.09 Mб
Скачать

1. Управление процессами

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

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

Сегмент реентерабельных процедур

Сегмент данных

…………….

Сегмент стека

Рис.1. Образ памяти

Сегмент реентерабельных процедур может совместно использоваться несколькими процедурами - в первичной памяти такие разделяемые сегмен­ты представляются единственной копией. Сегментами процедур система управляет централизованно при помощи таблицы процедур (рис. 2).

Рис. 2. Таблицы управления процессом

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

Сегмент данных располагается следом за сегментом процедур и может расти вниз. Он содержит данные, записываемые и считываемые только од­ним процессом. Системные данные, относящиеся к процессу, хранятся в от­дельном сегменте фиксированного размера. Этот системный сегмент закан­чивается вместе с процессом. Он содержит:

  • состояние регистров;

  • дескрипторы (описатели) открытых файлов;

  • данные для расчетов за использование машины;

  • область рабочих данных;

  • стек для системной фазы выполнения процесса.

Сам процесс к этому сегменту адресоваться не может. Когда процесс не активен, система хранит информацию о процессе в таблице процессов. В ней содержится имя процесса, расположение его сегментов и информация для планировщика.

Сегмент стека (рис.1) начинается со старшего адреса в виртуальном адресном пространстве и растет вверх по мере занесения в него информа­ции при вызовах подпрограмм и прерываниях.

2. Синхронизация процессов

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

3. Планирование процессов

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