Next: Um ``Empurrão Inicial''
Up: ep1
Previous: ep1
Neste exercício trabalharemos com uma simulação simplória de um sistema
de atendimento ao cliente (SAC, ou call center). A nossa simulação
incluirá apenas os seguintes aspectos, ambos relacionados com o
acompanhamento da carga no call center: o número de chamadas em
atendimento em um dado instante e o histórico diário de atendimento para
cada um dos operadores que atendem a chamadas.
Nosso modelo de simulação é composto por dois programas: um programa
chamado operador e um programa chamado supervisor.
Esses dois programas interagem com o usuário da simulação através da
entrada e da saída padrão.
O programa operador modela um atendente do call center. Ele lê
a entrada padrão e interpreta os seguintes comandos:
- startcall
Indica que o atendente está atendendo a uma nova chamada. Do
ponto de vista de nossa simulação é aceitável que um atendente
atenda a várias chamadas simultaneamente.
- endcall
Indica que uma das chamadas sendo atendida pelo operador está
terminando.
- report
Imprime o número de chamadas sendo atendidas no momento e o
número de chamadas já completadas pelo atendente.
- exit
Encerra a execução do programa.
Quaisquer outros comandos devem ser ignorados pelo programa operador.
O programa supervisor não aceita comandos do usuário via
entrada padrão. Ele imprime regularmente as seguintes informações na
saída padrão:
- o número de chamadas em andamento no sistema como um todo (isto é,
o total de chamadas sendo atendidas pelos vários operadores
ativos) e o número de chamadas já concluídas pelo sistema como um todo;
- o número de chamadas sendo atendidas e o número de chamadas já
concluídas por operador. Em outras palavras: para cada um dos
operadores ativos, deve ser impresso o número de chamadas que esse
operador está atendendo no momento e o número de chamadas cujo
atendimento foi concluído pelo operador.
A impressão dessas informações é feita a cada n segundos, onde
n é um argumento fornecido (na linha de comando) pelo usuário
do programa supervisor.
Ambos os programas iniciam seu trabalho imprimindo sua identificação,
isto é, o número do processo em execução (veja a man page para
getpid). Para executar o programa operador, o usuário
precisa conhecer a identificação do supervisor correspondente.
Essa identificação é um argumento fornecido (na linha de comando) pelo
usuário do programa programa operador.
Next: Um ``Empurrão Inicial''
Up: ep1
Previous: ep1
Francisco Reverbel
2002-03-19