Нужны примеры реализации Одноканальной Системы Массового Обслуживания (СМО) с ожиданием
с использованием типа данных - очередь.
Сам алгоритм не нужен, именно примеры (можно на паскале

Может кто-нибудь встречал?
unit QUEUE;
INTERFACE
type
TElem = Integer;
TList = ^Telement;
TElement = record
INFO:TElem;
NEXT : TList
end;
TQueue = record
head:TList;
tail:TList;
end;
procedure QueueInit (VAR Q:TQueue);
Function QueueEmpty(Q:TQueue):boolean;
Procedure OueuePush(var q:TQueue; e:TElem);
Function QueuePop(var q:TQueue):TElem;
IMPLEMENTATION
procedure QueueInit (VAR Q:TQueue);
begin
q.head:=nil
end;
Function QueueEmpty(Q:TQueue):boolean;
begin
QueueEmpty:=(Q.HEAD=nil)
end;
Procedure OueuePush(var q:TQueue; e:TElem);
var z:Tlist;
begin
new(z);
z^.info:=E;
z^.next:=nil;
If QueueEmpty(q) then q.head:=z else q.tail^.next:=z;
q.tail:=z
end;
Function QueuePop(var q:TQueue):TElem;
var
z:TList;
begin
z:=q.head;
q.head:=z^.next;
QueuePop:=Z^.info;
dispose(z)
end;
end.