Lista 4- sincronização e comunicação interprocessos
1 - O que é concorrência e como este conceito esta presente nos sistemas operacionais multiprogramáveis? Concorrência é a possibilidade de se executar diversas instruções ao mesmo tempo. Nos sistemas multiprogramáveis este raciocinio é o fundamento básico da multiprogramação. Vários programas residem na memória concorrendo pela utilização do processador, com isso o processador permanece menos tempo ocioso e a memória utilizada de forma eficiente.
2 - Defina o que é uma aplicação concorrente e dê um exemplo de sua utilização. É uma aplicação estruturada de maneira que partes diferentes do código do programa possam executar concorrentemente. Este tipo de aplicação tem como base a execução cooperativa de múltiplos processos ou threads, que trabalham em uma mesma tarefa na busca de um resultado comum.
3 - Considere uma aplicação que utilize uma matriz na memória principal para a comunicação entre vários processos concorrentes. Que tipo de problema pode ocorrer quando dois ou mais processos acessam uma mesma posição da matriz? Caso não haja uma gerência no uso concorrente dos recursos compartilhados, inconsistências nos dados podem ocorrer.
4 – O que é exclusão mútua e como ela é implementada? É impedir que dois ou mais processos acessem um mesmo recurso simultaneamente. Para isso, enquanto um processo estiver acessando determinado recurso, todos os demais processos que queiram acessá-lo deverão esperar pelo término da utilização do recurso.
5 – Como seria possível resolver os problemas decorrentes do compartilhamento da matriz, apresentado anteriormente, utilizando o conceito da exclusão mútua? Garantindo na aplicação que somente um único processo pode estar acessando a matriz por vez.
6 – O que é starvation e como podemos solucionar este problema? Starvation é a situação onde um processo nunca consegue executar sua região crítica e, conseqüentemente, acessar o recurso compartilhado. A solução