aula 16 - threads exercicio pratico

22
7/25/2019 Aula 16 - Threads Exercicio Pratico http://slidepdf.com/reader/full/aula-16-threads-exercicio-pratico 1/22 1 Memoria Virtual Sistemas Operacionais Professor Ms c . Romulo Beninca Técnico em Informática Sincronização e Comunicação entre Processos

Upload: romulo-beninca

Post on 27-Feb-2018

225 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Aula 16 - Threads Exercicio Pratico

7/25/2019 Aula 16 - Threads Exercicio Pratico

http://slidepdf.com/reader/full/aula-16-threads-exercicio-pratico 1/22

1

Memoria Virtual

Sistemas Operacionais

ProfessorMs c. Romulo Beninca

Técnico em Informática

Sincronização e Comunicação entre Processos

Page 2: Aula 16 - Threads Exercicio Pratico

7/25/2019 Aula 16 - Threads Exercicio Pratico

http://slidepdf.com/reader/full/aula-16-threads-exercicio-pratico 2/22

2

Sistemas Operacionais

Contextualização

Com o surgimento da multiprogramação passou a ser possível a execução

de múltiplos tarefas simultaneamente, aplicações concorrentes” . Com a

utilização de aplicaç!es concorrentes foi natural a necessidade de

compartil"amento de recursos entre as tarefas, recursos como #isco,

ar$uivos, memoria, componentes de soft%are ou vari&veis.

'o entanto $uando dois fluxos de execução manipulam simultaneamente

um mesmo recurso surgem pro(lemas de comunicação, e pode ser

necess&rio um mecanismo de sincronização para controlar o acesso aorecurso compartil"ado entre os fluxos de execução )processos, t"reads*.

Page 3: Aula 16 - Threads Exercicio Pratico

7/25/2019 Aula 16 - Threads Exercicio Pratico

http://slidepdf.com/reader/full/aula-16-threads-exercicio-pratico 3/22

3

Introdução

•  A comunicação entre processos é uma necessidade:

o Num pipeline entre processos, a saída do primeiro. deve ser passada para o

segundo, etc.

o

Preerencialmente, o sistema deve ser estruturado e não !aseado eminterrupç"es.

• #$ 3 %uest"es principais:

o  A passagem de inormaç"es de um processo para outro&

o 'vitar %ue um processo i%ue no camin(o do outro, atrapal(ando)se mutuamente&o *espeito a depend+ncias.

3

Page 4: Aula 16 - Threads Exercicio Pratico

7/25/2019 Aula 16 - Threads Exercicio Pratico

http://slidepdf.com/reader/full/aula-16-threads-exercicio-pratico 4/22

Sistemas Operacionais

Introdução

•  Algo -nteressante é %ue esses 3 itens se aplicam a t(reads tam!ém:

o  A passagem de inormaç"es é mais simples, $ %ue as t(reads do mesmo processo

compartil(am o mesmo espaço de endereçamento&

/e estiverem em processos dierentes, o pro!lema cai na comunicação entre

processos.

o 'vitar %ue as t(reads se atrapal(em mutuamente é o mesmo pro!lema e tem as

mesmas soluç"es&

o 0ma se%u+ncia apropriada tam!ém pode ser eigida em t(reads.

4

Page 5: Aula 16 - Threads Exercicio Pratico

7/25/2019 Aula 16 - Threads Exercicio Pratico

http://slidepdf.com/reader/full/aula-16-threads-exercicio-pratico 5/22

Sistemas Operacionais

+xemplo de aplicação concorrenterocessos e -u( processos

No 'emplo dois processos tentam

acessar os dados em um !uer

simultaneamente, entretanto.

'm am!os os casos os processos

terão %ue aguardar até %ue o !uer

estea pronto para realiar sua

operação.

4s mecanismos implementados %ue

garantem os acessos aos recursos

compartil(ados são c(amados de

mecanismos de sincroniação.

Page 6: Aula 16 - Threads Exercicio Pratico

7/25/2019 Aula 16 - Threads Exercicio Pratico

http://slidepdf.com/reader/full/aula-16-threads-exercicio-pratico 6/22

5

Sistemas Operacionais

 A primeira notação para concorr+ncia oram os comandos 64*7 e 84-N,introduidos por 9ona; <1=53> e ?ennis e @an #orn <1=55>.

4 64*7 desmem!ra um novo processo, a partir de A. ' 8oin é a marcaçãode um ponto onde A somente continua apBs encerramento de . Apesar de similares ao comando 64*7 vistos em aula, não são as mesmascoisas.

ormas de representar a concorr/ncia em programas0 Mecanismo para representação de Concorr/ncia entre programas

Page 7: Aula 16 - Threads Exercicio Pratico

7/25/2019 Aula 16 - Threads Exercicio Pratico

http://slidepdf.com/reader/full/aula-16-threads-exercicio-pratico 7/22

C

Sistemas Operacionais

ormas de representar a concorr/ncia em programas1 Mecanismo para representação de Concorr/ncia entre programas

4utro mecanismo para representação de concorr+ncia oi o proposto por ?iDsttra<1=5>. 4 mecanismo proposto possi!ilita uma se%uencia de comandos, entreinstruç"es PA*'E-N e PA*'N?, seam eecutados em paralelo.9om esta notação poderia se eecutar uma se%uencia de comandos em paralelo.PA*'E-N  6atBrial <1FFF>&

  6atBrial <2FF>&  6atorian <n>&PA*'N?&

Page 8: Aula 16 - Threads Exercicio Pratico

7/25/2019 Aula 16 - Threads Exercicio Pratico

http://slidepdf.com/reader/full/aula-16-threads-exercicio-pratico 8/22

G

Sistemas Operacionais

Compreendendo ro(lemas de Compartil"amento de Recursoro(lema de concorr/ncia )+xemplo 0*

4 primeiro pro!lema consiste no acesso a um recurso compartil(ado , por mHltiplos processos, em %ue o

acesso deveria eclusivo.

Para eempliicar esse pro!lema penso no programa<conta_corrente)  %ue manipula contas dos clientes do

!anco. -nicialmente le o ar%uivo com contas <ark_contas),e então segue lendo o valor a ser operado na conta,

e por im grava o saldo inal.

 Aparentemente o programa unciona !em, mas %uando eecutamos esse programa duas ou mais vees simultaneamente, para

realiar operaç"es so!re um mesmo cliente temos:

Page 9: Aula 16 - Threads Exercicio Pratico

7/25/2019 Aula 16 - Threads Exercicio Pratico

http://slidepdf.com/reader/full/aula-16-threads-exercicio-pratico 9/22

=

Sistemas Operacionais

4utro pro!lema seria a concorr+ncia seria, voc+ eecutar em paralelo dierentes operaç"esso!re uma mesma vari$vel<recurso>.

Pense %ue voc+ tem *I1FFF reais em sua carteira, uma pin(a de contas <pagar, rece!er

e tam!ém operaç"es de empréstimo a terceiros>.

Para gan(ar tempo voc+ resolver paraleliar, distri!uindo as operaç"es entre duas pessoas,

%ue não se comunicam durante o processo. 'ntão voc+ repassa o valor %ue voc+ possui

atualmente, para cada um deles, e uma ração das contas, e por im pede a eles %ue anotem

o valor.

Jual deles dar$ a resposta corretaK

Compreendendo ro(lemas de Compartil"amento de Recursoro(lema de concorr/ncia )+xemplo 1*

K

K

Page 10: Aula 16 - Threads Exercicio Pratico

7/25/2019 Aula 16 - Threads Exercicio Pratico

http://slidepdf.com/reader/full/aula-16-threads-exercicio-pratico 10/22

1F

Sistemas Operacionais

'sse pro!lema é similar a voc+ em paralelo dierentes operaç"es so!re uma mesma

vari$vel <recurso>.

0m processo A

?ois processos A e realiam operaç"es concorrentes em uma mesma vari$vel oprograma A soma e /u!trai.

/eria *ao$vel pensar %ue no inal o valor osse 2 não éK

Compreendendo ro(lemas de Compartil"amento de Recursoro(lema de concorr/ncia )+xemplo 1*

-sso é c(amado de condição de corrida

Page 11: Aula 16 - Threads Exercicio Pratico

7/25/2019 Aula 16 - Threads Exercicio Pratico

http://slidepdf.com/reader/full/aula-16-threads-exercicio-pratico 11/22

11

Sistemas Operacionais

ormas de tratamento de condição de corrida,+xclusão Mutua

• 2 +xclusão mutua 3 a solução mais simples para impedir os

pro(lemas apresentados, a ideia (&sica 3 dar exclusividade de

acesso e fazer com $ue os demais processos aguardem para

utilização do recurso.

• 2 exclusão mutua deve afetar apenas os processos

concorrentes, somente $uando um deles estiver acesso ao

recurso compartil"ado. 2 parte do c4digo do programa onde 3

feito o acesso ao recurso compartil"ado de uso exclusivo 3

c"amada região crítica do código.

Page 12: Aula 16 - Threads Exercicio Pratico

7/25/2019 Aula 16 - Threads Exercicio Pratico

http://slidepdf.com/reader/full/aula-16-threads-exercicio-pratico 12/22

12

Sistemas Operacionais

ormas de tratamento de condição de corrida,+xclusão Mutua

Page 13: Aula 16 - Threads Exercicio Pratico

7/25/2019 Aula 16 - Threads Exercicio Pratico

http://slidepdf.com/reader/full/aula-16-threads-exercicio-pratico 13/22

13

Sistemas Operacionais

Mecanismo para implementação de +xclusão mutua em 5ard%are

• 2 exclusão mutua pode ser implementada em 5ard%are pormeio de um mecanismo pelos seguintes mecanismos.

• #esa(ilitar interrupç!es.

+ssa solução apresenta limitaç!es, primeiramente em relação amultiprogramação $ue fica praticamente invia(ilizada, e tam(3mpelo uso de sistemas computacionais com múltiplos núcleos.

2pesar da limitação 3 útil, para trec"os de c4digo do pr4prio -6.

Page 14: Aula 16 - Threads Exercicio Pratico

7/25/2019 Aula 16 - Threads Exercicio Pratico

http://slidepdf.com/reader/full/aula-16-threads-exercicio-pratico 14/22

1

Sistemas Operacionais

Mecanismo para implementação de +xclusão mutua em 5ard%are

• 2 exclusão mutua pode ser implementada em 5ard%are pormeio de um mecanismo pelos seguintes mecanismos.

• 7nstrução test-and-set

Page 15: Aula 16 - Threads Exercicio Pratico

7/25/2019 Aula 16 - Threads Exercicio Pratico

http://slidepdf.com/reader/full/aula-16-threads-exercicio-pratico 15/22

1

Sistemas Operacionais

Mecanismo para implementação de +xclusão mutua em -oft%are

• rimeiro 2lgoritmo

Page 16: Aula 16 - Threads Exercicio Pratico

7/25/2019 Aula 16 - Threads Exercicio Pratico

http://slidepdf.com/reader/full/aula-16-threads-exercicio-pratico 16/22

15

Sistemas Operacionais

-em&foro Bin&rio ou Mutex

Page 17: Aula 16 - Threads Exercicio Pratico

7/25/2019 Aula 16 - Threads Exercicio Pratico

http://slidepdf.com/reader/full/aula-16-threads-exercicio-pratico 17/22

1C

Sistemas Operacionais

+strutura de um Monitor

Page 18: Aula 16 - Threads Exercicio Pratico

7/25/2019 Aula 16 - Threads Exercicio Pratico

http://slidepdf.com/reader/full/aula-16-threads-exercicio-pratico 18/22

1G

Sistemas Operacionais

8tilização de t"reads vs rocesso

Page 19: Aula 16 - Threads Exercicio Pratico

7/25/2019 Aula 16 - Threads Exercicio Pratico

http://slidepdf.com/reader/full/aula-16-threads-exercicio-pratico 19/22

1=

Sistemas Operacionais

9ransmissão de mensagem

Page 20: Aula 16 - Threads Exercicio Pratico

7/25/2019 Aula 16 - Threads Exercicio Pratico

http://slidepdf.com/reader/full/aula-16-threads-exercicio-pratico 20/22

2F

Sistemas Operacionais

Comunicação #ireta e 7ndireta

Page 21: Aula 16 - Threads Exercicio Pratico

7/25/2019 Aula 16 - Threads Exercicio Pratico

http://slidepdf.com/reader/full/aula-16-threads-exercicio-pratico 21/22

21

Sistemas Operacionais

#ea:lo: ; +spera Circular

Page 22: Aula 16 - Threads Exercicio Pratico

7/25/2019 Aula 16 - Threads Exercicio Pratico

http://slidepdf.com/reader/full/aula-16-threads-exercicio-pratico 22/22

Sistema Operacionais

MACHADO, FRANCIS BERENGER. Arquitetura de de

Sistemas Operacionais. LTC, 2007.

Referências Bibliográficas