Структура процессов/потоков
Программное обеспечение RTP должно обеспечивать одновременное выполнение нескольких задач. Например, при поступлении каждого пакета данных RTP проверяется его порядковый номер, извлекается содержимое и помещается во флуктуационный буфер. Кроме того, программное обеспечение должно обрабатывать входящие сообщения RTCP и наряду с этим периодически формировать и отправлять отчеты получателя RTCP. Хотя на рис. 28.6 показана статическая многоуровневая структура программного обеспечения передачи данных в реальном времени, для одновременного осуществления всех этих действий необходимо применять несколько параллельных потоков выполнения. На рис. 28.7 показана одна из возможных структур потоков, которая может применяться для этой цели. Здесь средства передачи данных с одного уровня на другой отделены от средств обработки событий, связанных с управлением и формированием отчетов. Для друзей летняя рыбалка у озера в Крыму spining.kiev.ua
Как показано на этом рисунке, в программном обеспечении передачи данных в реальном времени функционируют четыре потока, кроме всех тех потоков, которые связаны с эксплуатацией приложения. Поток RTP обеспечивает передачу данных между двумя уровнями. Он извлекает данные из входящих пакетов и управляет флуктуационным буфером. Отдельный поток RTCP обрабатывает входящие пакеты RTCP. Поток TIMER периодически вырабатывает исходящие отчеты получателя RTCP. И наконец, поток EVENT обрабатывает другие асинхронные события, которые не относятся к обычному потоку передачи данных.
В нашей модели организации взаимодействия между потоками могут происходить другие акты координации работы, если потребуется синхронизация потоков во времени. Хотя каждое из приложений может иметь копию "стека" реального времени, потоки должны взаимодействовать между собой для обеспечения синхронизированного воспроизведения. Как показано на рис. 28.8, для обеспечения синхронизации два приложения взаимодействуют между собой, передавая сообщения. Такая координация применяется при возникновении необходимости в синхронизации двух потоков данных.

