Compartilhar via


Esquemas de alocação

O diagrama a seguir representa um único alocador atribuído para uso por três filtros. Nenhuma alocação é necessária nos filtros de transformação ou coletor porque o sistema não atribuiu um identificador de alocador a esses filtros.

diagrama ilustrando uma configuração de alocador simples.

O filtro de origem aloca um quadro, preenche-o com dados e os envia para o próximo filtro. O filtro de transformação executa uma transformação de dados in-loco e envia o quadro para o próximo filtro. Quando o filtro de coletor conclui a operação de E/S, o filtro de origem libera ou reutiliza o quadro. O controle de fluxo é mantido neste grafo de filtro pelo número de quadros pendentes totais que podem ser alocados do alocador do coletor e pela taxa de conclusão da operação de E/S.

O diagrama a seguir representa uma configuração de alocador na qual um quadro de origem é roteado para vários coletores de destino.

diagrama ilustrando uma configuração de alocador com vários coletores.

No diagrama, o gravador de arquivos pode representar wave out para um arquivo e o dispositivo um som cartão para o qual o áudio está sendo enviado.

Esse grafo de filtro contém dois alocadores: o alocador da transformação e o alocador do dispositivo. O filtro de origem aloca um quadro do alocador de transformação, preenche-o com dados e envia-o para o filtro de transformação e, em seguida, para o gravador de arquivos. Ao receber um quadro, o filtro de transformação aloca um quadro do alocador do dispositivo, executa uma transformação dos dados no novo quadro e envia esse quadro para o dispositivo.

O controle de fluxo é mantido neste grafo de filtro pelo número de quadros pendentes totais que podem ser alocados dos alocadores e pela taxa de conclusão das operações de E/S. Observe que deve haver um alocador separado para cada lista separada de segmentos de origem/coletor criado por meio da conexão de pinos. Se alocadores separados não estiverem presentes, um determinado segmento poderá consumir todos os quadros disponíveis, deixando nenhum para o próximo segmento, o que pode exigir um ou mais quadros para processar os dados criados pelo segmento anterior.