Você está na página 1de 2

Pronto: O processo est pronto (apto) a assumir a CPU.

Executando: O processo est executando na CPU, ou seja, suas instrues esto sendo executadas na CPU. Bloqueado: O processo est esperando que uma entrada e sada (E/S ou I/O) seja concluda. 2Iria dar erro, pois na hora de gravar, ambos processos tentariam gravar no espao 0 do Spool

3
- int varTrav = 0; 1. 2. 3. 4. 5. 6. x++ }; 7. 8. } varTrav = 0; void processo0 () { int x; while(varTrav==1) { }; varTrav = 1; regCritica {

escreveSpool(arq, x)

4 a)Processo 0 executado at a linha 2 e para antes de entrar no lao, processo 1 ganha a cpu e executado e enterrompido na regio crtica, processo 0 ganha a cpu novamente, como vartrav agora 1, devido a execuo do processo 1, o processo 0 entra no loop.

int ultimo; Turn = 0 1. void processo0 () { 2. int x; 3. while (turn!=0){} 4. x = ultimo; 5. x++ 6. escreveSpool(arq, x); 7. ultimo = x; 8. turn = 1; 9. }

8. void processo1 () { 9. int y; 10. while (turn!=1){} 11. y = ultimo; 12. y++ 13. escreveSpool(arq, y); 14. ultimo = y; 15. turn=0; 16. }

6No. a estrita alternncia apresenta o seguinte problema, ela requer que dois processos se

alternem precisamente, o que significa que o nmero de acessos de cada processo deve ser exatamente igual do outro, alm disso se um dos processos sair da regiao critica o outro no pode prosseguir normalmente pois aps entregar a regio critica para o outro processo no pode mais pedi-la novamente

Você também pode gostar