next up previous
Next: Requisitos da solução Up: ep4 Previous: Preliminares

O problema

Neste exercício implementará uma versão do ServContas que usa o modelo thread pool. O novo programa, denominado ServContasTP, alocará uma thread do pool para tratar cada sessão com um cliente. Espera-se que o ServContasTP reaproveite praticamente todo o código do ServContas.

As worker threads do pool devem ser criadas na inicialização do servidor. Além destas, seu programa deve ter uma listener thread, que fica aguardando novas conexões de clientes (a listener thread pode ser a própria main). A cada conexão, a listener thread aloca uma worker thread do pool (caso haja alguma) para tratar a nova sessão. Quando a sessão se encerrar, essa worker thread voltará para o pool. Caso todas as worker threads estejam alocadas para tratar outras sessões, a listener thread enfileirará a nova sessão para posterior tratamento por uma worker thread que retorne ao pool.

O número de worker threads e o comprimento máximo da fila de sessões que estão aguardando uma worker thread são argumentos especificados na ativação do ServContas. Novas conexões de clientes devem ser recusadas caso a fila de sessões tenha comprimento máximo. A fila de sessões deve ser implementada como um bounded buffer com múltiplos consumidores (as worker threads) e um produtor (a listener thread).


next up previous
Next: Requisitos da solução Up: ep4 Previous: Preliminares
Francisco Reverbel
2001-06-11