Filas de mensagens
- Crie um programa que crie um processo filho. O processo filho deve
aceitar palavras e enviá-las ao pai. O pai deve imprimir as palavras com
as letras todas em maiúsculas. Use filas de mensagens como forma de
comunicação entre os dois processos
[Resolução]
- Crie dois programas, um servidor e um cliente. O cliente envia
ao servidor expressões da forma a + b, a - b, a * b ou a / c. O servidor
deve calcular o resultado e devolvê-lo ao cliente. Note o seguinte:
- Caso o servidor não esteja activo quando o cliente iniciar este
deve ser iniciado pelo cliente.
- Quando acontecer uma divisão por zero o servidor deve enviar uma
mensagem de erro ao cliente.
- O cliente termina com a introdução da palavra cfim.
- O servidor termina se em algum cliente for introduzida a palavra
fim.
- O programa deverá
suportar múltiplos clientes.
- Crie dois programas, um servidor e um cliente de chat, O servidor
deve receber mensagens de clientes e envia-las a todos os clientes ligados a
ele. Cada cliente deve receber e mostrar mensagens vindas do servidor e ao
mesmo tempo deve permitir o envio de mensagens para o servidor. Poderá fazer o
seguinte:
- Cada cliente que é executado pede o nickname do utilizador e
envia uma mensagem especial, por exemplo, !login ao servidor.
- Caso o servidor não tenha esgotado o número de máximo de clientes
adiciona-o à lista de clientes e informa-o do resultado. Caso contrário
informa o cliente que não é possível juntar-se ao chat.
- Sempre que um cliente envia uma mensagem o servidor reenvia-a para
todos os clientes ligados que a devem mostrar imediatamente.
- Quando um cliente termina envia a mensagem !exit ao servidor que
deve removê-lo da lista de clientes.
- O servidor deve terminar e remover a lista de mensagens se algum cliente
enviar a mensagem !close.
[Resolução]
- Os supermercados Intelmarché decidiram adoptar tecnologia de
ponta para melhor servirem os seus clientes. Para isso os carrinhos de compras
foram equipados com chips que permitem que o cliente saiba em qualquer altura
qual o valor total dos produtos que se encontram no carrinho. Cada carrinho
tem um chip capaz de obter o código de barras dum produto e enviá-lo
a um servidor central (que conhece os preços de todos os produtos)
e que lhe devolve o respectivo preço. Um pequeno mostrador indica
ao cliente qual o preço total em euros das suas compras. Implemente
uma solução baseada em processos que comunicam via filas de
mensagens:
- É lançado um processo por cada carrinho que entra no
supermercado.
- Cada vez que um novo produto é adicionado / retirado, o processo
do carrinho pede o seu preço ao servidor central.
- O servidor central poderá armazenar os dados dos produtos
em ficheiro ou se preferir num vector de estruturas em memória.
- O servidor deverá permitir saber quantos carrinhos circulam
dentro do espaço bem como o valor total referente às potenciais
compras num dado momento.
Voltar
Complementos de Programação
- ISEP 2003