[Música] olá bom pra aula 13 de sistemas operacionais onde vai tratar dos problemas com a comunicação de processos eles vários problemas é que ocorrem com a comunicação de processo que a gente viu mas os problemas que a gente vai ver nesta aula de hoje são os problemas clássicos que ajudam a modelar as soluções é pra programação concorrente na aula passada visitando aqui na orla passado este falou sobre passagens mensagem que seria o mecanismo para realizar a sincronização de processos cujos processos encontram-se e máquinas diferentes soluções de sincronização de processos usando semáforos e monitores variáveis lokes
a desabilitação da interrupção espírito alternância onde todos esses mecanismos são mecanismos voltados pra quê voltados para a computação local num único computador à passagem mensagem que a gente viu na aula passada ela trata o que ela trata de fazer a sincronização de processos cujos processos encontram-se máquinas diferentes ea gente viu aí várias soluções como produtor e consumidor como ele podem enviar mensagens um do outro em um ambiente uma linguagem c assim como um ambiente uma linguagem java através do rn hoje então a gente vai ver esses problemas clássicos com a comunicação de processos que normalmente
são estudados aí pra ajudar a criar e recriar os requisitos de uma boa solução para a comunicação e sincronização de processos só lembrando que a importância de programação concorrente paralela em virtude de que os o hardware é hoje ele tem suporte para isso estão vendo aí os hardwares de multi core que são largamente utilizados largamente comercializando só para vocês terem uma idéia a plataforma da apple desde o ano de 2006 2006 2005 ela só produz plataformas múltiplas ou seja isso quer dizer que a gente tem o que a gente tem aí uma suporte de rádio
por paralelismo mas se vocês forem olhar os códigos e os últimos códigos né que o amou a maioria dos cortes que vocês têm desenvolvido vocês vão perceber que os códigos são estritamente seqüenciais são exatamente seqüenciais eles não fazem uso do paralelismo que se encontra o que é que se encontra com suporte nível derrota por isso da importância de se criar aí uma programas softwares paralelas e concorrentes para usufruir o máximo que máximo de recurso que existe um nível de marketing por isso dessa importância aí pra desenvolver códigos paralelos mas porque o pessoal deixa de desenvolver
códigos para lá porque existe o que existe os problemas e um dos problemas são esses que a gente tá problemas é um som códigos que necessitam de que de sincronização também tem dois processos rodando é mais difícil e sincronizar esse processo de forma que o resultado possa ser o mesmo em contrapartida há suporte de hardware mas como é difícil de desenvolver o edifício e sincronizar e organizar esses processos muita gente acaba optando por criar códigos seqüenciais e da acabam não usufruindo todo o suporte de máquina que existe no seu sistema computacional bom agora os três
clássicos que ajudam então né modelar e eu um software para alan primeiramente vamos pro produtor e consumidor e produtor e consumidor a gente já tinha visto anteriormente recapitula um pouco para saber o que esse é o problema tudo foi consumido uma vez que esse produtor e consumidor é um problema que ajuda o ajudou a modelar os principais protocolos da internet por isso a importância o que a gente estuda aqui estamos operacionais são de extrema importância para que vocês possam estudar e verificar como o sistema próxima e construído para assim vocês construíram que construir seus próprios
sistemas que vocês vão desenvolver aí no futuro a gente desenvolveu eu desenvolvi junto com com o orientador de doutorado uma plataforma que utilizou que utilizou os mecanismos e as estruturas existentes no sistema operacional então o estudo de sistemas operacionais o estudo nesses problemas certamente o que certamente vão ajudar o que vão ajudar vocês a modelar e o que é modelar em os vossos próprios sistemas e tentar aprender o que tentar aprender com os erros dos outros é uma forma inteligente de desenvolver e desenvolver de uma maneira e mais acertada então o produtor e consumidor ele
tem duas entidades entidades produtores entidades consumidores a sincronização ela deve ocorrer onde ela deve ocorrer em função desse bosta aqui o protocolo o protocolo ele tem o que ele tenha um mecanismo também quem chama de que a internet é um mecanismo chamado de controle de controle de congestionamento esse controle de congestionamento é justamente pra que para controlar o boss ter do lado do produtor do lado do produtor e também do consumidor então essa importância desse problema do produtor e consumidor sincronizar o que sincronizar o bosta de maneira que o buffer não fique cheio e se
ficar cheio produtores deve dormir silva vai ficar vazio o consumidor então tem que dormir eo produtor e também que quer produzir mais itens de maneira que de maneira que os dados possam ser colocados nesse banco então esse é essencialmente na como eu falo aqui assim as duas entidades um consome e outro vai então é produzir os dados do banco então esse é o primeiro o primeiro problema foi bastante breve mas que é um problema que a gente já tinha falado e lidea em aulas anteriores vai voltar então agora para o segundo problema são três é
o problema do produtor e consumidor o jantar dos filósofos e o problema dos leitores e dos escritores são três problemas que a gente vai ver então nessa aula de hoje o segundo problema o problema é o problema do jantar dos filósofos nesse problema que a gente tem um cenário onde sakineh está e existe o que ele tem cinco haxixe e cinco esse é o problema que a gente tem dentro de si os filósofos a gente tem um prato e um prato com macarrão e cada um deles obviamente precisa de dois haxixe macarrão vai precisar de
dois apenas dois filósofos vão poder comer adequadamente esse fosse um processo que os processos um dado compartilhada um recurso compartilhado que seria o que seriam esses ache daqui então esse hashis aqui seria o quê seria região crítica à região crítica e vai ocorrer aqui um problema que a gente chama de condição de corrida condição de corrida para que cada um pegue um par de haxixe só que não tem um par de haxixe suficiente e outra coisa ninguém pode morrer de fome então eles devem sincronizar de maneira que de maneira que cada filósofo então possa comer
o seu prato de haxixe então esse é o cenário do jantar dos filósofos que a gente vai então a gente pode resolver esse problema e esse problema de novo também é modelado na área de redes de computadores para modelar como é que há um dado é pode ser trafegado dentro de um protocolo por exemplo da ethernet gigabit ethernet muita gente ouve falar então esse esse problema ajuda a modelar é o uma solução de transição vai ver os filósofos que eles vão ser colocados pra comer mais obviamente eles têm que vão ficar alternados entre comer e
pensar então esse é o procedimento vai precisar fazer alternadamente e pega um hashi por vez se conseguir pegar os dois eles vão comer mas eu vou evitar que esses filósofos então fiquem bloqueados tem que fazer o que de forma que possam comer e não posso também são frei de iluminação tem que haver aqui o que tem que haver um compartilhamento recurso do haxixe para que eles não possam então sofrer denominação tem duas tarefas primeiro eles vão ter que alternar entre comer pra pensar é vai pensar e vai depois passo 2 pegar os hashim pensar um
pouco né filosofa um pouco depois filosofar um pouco ele vai pegar o peixe pega o hashi do lado direito e vai dar o que vai dar um lock no lado direito do lado direito pega o hashi do lado esquerdo e dá um lock no esquerda claro pessoal isso disponível e depois de ter pego esses ache que ele vai fazer ele vai comer o quarto passo depois de comer ele vai deixar o cache de forma o que de forma que outras e então venham que venham a comer o que estão aí sendo servidos então há um
ciclo mais ou menos esse aqui que vocês estão vendo ele vai primeiro pensar por um momento depois de pensar por um momento ele vai pegar os hashis depois ele vai comer e depois de um tempo ele vai colocar os hashis de novo e volta de novo ciclo que volta de novo ciclo de pensão ele pode ser modelado dessa forma aqui pensa um pouco pega os hashis pega o hashi direito e depois pega o hashi esquerdo por um determinado tempo e depois ele vai dar o que vai a um lote vai deixar os hashis da mesa
de forma que os hashis lado esquerdo e direito de forma que eles possam ser disponibilizados para o próximo seria a solução a solução anterior ela vai funcionar certamente ela vai funcionar mas só vai funcionar por um número limitado de pessoas e pode levar o que pode levar quem te ama dilma a inação alguém pode morrer de fome porque se depender da sincronização determinado filósofo que seja um pouco mais é parado ele pode deixar o que pode deixar de técnico conseguir pegar os hashis e nunca vai comer nesse cenário a gente fala que tem o que
que tem um problema e dinamização então essa solução aqui ela não vai a solução anterior ela pode e vai funcionar mas ela pode trazer dois problemas o primeiro problema seria o problema do impasse que é um assunto das próximas aulas a gente vai estudar onde todos os filósofos pega um único rachão mesmo tempo e ninguém consegue comer então a gente tem cinco filósofos e 5 a x5 pegarem sempre único haxixe ninguém vai conseguir pegar a gente vai ter o que vai ter o impasse aí pra lá que eu vou o prato de macarrão aí possa
ser servido por todos os filósofos então essa solução ipod vai funcionar mais tse e vamos até a probabilidade de trazer o problema do impasse e da inação então é uma solução totalmente que é totalmente válido então a gente vai para uma outra solução que teria a solução de usar o que de usar uma exclusão mútua de si é desses ache que queria exclusão motor exclusão multa permite que apenas uma única o que um único processo nesse caso o único filósofo possa então fazer todas as tarefas aqui certamente ela vai funcionar vai funcionar por uma única
pessoa esse é o único problema e se essa solução de usar a exclusão mutual através da premissa do ap ae do das chamadas as primitivas aqui é que ela vai permitir que apenas um único processo único filósofo então possa comer o prato tal de cada vez bom então é porque a gente estuda esse problema a gente é isso esse problema porque ele é útil pra modelar os processos que competem por acesso exclusivo a um número de recursos limitados a gente utiliza então uma solução boa para isso é preciso amputados filósofos como a gente comentou aqui
né seria o uso 22 semáforos é uma vez que a exclusão mútua ela chega a funcionar mas só vai funcionar por uma única para o único filósofo de cada vez é importante também ressaltar que o protocolo da internet que não tinha citado no início da aula ela usa parte dessa solução para que parte dessa solução para modelar o envio de dados na rede então aquilo que é o qual seria o grande é o grande problema do jantar aqui dos filósofos filósofo pega um hashi de cada vez delta te de tempo o filósofo todo o país
a china sempre vai haver sempre vai haver o que a gente chama de um toque a mesma coisa ocorre a rede são vários processos que competem por que competem para enviar dados no meio de comunicação no caso aqui está falando da internet aqui né internet no ambiente cabeado ora se todo mundo tenta falar ao mesmo tempo nunca ninguém vai conseguir falar então o que a gente faz aqui delta te aqui diferente o delta te randomizado usando que usando a aleatoriedade então a gente dá um número aleatório ou seja 34 processos querem falar na internet ao
mesmo tempo a gente dá a quem chama de um backup time net um tempo e de recuo para que cada é cada processo possa falar dentro de um tempo sorteado de tempo então isso vem o que isso veio modelado também por esse é por esse problema do jantar dos filósofos onde cada filósofo ele podia o que ele podia pegar o seu hashino determinado período de tempo só que se todos pegaram a cada cinco segundos ninguém nunca vai conseguir comer espaguete então esse seria o a segunda o segundo problema então a gente vai avançar aqui para
o terceiro problema que seria o problema dos leitores e escritores o problema dos leitores e escritores n modelo que modela acesso a uma base de dados de forma que existem leitores e escritores então leitor obviamente com o próprio não está dizendo mais apenas lei dados gritou aqui a gente está assumindo que ele só vai escrever dados não têm esses dois papéis bem o que é bem discretos bem bem é delimitados 82 processos aqui o ponto chave aqui vocês sabem banco de dados se um processo necessita escrever a base nenhuma outra entidade pode estar o que
pode estar realizando um acesso a ela eu quero dizer com isso se existe um processo que quer escrever na base de dados nem mesmo um processo para fazer a leitura pode estar a sessão ele tem que tá o que ele tem que estar barrado se tentar entrar ele vai ser o que mais impedido porque porque é o banco de dados está sendo atualizado naquele momento então esse é o cenário dos leitores e escritores e então a gente tem aqui uma um cenário onde os escritores devem bloquear a base de dados e dos campos escritores sentar
na base da desbloquear e os eleitores leitores a gente tem uma a uma a uma as regras mais software se a base estiver desbloqueado então que quito leitão vai fazer esse foi o primeiro leitor ele deve é bloqueado para quem apenas para os escritórios se hoje já houver um outro leitor la basta usar a base ou seja para leitura podem ter o n processo leitores pra lei a base de dados mas sim trata de se tentar entrar uma base se tentar entrar um processo de escrita esse processo de crise esse processo escritório fica bloqueado só
que tem um problema é um problema que eu cito aqui esse problema e trazer o que vai trazer pode trazer animação e na missão que seria a inanição essa emissão seria no processo em que o escritor chega e ele fica bloqueado ao escritor tentei entrar aqui fica bloqueado porém não passa não pára de chegar o que não param de chegar outros leitores então a base de dados tais à base de dados aqui ela fica o que ela fica cheia de eleitores apenas leitores aqui se chega leitores o escritor nunca vai poder o que nunca vai
poder entrar então o que a gente tem que fazer tem que fazer uma forma diferente né de evitar que o processo escritor entre o que entre na missão uma solução seria suspender quando chegam ao escritor a idéia seria o que seria suspender a entrada dos próximos processos eleitores de forma aqui o escritor então ele possa entrar e fazer a sua escrita então repetir aqui em três chegou escritor e já tiver leitores esses eleitores podem que podem terminar sua execução entretanto se chegar se chegar mais um leitor esses eleitores só vai poder entrar no nossa base
de dados após o que após o processo de escrita entrai atualizar o banco de dados dessa forma eu evito que eu evito problema de inanição por esse problema do do escritor de forma que o escritor também possa ter sua vez para realizar a sua atualização nesta base de dados concluindo em the view vemos hoje os problemas com comunicação haidê processo três problemas clássicos um do produtor e consumidor o segundo foi o problema do jantar dos filósofos o terceiro seria o dos processos leitores descrito é escritórios né na próxima aula então a gente vai ver vai
começar a estudar o problema aqui dos impactos que são também problemas oriundos da comunicação de processo muito obrigado [Música] o [Música] [Música] tudo [Música] [Música]