Aula 16 - Threads Exercicio Pratico
-
Upload
romulo-beninca -
Category
Documents
-
view
224 -
download
0
Transcript of 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
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*.
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
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
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.
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
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?&
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:
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
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
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.
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
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.
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
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
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
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
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
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
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
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
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