[<<Previous Entry] [^^Up^^] [Next Entry>>] [Menu] [About The Guide]
 Кольцевая очередь в разделяемой памяти

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

    б.    добавление записи в хвост очереди (псевдокод)

          tail <- tail +1
          if tail = QUE_SIZE, tail <- 0
          if tail = head, queue full condition
          else queue[tail] <- item

    в.    получение записи из начала очереди (псевдокод)

          if tail = head, queue empty condition
          head <- head +1
          if head = QUE_SIZE, head <- 0
          else item <- queue[head]