Пожалуй, так:
2 массива: Строк Technology/Resource и флагов занятости.
Контекст, занимающий канал, устанавливает для него флаг занятости, после освобождения - сбрасывает.
Контекст очереди в цикле While ищет 1й свободный и осуществляет для него Dial(Technology/Resource), установив флаг занятости, и ...

