TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

Trabalho

Por:   •  4/10/2015  •  Trabalho acadêmico  •  1.616 Palavras (7 Páginas)  •  235 Visualizações

Página 1 de 7

----------------------- Page 1-----------------------

Sistemas Operacionais (DCA0108)

Universidade Federal do Rio Grande do Norte

Centro de Tecnologia

Departamento de Engenharia de Computação e Automação

Professor: Diogo Pinheiro Fernandes Pedrosa

Turma: 01

Local: 4A2, 35T34

Aluno:___________________________________________________________________

Primeira Avaliação - Programas

Programa I

A sequência de Fibonacci é a série de números 0, 1, 1, 2, 3, 5, 8, … Formalmente, ela

pode ser expressa como:

fib =0

0

fib =1

1

fib =fib +fib

n n −1 n −2

Escreva um programa usando chamada de sistema para criação de processos que gere a

sequência de Fibonacci no processo filho criado. O número da sequência será fornecido

na linha de comando. Por exemplo, se 5 for fornecido, os cinco primeiros números da

sequência serão exibidos pelo processo filho. Já que os processos pai e filho têm suas

próprias cópias dos dados, será necessário que o filho exiba a sequência. Faça o pai

invocar a chamada de sistema para espera (wait(), por exemplo na API POSIX) para

esperar o processo filho ser concluído antes de sair do programa. Execute verificação de

erros necessária para assegurar que um número negativo seja passado na linha de

comando.

Observação:

• Esta tarefa é o exercício 3.15, página 80, do livro “Fundamentos de Sistemas

Operacionais”, de Silberschatz, Galvin e Gagne, editora LTC, 8ª edição.

----------------------- Page 2-----------------------

Programa II

No programa anterior, o processo filho deve exibir a sequência de Fibonacci, já que pai e

o filho têm suas próprias cópias dos dados. Outra abordagem para o projeto desse

programa é o estabelecimento de um segmento de memória compartilhada entre os

processos pai e filho. Essa técnica permite que o filho grave o conteúdo da sequência de

Fibonacci no segmento de memória compartilhada e faz o pai exibir a sequência quando o

filho é concluído. Já que a memória é compartilhada, qualquer alteração que o filho fizer

também será refletida no processo pai. Assim sendo, faça um programa para resolver a

questão da sequência de Fibonacci do programa anterior, mas utilizando memória

compartilhada para comunicação entre os processos pai e filho. Outra modificação é que,

dessa vez, a exibição da sequência é responsabilidade do processo pai.

O processo pai tem que seguir os passos abaixo:

1. Aceita o parâmetro passado na linha de comando e executa verificação de erros.

2. Cria um segmento de memória compartilhada.

3. Anexa o segmento de memória compartilhada ao seu espaço de endereçamento.

4. Gera o processo filho e invoca a chamada de sistema para esperar o filho terminar.

5. Filho grava o valor da sequência de Fibonacci no segmento de memória

compartilhada, desanexa memória e finaliza.

6. Pai desanexa e remove o segmento de memória compartilhada.

Já que o processo filho é uma cópia do pai, a região de memória compartilhada será

anexada ao espaço de endereço do filho e do pai. O processo filho gravará então a

sequência de Fibonacci na memória compartilhada e, para concluir, desanexará o

segmento.

Uma questão relacionada a processos em cooperação envolve problemas de

sincronização. Neste exercício, os processos pai e filho devem estar sincronizados para

que o pai não exiba a sequência de Fibonacci antes que o filho termine de gerar a

sequência.

...

Baixar como (para membros premium)  txt (6.6 Kb)   pdf (58.5 Kb)   docx (15.6 Kb)  
Continuar por mais 6 páginas »
Disponível apenas no TrabalhosGratuitos.com