Есть следующая задача:
Имеется диспечер (Д1), который с определенными вероятностями

соответственно на каждом шагу (такте) выбирает один из 3 буферов, чтобы поместить туда заявку. Ёмкость каждого буфера равна

. Так продолжается

шагов. После чего в работу включается второй диспечер (Д2), который с определенными вероятностями

безвозвратно забирает заявки из буферов. Требуется найти вероятность блокировки системы на

- ом шагу, где

. Блокировкой считается такое состояние системы, когда первый диспечер пытается положить заявку в уже заполненный буфер, а второй диспечер одновременно с этим пытается извлечь заявку из пустого буфера.
Например, для первого буфера можно записать:

Аналогично для остальных буферов.
Но это выглядит как какой-то сильно идеализированный случай. Как понимаю, для шагов выше

нужно, чтобы для заполняемого до предела буфера извлечение заявок завершилось заранее. Не знаю, как еще объяснить что имею в виду, но попробую так: пусть на одном из следующих шагов за

шагом в одном из буферов ровно

заявко. Тогда, если Д1 пытается поместить в этот буфер заявку, то он получит блокировку, а число заявок в буфере останется n. Тем временем, Д2 может на том же шагу забрать заявку из этого буфера, и заявок станет

. Таким образом, может случится так,что в заполняемом буфере на

шаге в буфере

заявка. Тогда на

не получим блокировки в указанном смысле. В общем, порядок событий имеет значение. И не понятно, как его учесть. Пожалуйста, посоветуйте что-нибудь.