з

К предыдущей странице

л

К предыдущей главе

о

К следующей главе

и

К следующей странице


4.4.3. Алгоритм "Производитель-Потребитель" с буфером из фиксированного числа записей

Определен ресурс - буфер из фиксированного числа записей (предел МАХ).

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

Алгоритм исполнения процессов "Производитель-Потребитель" с буфером из фиксированного числа записей

Начальные значения параметров:

N := 0;

"НЕПОЛНО" := 1;

"НЕПУСТО" := 0;

взаимоисключить := 1;

MAX

MAKERUSER
  • DO(TRUE)
  • DO(TRUE)
           
  • Подготовить "Запись"
  • Р(НЕПОЛНО)
  • Р(взаимоисключить)
  • Записать в буфер
  • N:=N+1
  • IF(N < MAX)
           
  • Р(НЕПУСТО)
  • Р(взаимоисключить)
  • Читать из буфера
  • N:=N-1
  • IF(N > 0)
             
  • V(НЕПОЛНО)
             
  • V(НЕПУСТО)
   
  • FI
  • IF(N=1)
   
  • FI
  • IF(N=MAX-1)
             
  • V(НЕПУСТО)
             
  • V(НЕПОЛНО)
   
  • FI
  • V(взаимоисключить)
   
  • FI
  • V(взаимоисключить)
  • использовать "Запись"
  • OD
  • OD

з

К предыдущей странице

л

К предыдущей главе

о

К следующей главе

и

К следующей странице