-
-
-
CENAPAD-MGCO
A seguir: Introdução à Programação Paralela
Acima: Núcleos de Multiprogramação
Anterior: Resumo e Conclusões
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.