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

OS SISTEMAS OPERACIONAIS

Por:   •  26/11/2017  •  Exam  •  469 Palavras (2 Páginas)  •  598 Visualizações

Página 1 de 2

 ATIVIDADE DA SEMANA 03

 Exercício 1 (3 pontos)

Explique o grande problema da solução de exclusão mútua de desabilitar as interrupções. Apesar dos problemas existentes com esta solução, explique o porquê de ela ser considerada útil em sistemas uniprocessados.

O grande problema de desabilitar as interrupções é que um processo pode esquecer de reabilitar as interrupções e nunca ser finalizado.

Para um sistema uniprocessado esta solução de exclusão mútua pode ser considerada útil, pois atende grande parte dos pre-requisitos para programação concorrente.

Exercício 2 (2 pontos)

Explique como a solução da Passagem de Mensagem resolve o problema da memória compartilhada.

Quando se utiliza memória compartilhada deve-se garantir que dois processos não gravem dados no mesmo local simultaneamente. Assim, a solução da passagem de mensagem foi desenvolvida especificamente para se utilizar a exclusão mutua onde temos processadores compartilhando o mesmo espaço de memória. Para isso, os processos enviam e recebem mensagens ao invés de ler e escrever em variáveis compartilhadas.

send(destino, &mensagem):Primitiva usada para o envio de mensagens.

receive(fonte, &mensagem): Primitiva usada para o recebimento de mensagens.

Exercício 3 (2 pontos)

Por que a solução usando monitores é bastante usada pelos desenvolvedores de softwares paralelos e/ou concorrentes?

Porque se trata de uma primitiva de alto nível para sincronizar processos cuja utilização é muito fácil podendo ser implementado em JAVA.

Exercício 4 (3 pontos)

Considere a solução a seguir para o problema da exclusão mútua envolvendo dois processos P0 e P1. Presuma que a variável turn seja inicializada para 0. O código do processo P0 é apresentado a seguir.

/*Outro código*/

while (turn != 0) {} /* Não fazer nada e esperar */

Critical Section /* ... */

turn = 0;

/* Outro código */

Para o processo P1, substitua 0 por 1 no código anterior. Determine se a solução atende a todas as condições exigidas para uma solução de exclusão mútua.

Substituindo 0 por 1 no processo P1 teremos:

/*Outro código*/

while (turn != 1) {} /* Não fazer nada e esperar */

Critical Section /* ... */

turn = 1;

/* Outro código */

Numa primeira análise vemos que o processo P0 entra na região crítica quando a variável turn é 0. Já o processo P1 entra na região crítica quando a variável turn é 1.

...

Baixar como (para membros premium)  txt (3.2 Kb)   pdf (81 Kb)   docx (9.8 Kb)  
Continuar por mais 1 página »
Disponível apenas no TrabalhosGratuitos.com