Baixe o app para aproveitar ainda mais
Prévia do material em texto
SINCRONIZAÇÃO ENTRE PROCESSOS WINDOWS 2000 ALUNO: LUIS FILIPE ESPINOSA BRILHANTE MATRÍCULA: 202102464382 Em sistema multiprogramável com um único processador, os processos alternam sua execução a partir de critérios de escalonamento estabelecidos pelo Sistema Operacional. Mesmo sem paralelismo na execução das instruções, ocorre significativo ganho de desempenho. Em sistemas multiprocessados, as vantagens são ainda maiores graças a possibilidade de paralelismo na execução das instruções. É comum que processos de uma aplicação concorrente compartilhem recursos do sistema, como arquivos, registros, dispositivos de E/S e áreas de memória. Porém, o compartilhamento de recursos entre os processos pode trazer situações indesejáveis, capazes até de comprometer a execução das aplicações. Muitas vezes, em uma aplicação concorrente, é necessário que processos se comuniquem entre si. Essa comunicação pode ser implementada de diversos mecanismos, como variáveis compartilhadas na memória principal ou troca de mensagens. Sendo assim, é estritamente necessário que os processos tenham sua execução sincronizada pelo sistema operacional. Onde dois ou mais processos compartilham um mesmo recurso, devem existir mecanismos de controle para evitar problemas. Esses problemas são conhecidos como condições de corrida (race conditions). São falhas num sistema ou processo em que o resultado é inesperadamente dependente da sequência ou sincronia de outros eventos. Exclusão Mútua A solução mais simples para evitar que os problemas de compartilhamento ocorram é impedir que dois ou mais processos acessem um mesmo recurso simultaneamente. Para isso, enquanto um processo estiver acessando determinado recurso, todos os demais processos que queiram acessá-lo deverão aguardar pelo fim da utilização do recurso. Essa ideia de exclusividade de acesso é chamada de exclusão mútua (mutual exclusion). Regiões Críticas A exclusão mútua deve afetar apenas os processos concorrentes somente quando um deles estiver fazendo acesso ao recurso compartilhado. A parte do código do programa onde é feito o acesso ao recurso compartilhado é denominada região crítica (critical region). Se for possível evitar que dois processos entre em suas regiões críticas ao mesmo tempo, ou seja, se for garantida a execução mutuamente exclusiva das regiões críticas, os problemas decorrentes do compartilhamento serão evitados. Os mecanismos que implementam a exclusão mútua utilizam protocolos de acesso à região crítica. Toda vez que um processo quiser executar uma instrução de sua região crítica, deverá obrigatoriamente executar antes um protocolo de entrada nesta região. Da mesma forma, ao sair da região crítica um protocolo de saída deverá ser executado. Semáforos É um mecanismo de sincronização proposto por E. W. Dijkstra em 1965, sendo apresentado como um mecanismo de sincronização que permitia implementar, de forma simples, a exclusão mútua e sincronização condicional entre processos. De fato, o uso de semáforos tornou-se um dos principais mecanismos utilizados em projetos de sistemas operacionais e em aplicações concorrentes. Um semáforo é uma variável inteira, não-negativa, que só pode ser manipulada por duas instruções: DOWN e UP. Estas instruções são indivisíveis, isto é, não pode ser interrompida. Semáforos são classificados em dois tipos: • Semáforos binários: chamados de mutexes (mutual exclusion semaphores), só podem assumir valores 0 e 1. Permitem a implementação da exclusão mútua e são utilizados nos casos onde a sincronização condicional é exigida. • Semáforos contadores: podem assumir qualquer valor inteiro positivo, além do 0. Semáforos contadores são úteis quando aplicados em problemas de sincronização condicional onde existem processo concorrentes alocando recursos do mesmo tipo. Windows 2000 Desenvolvido pela Microsoft, o Windows NT surgiu com o objetivo de ser um sistema operacional da década de 90 antenado aos avanços tecnológicos e as exigencias do mercado. Desde o seu lançamento, o W2K teve a preocupação de oferecer suporte a ambientes de rede e distribuídos. Sua evolução, o Windows NT 5.0, comercialmente conhecido como Windows 2000, foi orientada à interoperabilidade com outros sistemas operacionais. A arquitetura do W2K é fortemente inspirada no princípio de micronúcleo. Cada funcionalidade do sistema é oferecida e gerenciada por um único componente do SO. Os demais componentes do SO e todas as aplicações acessam os serviços providos por um determinado componente através de uma interface bem definida. Na teoria, cada módulo pode ser removido, atualizado ou substituído sem a necessidade de alterações nas demais partes do sistema. O W2K possui uma organição em camadas. O SO é dividido em módulos que são dispostos uns sobre os outros em camadas.Cada camada ofereçe um conjunto de serviços à camada superiore só pode usar serviços fornecidos pela camada imediatamente inferior. Outro conceio explorado no W2K é o modelo orientado a objetos. Os recursos do sistema, arquivos, memória e dispositivos físicos são implementados por objetos e manipulados através de métodos associados a esses objetos. O modo Kernel em três grandes módulos: • Hardware abstraction layer (HAL): é um módulo carregável do núcleo. Esse módulo respeita uma interface padrão de serviços, porém possui uma implementação específica para o hardware no qual o SO está executando. Todas as funcionalidades que são dependentes de um determinado hardware são implementadas dentro desse módulo. • Drivers de dispositivos: são outra categoria de módulos carregáveis no núcleo. Eles oferecem, dentro do executivo do SO, uma interface entre o sistema de E/S e o HAL. Tal módulo apresentou uma evolução significativa através do suporte plug and play. • Executivo: Constitui o núcleo operacional do SO. É o módulo responsável por implementar os serviços básicos do W2K. Os principais componentes do executivo são: gerência de objetos, processos, threads, memória virtual, entrada e saída, monitor de segurança e módulo de suporte a Local Procedure Call (LPC). O Windows 2000 possui duas versões: Uma versão para monoprocessadores e outra para multiprocessadores. Com exeção do HAL, que por causa de sua funcionalidade difere de uma arquitetura a outra, apenas um arquivo é diferente entre as versões. Esse arquivo corresponde a implementação do executivo. Todos os demais arquivos que compõem o W2K foram concebidos de forma a serem executados corretamente em qualquer um dos dois sistemas. A diferença básica entre as versões monoprocessador e multiprocessador do executivo está nas operações de sincronizações adicionais necessárias a versão multiprocessador. Outra diferença entre as versões é relacionada ao escalonamento. O Windows 2000 implementa o conceito de processo a partir de dois objetos: objeto processo e objeto thread. O objeto processo é a entidade que corresponde a recursos do sistema como memória, arquivos, etc. O objeto thread constitui uma unidade de trabalho que é executada de forma sequencial e podendo ser interrompida em qualquer ponto. As threads em qualquer processo, inclusive as do executivo do W2K , em máquinas multiprocessadoras, podem ser executadas em qualquer em qualquer processador. O escalonador do W2K atribui uma thread apta a executar para o próximo processador disponível. Múltiplas threads de um mesmo processo podem estar em execução simultaneamente. O escalonador do Windows 2000 é preemptivo com prioridades. Referências: http://walderson.com/site/wp-content/uploads/2014/05/Aula09-Sincronizacao-e- comunicacao-entre-processos.pdf https://www.gsigma.ufsc.br/~popov/aulas/so1/cap7so.html http://lucilia.com.br/Arq/ApostilaSO.pdf https://www.youtube.com/watch?v=v5oEn3UhMVYhttp://www.univasf.edu.br/~andreza.leite/aulas/SO/ProcessosSincronizacao.pdf http://www.professores.uff.br/mquinet/wp- content/uploads/sites/42/2017/08/7.pdf http://www.inf.ufrgs.br/~asc/livro/windows2k.pdf http://www.romulosilvadeoliveira.eng.br/discipli/cad-cbtisa/SO-Jai2002-pagina.pdf http://walderson.com/site/wp-content/uploads/2014/05/Aula09-Sincronizacao-e-comunicacao-entre-processos.pdf http://walderson.com/site/wp-content/uploads/2014/05/Aula09-Sincronizacao-e-comunicacao-entre-processos.pdf https://www.gsigma.ufsc.br/~popov/aulas/so1/cap7so.html http://lucilia.com.br/Arq/ApostilaSO.pdf https://www.youtube.com/watch?v=v5oEn3UhMVY http://www.univasf.edu.br/~andreza.leite/aulas/SO/ProcessosSincronizacao.pdf http://www.professores.uff.br/mquinet/wp-content/uploads/sites/42/2017/08/7.pdf http://www.professores.uff.br/mquinet/wp-content/uploads/sites/42/2017/08/7.pdf http://www.inf.ufrgs.br/~asc/livro/windows2k.pdf http://www.romulosilvadeoliveira.eng.br/discipli/cad-cbtisa/SO-Jai2002-pagina.pdf
Compartilhar