Exercício 1 -------------- a) baixar o programa fork.c (disponível no Moodle). Lê-lo e completá-lo para disparar um processo novo que execute o programa "hello_world". Você deverá programar o "Hello World" e obter o executável com este nome em seu diretório corrente. b) Alterar o programa fork.c para criar n processos, onde n é especificado pelo usuário na linha de comando. Exemplo de uso: > meu_fork 40 deverá executar meu_fork que criará 40 processos. Executar com n valendo 10, 50, 80, 110, 150. Surge algum problema? c) Os arquivos fontes do núcleo Minix-3 se encontram em /usr/src/kernel/ . Consultar proc.h para verificar o tamanho da tabela de processos (process table). Dica: pode-se consultar também /usr/src/include/minix/sys_config.h . Propor uma alteração no núcleo para poder executar até 200 processos. Re-compilar o núcleo (vide a documentação acima mencionada) e testar. Exercício 2 ------------ Um processo especial executa sempre em segundo plano (background) para monitorar o uso do teclado. Caso o usuário digite uma tecla de função (F1, F2, etc...), este processo joga para a tela informações sobre o estado do núcleo. Este processo, chamado "is", tem seu código fonte em /usr/src/servers/is/ . Pode-se consultar o código de main.c para verificar quais handlers são chamados em função de qual tecla é apertada. No caso de se teclar F11, a rotina chamada é timing_dmp (que se encontra implementada em /usr/src/servers/is/dmp_kernel.c). Alterar timing_dmp para que, ao teclar F11, seja impresso na tela o "user-time" de todos os processos em execução. Para isso, você precisa saber: - como as outras funções do arquivo dmp_kernel.c obtem informações sobre os processos. - que a struct proc (verificar o arquivo /usr/src/kernel/proc.h) inclui um campo "p_user_time" que informa o número de ticks de relógio passados em modo usuário desde a criação do processo. Re-compilar o código obtido com a ajuda do Makefile no mesmo diretório. Re-compilar o núcleo - cuidado, deve-se alterar um #define e algum lugar do código fonte do núcleo... Rebootar e exercitar o uso de F11.