arquitetura de sistemas operativos - universidade …hpcosta/so/somod5baula4.2.pdftgpsi 09/12...

37
Prof. Hernani Resumo Mecanismos de Sincronismo Arquitetura de Sistemas Operativos Hernani Costa [email protected] Sistemas Operativos 2011/2012 Hernani Costa [email protected] TGPSI 09/12 Sistemas Operativos odulo 5

Upload: others

Post on 14-Aug-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Arquitetura de Sistemas Operativos - Universidade …hpcosta/so/soMod5BAula4.2.pdfTGPSI 09/12 Sistemas Operativos M odulo 5! Prof. Hernani Resumo Mecanismos de Sincronismo Exclus~ao

! Prof. Hernani

Resumo Mecanismos de Sincronismo

Arquitetura de Sistemas Operativos

Hernani Costa

[email protected]

Sistemas Operativos 2011/2012

Hernani Costa [email protected]

TGPSI 09/12 Sistemas Operativos Modulo 5

Page 2: Arquitetura de Sistemas Operativos - Universidade …hpcosta/so/soMod5BAula4.2.pdfTGPSI 09/12 Sistemas Operativos M odulo 5! Prof. Hernani Resumo Mecanismos de Sincronismo Exclus~ao

! Prof. Hernani

Resumo Mecanismos de Sincronismo

1 Mecanismos de SincronismoRequisitos de uma Seccao CrıticaExclusao Mutua Algorıtmica

Hernani Costa [email protected]

TGPSI 09/12 Sistemas Operativos Modulo 5

Page 3: Arquitetura de Sistemas Operativos - Universidade …hpcosta/so/soMod5BAula4.2.pdfTGPSI 09/12 Sistemas Operativos M odulo 5! Prof. Hernani Resumo Mecanismos de Sincronismo Exclus~ao

! Prof. Hernani

Resumo Mecanismos de Sincronismo

Requisitos de uma Seccao Crıtica

Antes de analisarmos as varias solucoes para assegurar que umbloco de codigo seja executado corretamente como seccaocrıtica, e importante compreender quais os requisitos quedevem ser cumpridos.

Estes requisitos resultam da analise teorica cuidada e daexperiencia acumulada no seu desenvolvimento ao longo dosanos.

Hernani Costa [email protected]

TGPSI 09/12 Sistemas Operativos Modulo 5

Page 4: Arquitetura de Sistemas Operativos - Universidade …hpcosta/so/soMod5BAula4.2.pdfTGPSI 09/12 Sistemas Operativos M odulo 5! Prof. Hernani Resumo Mecanismos de Sincronismo Exclus~ao

! Prof. Hernani

Resumo Mecanismos de Sincronismo

Requisitos de uma Seccao Crıtica

Os requisitos sao uteis porque nos permitem tambem avaliarcada uma das solucoes tendo em conta o seu cumprimento(ou nao):

Exclusao mutua (deve ser assegurada) - se uma tarefa estaa executar a seccao crıtica, entao nenhuma outra a pode estara executar;Progresso (deve ser assegurado) - se nenhumatarefa esta a executar a seccao crıtica e existem outras que apretendem executar, entao apenas estas devem participar noprotocolo de decisao que seleciona uma delas – e esta decisaonao devera prolongar-se indefinidamente, i.e., a exclusaomutua deve ser resolvida entre as tarefas que estao emcompeticao e nao afetar as restantes.

Hernani Costa [email protected]

TGPSI 09/12 Sistemas Operativos Modulo 5

Page 5: Arquitetura de Sistemas Operativos - Universidade …hpcosta/so/soMod5BAula4.2.pdfTGPSI 09/12 Sistemas Operativos M odulo 5! Prof. Hernani Resumo Mecanismos de Sincronismo Exclus~ao

! Prof. Hernani

Resumo Mecanismos de Sincronismo

Requisitos de uma Seccao Crıtica

Mıngua ou starvation (nao deve ocorrer) - se uma tarefapretende executar a seccao crıtica, entao alguma vez no futuroira conseguir o acesso a seccao crıtica e nao ficara para sempreimpedida de o fazer;

Eficiencia (deve ser assegurada) - na ausencia decontencao, se uma unica tarefa quiser entrar na seccao crıtica,consegui-lo-a de uma forma eficiente, sem operacoesadicionais.

Hernani Costa [email protected]

TGPSI 09/12 Sistemas Operativos Modulo 5

Page 6: Arquitetura de Sistemas Operativos - Universidade …hpcosta/so/soMod5BAula4.2.pdfTGPSI 09/12 Sistemas Operativos M odulo 5! Prof. Hernani Resumo Mecanismos de Sincronismo Exclus~ao

! Prof. Hernani

Resumo Mecanismos de Sincronismo

Requisitos de uma Seccao Crıtica

O primeiro requisito e obvio e resulta do que se pretendeassegurar, a exclusao mutua na execucao de uma seccaocrıtica.

Tal como vimos anteriormente, a execucao de um bloco decodigo como uma seccao crıtica implica que as instrucoes emcausa nao possam ser executadas por varias tarefasintercaladamente.

O segundo requisito, tal como a sua designacao indica,garante que pelo menos uma tarefa, das que pretendemexecutar a seccao crıtica, vai de facto conseguir faze-lo,depois de executar um protocolo de decisao cuja duracaotemporal e limitada.

Hernani Costa [email protected]

TGPSI 09/12 Sistemas Operativos Modulo 5

Page 7: Arquitetura de Sistemas Operativos - Universidade …hpcosta/so/soMod5BAula4.2.pdfTGPSI 09/12 Sistemas Operativos M odulo 5! Prof. Hernani Resumo Mecanismos de Sincronismo Exclus~ao

! Prof. Hernani

Resumo Mecanismos de Sincronismo

Requisitos de uma Seccao Crıtica

A situacao de mıngua ocorre quando existem varias tarefascontinuamente a tentar aceder a seccao crıtica, e uma delasnunca consegue ter acesso, sendo sempre ultrapassada pelasrestantes.

O ultimo requisito zela para que, nos instantes em que apenasuma tarefa pretende executar a seccao crıtica, o protocolo dedecisao seja rapido (uma vez que e obvio qual a tarefa que iraexecutar a seccao crıtica).

Hernani Costa [email protected]

TGPSI 09/12 Sistemas Operativos Modulo 5

Page 8: Arquitetura de Sistemas Operativos - Universidade …hpcosta/so/soMod5BAula4.2.pdfTGPSI 09/12 Sistemas Operativos M odulo 5! Prof. Hernani Resumo Mecanismos de Sincronismo Exclus~ao

! Prof. Hernani

Resumo Mecanismos de Sincronismo

Requisitos de uma Seccao Crıtica

Para assegurar que um bloco de codigo e executado comouma seccao crıtica, respeitando estes requisitos, ha tres tiposde solucoes possıveis que diferem consideravelmente nosrecursos que implicam, no desempenho e na sua facilidade deutilizacao no modelo computacional:

algorıtmicas: exclusivamente baseadas em programacao;

baseadas em mecanismos oferecidos pelo hardware;

objetos do sistema operativo usando funcionalidades do nucleoem articulacao com mecanismos oferecidos pelo hardware.

Hernani Costa [email protected]

TGPSI 09/12 Sistemas Operativos Modulo 5

Page 9: Arquitetura de Sistemas Operativos - Universidade …hpcosta/so/soMod5BAula4.2.pdfTGPSI 09/12 Sistemas Operativos M odulo 5! Prof. Hernani Resumo Mecanismos de Sincronismo Exclus~ao

! Prof. Hernani

Resumo Mecanismos de Sincronismo

Requisitos de uma Seccao Crıtica

Avaliacao - Trabalho Teorico-Pratico 10

Escreva um pequeno texto onde resume os slides anteriores.

O texto devera: ser elaborado em grupo; enviado por email aoprofessor no final da aula; e devera conter entre 50 a 150palavras.

Hernani Costa [email protected]

TGPSI 09/12 Sistemas Operativos Modulo 5

Page 10: Arquitetura de Sistemas Operativos - Universidade …hpcosta/so/soMod5BAula4.2.pdfTGPSI 09/12 Sistemas Operativos M odulo 5! Prof. Hernani Resumo Mecanismos de Sincronismo Exclus~ao

! Prof. Hernani

Resumo Mecanismos de Sincronismo

Exclusao Mutua Algorıtmica

A primeira impressao que um programador tera quandoconfrontado com o problema da seccao crıtica e que deve serpossıvel (e facil) conceber um algoritmo que resolve oproblema – como veremos, isso nao e verdade!

Assim, e importante perceber os erros mais comuns quesurgem quando, de uma forma menos cuidada, se procuraencontrar uma solucao para o problema da seccao crıtica.

A solucao mais simples consiste na utilizacao de um trincoque condicione o acesso aos dados partilhados.

Hernani Costa [email protected]

TGPSI 09/12 Sistemas Operativos Modulo 5

Page 11: Arquitetura de Sistemas Operativos - Universidade …hpcosta/so/soMod5BAula4.2.pdfTGPSI 09/12 Sistemas Operativos M odulo 5! Prof. Hernani Resumo Mecanismos de Sincronismo Exclus~ao

! Prof. Hernani

Resumo Mecanismos de Sincronismo

Exclusao Mutua Algorıtmica

Este mecanismo funciona do seguinte modo:

o trinco e fechado quando se comeca a aceder aos dados elibertado no final;qualquer tarefa que pretenda aceder aos dados partilhadosdeve testar,

em primeiro lugar, o estado do trincoe apenas prosseguir se o encontrar aberto - caso o valor dotrinco indicar que este esta fechado, a tarefa fica em ciclo atestar o seu valor ate que este indique que esta aberto.

Hernani Costa [email protected]

TGPSI 09/12 Sistemas Operativos Modulo 5

Page 12: Arquitetura de Sistemas Operativos - Universidade …hpcosta/so/soMod5BAula4.2.pdfTGPSI 09/12 Sistemas Operativos M odulo 5! Prof. Hernani Resumo Mecanismos de Sincronismo Exclus~ao

! Prof. Hernani

Resumo Mecanismos de Sincronismo

Exclusao Mutua Algorıtmica

As funcoes do objeto trinco sao Fechar e Abrir (lock eunlock, respetivamente).

A utilizacao destas funcoes seria a que e mostrada no codigoseguinte para o problema do alocador de memoria – como sepode ver, o codigo que deve ser executado em exclusao mutuaesta enquadrado pelas funcoes Fechar e Abrir.

Hernani Costa [email protected]

TGPSI 09/12 Sistemas Operativos Modulo 5

Page 13: Arquitetura de Sistemas Operativos - Universidade …hpcosta/so/soMod5BAula4.2.pdfTGPSI 09/12 Sistemas Operativos M odulo 5! Prof. Hernani Resumo Mecanismos de Sincronismo Exclus~ao

! Prof. Hernani

Resumo Mecanismos de Sincronismo

Exclusao Mutua Algorıtmica

Alocador de Memoria em Exclusao Mutua

#define MAX PILHA 100

char* pilha[MAX PILHA];

int topo = MAX PILHA - 1;

char* PedeMem() {Fechar();

ptr = pilha[topo];

topo −−;

Abrir();

return ptr;

}void DevolveMem(char* ptr) {

Fechar();

topo ++;

pilha[topo] = ptr;

Abrir();

}

Hernani Costa [email protected]

TGPSI 09/12 Sistemas Operativos Modulo 5

Page 14: Arquitetura de Sistemas Operativos - Universidade …hpcosta/so/soMod5BAula4.2.pdfTGPSI 09/12 Sistemas Operativos M odulo 5! Prof. Hernani Resumo Mecanismos de Sincronismo Exclus~ao

! Prof. Hernani

Resumo Mecanismos de Sincronismo

Exclusao Mutua Algorıtmica

A solucao trivial para a realizacao do objeto trinco consistenuma variavel booleana (ou flag) cujo valor indica se o trincoesta fechado ou aberto.

Consideremos entao as funcoes Fechar e Abrir que seapresentam no codigo seguinte e que devem enquadrar aregiao de codigo que se pretende executar em exclusao mutua.

Para simplificar, e sem perda de generalidade, vamos supor,neste e nos exemplos seguintes, que se trata apenas de duastarefas, T1 e T2, que pretendem executar uma dada seccaocrıtica.

Hernani Costa [email protected]

TGPSI 09/12 Sistemas Operativos Modulo 5

Page 15: Arquitetura de Sistemas Operativos - Universidade …hpcosta/so/soMod5BAula4.2.pdfTGPSI 09/12 Sistemas Operativos M odulo 5! Prof. Hernani Resumo Mecanismos de Sincronismo Exclus~ao

! Prof. Hernani

Resumo Mecanismos de Sincronismo

Exclusao Mutua Algorıtmica

Primeira tentativa de solucao algorıtmica para o problemada seccao critica

Hernani Costa [email protected]

TGPSI 09/12 Sistemas Operativos Modulo 5

Page 16: Arquitetura de Sistemas Operativos - Universidade …hpcosta/so/soMod5BAula4.2.pdfTGPSI 09/12 Sistemas Operativos M odulo 5! Prof. Hernani Resumo Mecanismos de Sincronismo Exclus~ao

! Prof. Hernani

Resumo Mecanismos de Sincronismo

Exclusao Mutua Algorıtmica

Obviamente, a variavel trinco e partilhada pelas tarefas T1 eT2.

Assumindo que a tarefa T2 esta a executar a seccao crıtica eque a tarefa T1 pretende tambem executa-la, esta ira invocara funcao Fechar.

Enquanto o trinco estiver fechado (valor FECHADO) a tarefaT1 fica a executar a instrucao while (trinco == FECHADO).

Hernani Costa [email protected]

TGPSI 09/12 Sistemas Operativos Modulo 5

Page 17: Arquitetura de Sistemas Operativos - Universidade …hpcosta/so/soMod5BAula4.2.pdfTGPSI 09/12 Sistemas Operativos M odulo 5! Prof. Hernani Resumo Mecanismos de Sincronismo Exclus~ao

! Prof. Hernani

Resumo Mecanismos de Sincronismo

Exclusao Mutua Algorıtmica

E importante notar que em cada iteracao do ciclo while,nenhuma instrucao e executada (ter um ciclo sobre um blocode instrucoes vazio e uma construcao perfeitamente valida emC).

Com efeito, trata-se de um ciclo vazio em que se pretendeapenas que a tarefa T1 espere que o trinco abra (na realidadegastando inutilmente ciclos de CPU, mas vamos deixar esteproblema para depois).

Hernani Costa [email protected]

TGPSI 09/12 Sistemas Operativos Modulo 5

Page 18: Arquitetura de Sistemas Operativos - Universidade …hpcosta/so/soMod5BAula4.2.pdfTGPSI 09/12 Sistemas Operativos M odulo 5! Prof. Hernani Resumo Mecanismos de Sincronismo Exclus~ao

! Prof. Hernani

Resumo Mecanismos de Sincronismo

Exclusao Mutua Algorıtmica

Quando a tarefa T2 terminar a execucao da seccao crıtica,invocando a funcao Abrir, atribuindo assim o valor ABERTOa variavel trinco, a tarefa T1 saira do ciclo while e executaraa instrucao seguinte que fecha de novo o trinco.

E fundamental perceber que esta solucao para uma seccaocrıtica esta errada pois nao garante o primeiro requisito - aexclusao mutua - pela mesma razao do exemplo inicial.

Hernani Costa [email protected]

TGPSI 09/12 Sistemas Operativos Modulo 5

Page 19: Arquitetura de Sistemas Operativos - Universidade …hpcosta/so/soMod5BAula4.2.pdfTGPSI 09/12 Sistemas Operativos M odulo 5! Prof. Hernani Resumo Mecanismos de Sincronismo Exclus~ao

! Prof. Hernani

Resumo Mecanismos de Sincronismo

Exclusao Mutua Algorıtmica

Com efeito, assumindo uma intercalacao na execucao dastarefas T1 e T2, podemos facilmente constatar que e possıvelambas as tarefas executarem ao mesmo tempo a seccaocrıtica.

De facto, quando a tarefa T1 executa a funcao Fechar,podemos observar que o teste da variavel trinco (efectuadono ciclo while) e a atribuicao do valor FECHADO (feito nainstrucao seguinte) nao sao feitos de forma atomica.

Hernani Costa [email protected]

TGPSI 09/12 Sistemas Operativos Modulo 5

Page 20: Arquitetura de Sistemas Operativos - Universidade …hpcosta/so/soMod5BAula4.2.pdfTGPSI 09/12 Sistemas Operativos M odulo 5! Prof. Hernani Resumo Mecanismos de Sincronismo Exclus~ao

! Prof. Hernani

Resumo Mecanismos de Sincronismo

Exclusao Mutua Algorıtmica

Consequentemente, pode ocorrer que a tarefa T1 perca oprocessador imediatamente apos ter saıdo do ciclo while eantes de executar a instrucao trinco = FECHADO.

Se em seguida a tarefa T2 executar a funcao Fechar, estapodera entrar na seccao crıtica (pois a variavel trinco aindaesta com o valor ABERTO).

Portanto, esta solucao tem o seguinte problema:

O primeiro requisito - a exclusao mutua - nao e cumprido.

Hernani Costa [email protected]

TGPSI 09/12 Sistemas Operativos Modulo 5

Page 21: Arquitetura de Sistemas Operativos - Universidade …hpcosta/so/soMod5BAula4.2.pdfTGPSI 09/12 Sistemas Operativos M odulo 5! Prof. Hernani Resumo Mecanismos de Sincronismo Exclus~ao

! Prof. Hernani

Resumo Mecanismos de Sincronismo

Exclusao Mutua Algorıtmica

Podemos entao pensar numa evolucao desta solucao que, emvez de um trinco, utiliza dois trincos para que as tarefas naoestejam a partilhar uma variavel.

Consequentemente. e necessario um par de funcoes analogasas Abrir e Fechar, de modo a que cada um atue sobre um dostrincos.

Hernani Costa [email protected]

TGPSI 09/12 Sistemas Operativos Modulo 5

Page 22: Arquitetura de Sistemas Operativos - Universidade …hpcosta/so/soMod5BAula4.2.pdfTGPSI 09/12 Sistemas Operativos M odulo 5! Prof. Hernani Resumo Mecanismos de Sincronismo Exclus~ao

! Prof. Hernani

Resumo Mecanismos de Sincronismo

Exclusao Mutua Algorıtmica

A ideia subjacente a esta solucao e a seguinte: os trincostrinco t1 e trinco t2 permitem a entrada apenas de uma dastarefas na seccao crıtica, ficando a outra em ciclo ate que otrinco respetivo lhe permita prosseguir.

Assim, T1 espera enquanto trinco t2 estiver FECHADO, eT2 espera enquanto trinco t1 estiver FECHADO.

Hernani Costa [email protected]

TGPSI 09/12 Sistemas Operativos Modulo 5

Page 23: Arquitetura de Sistemas Operativos - Universidade …hpcosta/so/soMod5BAula4.2.pdfTGPSI 09/12 Sistemas Operativos M odulo 5! Prof. Hernani Resumo Mecanismos de Sincronismo Exclus~ao

! Prof. Hernani

Resumo Mecanismos de Sincronismo

Exclusao Mutua Algorıtmica

Segunda tentativa de solucao algorıtmica para o problemada seccao critica

Hernani Costa [email protected]

TGPSI 09/12 Sistemas Operativos Modulo 5

Page 24: Arquitetura de Sistemas Operativos - Universidade …hpcosta/so/soMod5BAula4.2.pdfTGPSI 09/12 Sistemas Operativos M odulo 5! Prof. Hernani Resumo Mecanismos de Sincronismo Exclus~ao

! Prof. Hernani

Resumo Mecanismos de Sincronismo

Exclusao Mutua Algorıtmica

Na realidade, esta solucao apresentada na figura anteriortambem e incorreta.

Com efeito, considerando a tarefa T1, podemos observar queo teste do trinco trinco t2 (efetuado no ciclo while) e aatribuicao do valor FECHADO ao trinco trinco t1 nao e feitode forma atomica.

Hernani Costa [email protected]

TGPSI 09/12 Sistemas Operativos Modulo 5

Page 25: Arquitetura de Sistemas Operativos - Universidade …hpcosta/so/soMod5BAula4.2.pdfTGPSI 09/12 Sistemas Operativos M odulo 5! Prof. Hernani Resumo Mecanismos de Sincronismo Exclus~ao

! Prof. Hernani

Resumo Mecanismos de Sincronismo

Exclusao Mutua Algorıtmica

Consequentemente, tal como na solucao anterior, podeocorrer que a tarefa T1 perca o processador imediatamenteapos ter saıdo do ciclo e antes de executar a atribuicaotrinco t1 = FECHADO, e a tarefa T2 executar a funcaot2 fechar quando obtem o processador.

Neste caso, tal como no anterior, a tarefa T2 entrara naseccao crıtica em simultaneo com T1.

Hernani Costa [email protected]

TGPSI 09/12 Sistemas Operativos Modulo 5

Page 26: Arquitetura de Sistemas Operativos - Universidade …hpcosta/so/soMod5BAula4.2.pdfTGPSI 09/12 Sistemas Operativos M odulo 5! Prof. Hernani Resumo Mecanismos de Sincronismo Exclus~ao

! Prof. Hernani

Resumo Mecanismos de Sincronismo

Exclusao Mutua Algorıtmica

Portanto, esta solucao tem o mesmo problema da anterior, ouseja:

O primeiro requisito - a exclusao mutua - nao e cumprido.

Note-se que se optarmos por alterar a ordem de execucao dasinstrucoes em causa (teste e atribuicao), tal como se ilustrana figura seguinte, a solucao passa a assegurar a exclusaomutua pois a primeira instrucao a ser executada e sempre ofecho do trinco.

Hernani Costa [email protected]

TGPSI 09/12 Sistemas Operativos Modulo 5

Page 27: Arquitetura de Sistemas Operativos - Universidade …hpcosta/so/soMod5BAula4.2.pdfTGPSI 09/12 Sistemas Operativos M odulo 5! Prof. Hernani Resumo Mecanismos de Sincronismo Exclus~ao

! Prof. Hernani

Resumo Mecanismos de Sincronismo

Exclusao Mutua Algorıtmica

Terceira tentativa de solucao algorıtmica para o problemada seccao critica

Hernani Costa [email protected]

TGPSI 09/12 Sistemas Operativos Modulo 5

Page 28: Arquitetura de Sistemas Operativos - Universidade …hpcosta/so/soMod5BAula4.2.pdfTGPSI 09/12 Sistemas Operativos M odulo 5! Prof. Hernani Resumo Mecanismos de Sincronismo Exclus~ao

! Prof. Hernani

Resumo Mecanismos de Sincronismo

Exclusao Mutua Algorıtmica

Contudo, pode conduzir a uma situacao em que as tarefasficam ambas bloqueadas.

Com efeito, basta que T1 execute a instrucaotrinco t1=FECHADO e perca o processador logo de seguida;quando T2 se executar, esta ira ficar em ciclo na instrucaowhile (trinco t1== FECHADO).

Hernani Costa [email protected]

TGPSI 09/12 Sistemas Operativos Modulo 5

Page 29: Arquitetura de Sistemas Operativos - Universidade …hpcosta/so/soMod5BAula4.2.pdfTGPSI 09/12 Sistemas Operativos M odulo 5! Prof. Hernani Resumo Mecanismos de Sincronismo Exclus~ao

! Prof. Hernani

Resumo Mecanismos de Sincronismo

Exclusao Mutua Algorıtmica

O mesmo sucedera a tarefa T1 quando se voltar a executarpois ficara em ciclo na instrucao while(trinco t2==FECHADO).

Estamos assim perante uma situacao na qual a decisao deentrada na seccao crıtica se prolonga indefinidamente.

Esta situacao denomina-se interblocagem.

Hernani Costa [email protected]

TGPSI 09/12 Sistemas Operativos Modulo 5

Page 30: Arquitetura de Sistemas Operativos - Universidade …hpcosta/so/soMod5BAula4.2.pdfTGPSI 09/12 Sistemas Operativos M odulo 5! Prof. Hernani Resumo Mecanismos de Sincronismo Exclus~ao

! Prof. Hernani

Resumo Mecanismos de Sincronismo

Exclusao Mutua Algorıtmica

Portanto, esta solucao tem o seguinte problema:

O segundo requisito - progresso - nao e cumprido.

Uma vez que a solucao antes apresentada nao resolve oproblema da seccao crıtica de forma satisfatoria, uma outrasolucao e apresentada na figura seguinte.

Hernani Costa [email protected]

TGPSI 09/12 Sistemas Operativos Modulo 5

Page 31: Arquitetura de Sistemas Operativos - Universidade …hpcosta/so/soMod5BAula4.2.pdfTGPSI 09/12 Sistemas Operativos M odulo 5! Prof. Hernani Resumo Mecanismos de Sincronismo Exclus~ao

! Prof. Hernani

Resumo Mecanismos de Sincronismo

Exclusao Mutua Algorıtmica

Quarta tentativa de solucao algorıtmica para o problemada seccao critica

Hernani Costa [email protected]

TGPSI 09/12 Sistemas Operativos Modulo 5

Page 32: Arquitetura de Sistemas Operativos - Universidade …hpcosta/so/soMod5BAula4.2.pdfTGPSI 09/12 Sistemas Operativos M odulo 5! Prof. Hernani Resumo Mecanismos de Sincronismo Exclus~ao

! Prof. Hernani

Resumo Mecanismos de Sincronismo

Exclusao Mutua Algorıtmica

O algoritmo baseia-se na existencia de um trinco (trinco vez)cujo valor varia de forma a permitir que as tarefas executem aseccao crıtica alternadamente, uma apos a outra; o valoridentifica a tarefa que pode executar a seccao crıtica.

O racional desta solucao e evitar as duas operacoes de teste eatribuicao que, por nao serem atomicas, permitem aintercalacao das tarefas.

Hernani Costa [email protected]

TGPSI 09/12 Sistemas Operativos Modulo 5

Page 33: Arquitetura de Sistemas Operativos - Universidade …hpcosta/so/soMod5BAula4.2.pdfTGPSI 09/12 Sistemas Operativos M odulo 5! Prof. Hernani Resumo Mecanismos de Sincronismo Exclus~ao

! Prof. Hernani

Resumo Mecanismos de Sincronismo

Exclusao Mutua Algorıtmica

Apesar da exclusao mutua ser assegurada e de nao introduzirinterblocagem, a solucao enferma de um defeito obvio: astarefas apenas poderao aceder alternadamente a seccaocrıtica.

Se a tarefa T1 tiver necessidade de aceder repetidamente aosdados protegidos pela seccao crıtica, deve esperar sempre porum acesso da tarefa T2.

Hernani Costa [email protected]

TGPSI 09/12 Sistemas Operativos Modulo 5

Page 34: Arquitetura de Sistemas Operativos - Universidade …hpcosta/so/soMod5BAula4.2.pdfTGPSI 09/12 Sistemas Operativos M odulo 5! Prof. Hernani Resumo Mecanismos de Sincronismo Exclus~ao

! Prof. Hernani

Resumo Mecanismos de Sincronismo

Exclusao Mutua Algorıtmica

Assim, devido a necessidade de alternancia, caso a tarefa T2se bloqueie fora da seccao crıtica, T1 fica impedida deexecutar a seccao crıtica no futuro, e vice-versa.

Adicionalmente, na ausencia de contencao, se a tarefa T1quiser entrar na seccao crıtica, nao o conseguira fazer de umaforma eficiente, pois tera de esperar que T2 execute a seccaocrıtica.

Hernani Costa [email protected]

TGPSI 09/12 Sistemas Operativos Modulo 5

Page 35: Arquitetura de Sistemas Operativos - Universidade …hpcosta/so/soMod5BAula4.2.pdfTGPSI 09/12 Sistemas Operativos M odulo 5! Prof. Hernani Resumo Mecanismos de Sincronismo Exclus~ao

! Prof. Hernani

Resumo Mecanismos de Sincronismo

Exclusao Mutua Algorıtmica

Portanto, esta solucao tem os seguintes problemas:

O segundo requisito - progresso - nao e cumprido;O quarto requisito - eficiencia - nao e cumprido.

Hernani Costa [email protected]

TGPSI 09/12 Sistemas Operativos Modulo 5

Page 36: Arquitetura de Sistemas Operativos - Universidade …hpcosta/so/soMod5BAula4.2.pdfTGPSI 09/12 Sistemas Operativos M odulo 5! Prof. Hernani Resumo Mecanismos de Sincronismo Exclus~ao

! Prof. Hernani

Resumo Mecanismos de Sincronismo

Exclusao Mutua Algorıtmica

Em conclusao, como se pode ver pelos exemplos antesdescritos, uma aproximacao menos cuidada ao problema daseccao crıtica apresenta varias lacunas a luz dos requisitosanteriormente enunciados.

O mesmo nao se passa com as solucoes algorıtmicas que seraoapresentadas na proxima aula...

Hernani Costa [email protected]

TGPSI 09/12 Sistemas Operativos Modulo 5

Page 37: Arquitetura de Sistemas Operativos - Universidade …hpcosta/so/soMod5BAula4.2.pdfTGPSI 09/12 Sistemas Operativos M odulo 5! Prof. Hernani Resumo Mecanismos de Sincronismo Exclus~ao

! Prof. Hernani

Resumo Mecanismos de Sincronismo

Exclusao Mutua Algorıtmica

Avaliacao - Trabalho Teorico-Pratico 11

Escreva um pequeno texto onde comenta os problemasdescritos anteriormente.

O texto devera: ser elaborado em grupo; enviado por email aoprofessor no final da aula; e devera conter entre 100 a 300palavras.

Hernani Costa [email protected]

TGPSI 09/12 Sistemas Operativos Modulo 5