Sunteți pe pagina 1din 3

Parte 2 da ATPS do Primeiro Bimestre Processos e Threads Peso = 1.

0
Escolha o problema 1(Processos) ou 2 (Thread) a seguir. Desenvolva a soluco. O Trabalho pode ser feito com no mnimo 2 e no mximo 3 alunos. O cdigo fonte comentado deve ser enviado para o email alinepaes@aedu.com at 23h50min do dia 02/10.
Processos 1 A sequncia de Fibonacci a srie de nmeros 0,1,1,2,3,5,8,... Formalmente, ela pode ser expressa como: fib(0) = 0 fib(1) = 1 fib(n) = fib(n-1) + fib(n-2) (1.1) Escreva um programa em C usando a chamada de sistema fork() que gere a sequncia de Fibonacci no processo filho. O nmero da sequncia ser fornecido na linha de comando. Por exemplo, se 5 for fornecido, os cinco primeiros nmeros da sequncia devem ser exibidos pelo processo filho. O pai deve invocar a chamada wait() para esperar o filho ser concludo antes de sair do programa. (1.2) No exerccio anterior, o filho deve exibira sequncia de Fibonacci, j que o pai e o filho tm suas prprias cpias de dados. Outra abordagem para o projeto desse programa o estabelecimento de um segmento de memria compartilhada entre os processos pai e filho. Essa tcnica permite que o filho grave o contedo da sequncia de Fibonacci no segmento de memria compartilhada e faz o pai exibir a sequncia quando o filho concludo. J que a memria compartilhada, qualquer alteraco que o filho fizer, tambm ser refletida no processo pai. Esse programa deve ser estruturado usando a memria compartilhada POSIX. Primeiro, o programa requer a criaco da estrutura de dados para o segmento de memria compartilhada (use struct, com dois tens: (1) array de tamanho fixo MAX_SEQUENCE que conter os valores de Fibonacci e (2) tamanho da sequncia que o filh deve gerar (sequence_size), onde sequence_size <= MAX_SEQUENCE. O processo pai percorrer os passoa abaixo: a. Aceita o parmetro passado na linha de comando e executa a verificaco de erros para assegurar que o parmetro seja <= MAX_SEQUENCE. b. Cria um segmento de memria compartilhada c. Anexa o segmento de memria compartilhada a seu espaco de enderecamento d. Configura o valor de sequence_size com o parmetro da linha de comando e. Gera o processo filho e invoca a chamada de sistema wait() para esperar o filho terminar f. Grava o valor da sequncia de Fibonacci no segmento de memria compartilhada g. Desanexa e remove o segmento de memria compartilhada. J que o processo filho uma cpia do processo pai, a regio de memria compartilhada ser anexada ao espaco de enderecamento do filho e do pai. O processo filho gravar a sequncia de Fibonacci na memria compartilhada e para concluir, desanexar o segmento.

Threads 1 - Reescreva o programa abaixo, que executa a funco de soma, em Java.

S-ar putea să vă placă și