[<<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]