Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
мои шпоры ОСиСП(1).doc
Скачиваний:
32
Добавлен:
26.09.2019
Размер:
1.63 Mб
Скачать

2. Взаимодействие процессов. Задача взаимного исключения. Алгоритм Деккера (5) – 147

int flag[2], turn; begin integer С1,С2,очередь;

void P0() С1 := 1; С2 := 1; очередь := 1;

{ parbegin

while (1) процесс 1: begin А1: С1 := 0;

{ L1: if (С2 = 0) then begin

flag[0]=1; if (очередь = 1) then goto L1;

while (flag[1]) C1 := 1;

{ B1: if (очередь = 2) then goto B1;

if (turn==1) goto А1;

{ end;

flag[0]=0; критический интервал 1;

while (turn==1); очередь := 2;

flag[0]=1; С1 := 1;

} остаток цикла 1;

} goto А1;

критический интервал 1; end;

turn=1; процесс 2: begin А2: С2 := 0;

flag[0]=0; L2: if (С1 = 0) then begin

. if (очередь = 2) then goto L2;

} C2 := 1;

} B2: if (очередь = 1) then goto B2;

void P1() goto А2;

{ end;

while (1) критический интервал 2;

{ очередь := 1;

flag[1]=1; С2 := 1;

while (flag[0]); остаток цикла 2;

{ goto А2;

if (turn==0) end;

{ parend;

flag[1]=0; end;

while (turn==0);

flag[1]=1;

}

}

критический интервал 2;

turn=0;

flag[1]=0;

.

}

}

void main()

{

flag[0]=0;

flag[1]=0;

turn=1;

parbegin(P0,P1);}

3. Понятие процесса, модели процессов (5) – 132

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

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

Модель процесса с двумя составляющими

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

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

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

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

Причинами создания является:

  1. Новое пакетное задание. Готовясь принять на обработку новое задание, ОС считывает очередные команды управления заданием.

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

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

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

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

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

Причин завершения достаточно много:

  1. обычное завершение (процесс вызывает exit);

  2. превышение лимита времени, отведенного программе;

  3. недостаточный объем памяти;

  4. выход за пределы отведенной области памяти;

  5. ошибка защиты;

  6. арифметическая ошибка (деление на ноль, переполнение);

  7. изменение ожидания;

  8. ошибка ввода/вывода;

  9. неверная команда (счетчик команд переключается на счетчик данных);

  10. команда с недопустимыми привилегиями;

  11. непрерывное использование данных (часть данных или не инициализирована, или другого типа);

  12. вмешательство оператора или ОС;

  13. завершение родительского процесса;

  14. запрос со стороны родительского процесса.

Модель процесса с пятью состояниями

Для процесса при выполнении на центральном процессоре можно выделить следующие характерные отдельные состояния.

К огда процесс появляется в системе, ОС определяет новый процесс в два этапа:

  1. Присвоение процессу идентификатора и формирование всех таблиц, необходимых процессу. Этот промежуток времени соответствует состоянию «новый»;

  2. Р аспределение памяти под процесс, подготовка его к выполнению, т.е. перевод в состояние, «готовый к выполнению».

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

П ереход из «готовый» в «выполняющийся». Происходит, когда ОС выбирает новый процесс для запуска. Выбирается один из процессов, находящихся в состоянии «готовый», в соответствии с какой-то дисциплиной обслуживания.

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

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

Переход «заблокированный» - «готовый». Осуществляется, когда происходит ожидаемое событие.

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

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