ВУЗ:
Составители:
18
Передать сигнал (Е);
begin
if очередь (Е) пуста then Е:=1
else
Перевести первый процесс в очереди к (Е) в состояние “Готов” из состояния “Блокирован” и
исключить его из очереди;
end
Ждать сигнал (Е);
begin
if E=1 then E:=0
else
Изменить состояние процесса, выполняющего команду “ждать сигнал” на “блокирован”, и
включить этот процесс в очередь (Е);
End
Рассмотрим решение задач синхронизации, которые были решены ранее.
Var E: сигнал
begin
cobegin
Процесс 1 : begin . . . Запустить процесс 2 ; . . . Ждать сигнал (Е); . . . end;
Процесс 2 : begin . . . Передать сигнал (Е); end;
coend;
end;
2) Var
E1, E2 : сигнал;
begin
cobegin
Процесс 1 : begin
. . . Передать сигнал (Е1); end;
Процесс 2 : begin
. . . Передать сигнал (Е2); end;
Процесс 3 : begin . . . Ждать сигнал (Е1); Ждать сигнал (Е2); . . . end;
coend;
end;
Между аппаратом семафоров и сигналов имеется существенное различие, а именно:
семафор предназначен для использования внутри одного процесса;
сигналы предназначены для использования в разных процессах;
с помощью сигналов решить задачу взаимного исключения нельзя.
Список рекомендуемой литературы
1. Дейтел Г. Введение в операционные системы. Т 1.- М.: Мир, 1987.
2. Элементы параллельного программирования/ Э. Вальковский и др.-М.:Мир, 1988.
3. Майерс Г. Архитектура современных ЭВМ. В 2 кн.,- М.: Мир, 1985.-364+312 с.
4. Хоар Ч. Взаимодействующие последовательные процессы. - М.: Мир, 1988. - 264 с.
5. Автономное управление асинхронными процессами в ЭВМ и дискретных систе-
мах /Под ред. В.И. Варшавского. - М.: Наука, 1986. - 400 с.
Передать сигнал (Е); begin if очередь (Е) пуста then Е:=1 else Перевести первый процесс в очереди к (Е) в состояние “Готов” из состояния “Блокирован” и исключить его из очереди; end Ждать сигнал (Е); begin if E=1 then E:=0 else Изменить состояние процесса, выполняющего команду “ждать сигнал” на “блокирован”, и включить этот процесс в очередь (Е); End Рассмотрим решение задач синхронизации, которые были решены ранее. Var E: сигнал begin cobegin Процесс 1 : begin . . . Запустить процесс 2 ; . . . Ждать сигнал (Е); . . . end; Процесс 2 : begin . . . Передать сигнал (Е); end; coend; end; 2) Var E1, E2 : сигнал; begin cobegin Процесс 1 : begin . . . Передать сигнал (Е1); end; Процесс 2 : begin . . . Передать сигнал (Е2); end; Процесс 3 : begin . . . Ждать сигнал (Е1); Ждать сигнал (Е2); . . . end; coend; end; Между аппаратом семафоров и сигналов имеется существенное различие, а именно: семафор предназначен для использования внутри одного процесса; сигналы предназначены для использования в разных процессах; с помощью сигналов решить задачу взаимного исключения нельзя. Список рекомендуемой литературы 1. Дейтел Г. Введение в операционные системы. Т 1.- М.: Мир, 1987. 2. Элементы параллельного программирования/ Э. Вальковский и др.-М.:Мир, 1988. 3. Майерс Г. Архитектура современных ЭВМ. В 2 кн.,- М.: Мир, 1985.-364+312 с. 4. Хоар Ч. Взаимодействующие последовательные процессы. - М.: Мир, 1988. - 264 с. 5. Автономное управление асинхронными процессами в ЭВМ и дискретных систе- мах /Под ред. В.И. Варшавского. - М.: Наука, 1986. - 400 с. 18