Projecto Sistemas Operativos - IST, 1.º semestre 2015-2016
- Clonar o repositório (
git clone https://github.com/pbucho/SO2015.git
ougit clone git@github.com:fatherboard/SO2015.git
) - Executar o comando
make
- Executar
./par-shell
- Executar
./par-shell-terminal par-shell-in
em cada terminal que se queira que comunique com par-shell
pathname [arg1 ... arg5]
executa o programa contido no ficheiro indicado pelo pathname, como processo filho, passando-lhe os argumentos opcionais que sejam indicados (até um máximo de 5 argumentos permitidos). O pathname pode referir-se a um programa na própria directoria de execução dapar-shell
ou na path do utilizador.exit
termina apar-shell-terminal
de forma ordeira, enviando uma mensagem a par-shell a dizer que terminou.exit-global
termina a par-shell (e todos os terminais atraves de um sinal). Em particular, espera pela terminação de todos os processos filho. Após todos os processos filho terem terminado, apar-shell
deve apresentar no stdout e em log.txt o pid, tempo de execucao e o inteiro devolvido por cada processo filho.
É necessário estabelecer um protocolo de aplicação para comunicação entre os processos da par-shell
e dos par-shell-terminal
(protocolo PSP, par-shell protocol :P )
REG [PID]
- enviado por um novopar-shell-terminal
àpar-shell
, indica que foi criado um novo terminal e que apar-shell
deve fazer o registo do seu PID.DIE [PID]
- enviado por umpar-shell-terminal
àpar-shell
, indica que o terminal vai ser encerrado e que apar-shell
deve eliminar o registo do seu PID.stats
- enviado por umpar-shell-terminal
àpar-shell
, pede que apar-shell
envie ao terminal a informação relativa à execução de processos.RSTATS [DATA]
- enviado pelapar-shell
a um terminal, é a resposta ao comandostats
.