- - - - CENAPAD-MGCO

contents index A seguir: Introdução à Programação Paralela Acima: Núcleos de Multiprogramação Anterior: Resumo e Conclusões


Exercícios

Exercício 17119 (Sleep)

Modifique o núcleo da seção 3 para implementar a primitiva sleep(int nrofTicks) , que faz com que um processo pare de disputar o processador pelo número de ticks especificado.

Exercício 17120 (Mensagens)

Mensagens são muitas vezes utilizadas para a interação entre processos. Modifique o núcleo da seção 3 de forma a implementar as primitivas send(Process dest, Message m) e receive(Process source, Message m) . Implemente os modos síncrono , onde o processo que envia uma mensagem é bloqueado até a sua recepção, e assíncrono , sem bloqueio do remetente.

Exercício 17121 (Cobegin-Coend generalizado)

Discuta a implementação de níveis arbitrários de cobegin-coend.

Exercício 17122 (Fork-Join)

Modifique o núcleo da seção 3 para implementar a função fork(Process p) , que dispara o processo recém-criado p sem interromper a execução do processo que faz o disparo, e a função join(Process p) , que bloqueia o processo que a executa até a morte do processo p .

Exercício 17123 (Controle da Multiplexação)

Acrescente ao núcleo dado em aula os procedimentos stopRoundRobin() e startRoundRobin(int timeSlice) para controlar a preempção de processos por ocasião das interrupções de relógio.

Exercício 17124 (Mensagens Assíncronas)

Modifique o núcleo de multiprogramação dado em aula acrescentando primitivas para comunicação assíncrona por mensagens.


next up previous contents index
Next: Introdução à Programação Paralela Up: Núcleos de Multiprogramação Previous: Resumo e Conclusões
Osvaldo Carvalho - Postscript - Comentários?