Capítulo 3 Programação Concorrente. Nunca encontrei um homem tão ignorante que eu não pudesse aprender algo com ele.
|
|
- Júlio Carrilho Tuschinski
- 6 Há anos
- Visualizações:
Transcrição
1 Universidade Federal de Itajubá UNIFEI Instituto de Engenharia de Sistemas e Tecnologias da Informação IESTI CCO 004 Sistemas Operacionais Prof. Edmilson Marmo Moreira 3.1 Introdução Capítulo 3 Programação Concorrente Nunca encontrei um homem tão ignorante que eu não pudesse aprender algo com ele. Galileu Galilei A Concorrência existe quando, em um determinado instante, dois ou mais processos começaram a sua execução, mas não terminaram. Ela pode existir com um único processador, quanto em sistemas com múltiplos processadores. Afirmar que processos estão sendo executados em paralelo implica na existência de mais de um processador, ou seja, paralelismo (paralelismo físico) ocorre quando há mais de um processo sendo executado no mesmo intervalo de tempo. Quando vários processos são executados em um único processador, sendo que somente um deles é executado a cada vez, tem-se um pseudo-paralelismo (paralelismo lógico). Com base nas definições, é possível definir três tipos de estilo de programação dentro da computação: Programação Seqüêncial: caracteriza-se pela execução de várias tarefas uma após a outra; Programação Concorrente: caracteriza-se pela iniciação de várias tarefas, sem que as anteriores tenham necessariamente terminado; Programação Paralela: caracteriza-se pela iniciação e execução das tarefas em paralelo (sistemas multiprocessadores).
2 Exemplo de Algoritmos para a preparação de um jantar: Seqüencial: Abrir o refrigerador Se estiver vazio Então vá ao restaurante Senão Preparar Salada Preparar Carne Preparar Sobremesa Comer. Sistemas Operacionais Notas de Aula Cap.03-2 Concorrente: Abrir o refrigerador Se estiver vazio Então vá ao restaurante Senão lavar a alface Colocar de molho Temperar a carne colocar a carne para cozinhar preparar a sobremesa escorrer a alface temperar a alface retirar a carne do forno Comer. Paralelo: Fernando: Abrir o refrigerador Se estiver vazio Então vá ao restaurante Senão Temperar a carne Preparar a sobremesa Comer. Marina: Se estiver vazio Então Vá ao restaurante Senão Preparar a Salada colocar a carne para Cozinhar Retirar a carne do Forno Comer.
3 Sistemas Operacionais Notas de Aula Cap.03-3 Paralelismo Físico Processo 1 Processos Processo 3 Processo 2 Tempo Paralelismo Lógico P1 P1 Processos P2 P3 P2 Tempo Motivação para a Programação Concorrente Aumento do Desempenho. Desvantagens da Programação Concorrente Programação mais complexa. Existência do não determinismo.
4 Sistemas Operacionais Notas de Aula Cap Especificação de Paralelismo Várias construções para a ativação e término de processos concorrentes são discutidas na literatura, apresentando características e finalidades distintas. Os principais modelos serão discutidos a seguir. Corotinas Corotinas são subrotinas que possuem um modo de transferência de controle não hierárquico. Corotinas transferem o controle entre si de maneira livre, através do comando resume corotina. E sempre que são ativadas, executam a partir do ponto onde foi executado a última chamada à resume. Sempre existe apenas uma corotina ativa em cada instante, o que implica na adequação desta estrutura para a organização de programas concorrentes que compartilhem uma única CPU. program P; call A; end; corotina A; resume B; resume B; corotina B; resume A; return;
5 Sistemas Operacionais Notas de Aula Cap.03-5 CoBegin/CoEnd São também conhecidas como ParBegin e ParEnd, estes comandos oferecem uma maneira estruturada de ativação de um conjunto de instruções que devem ser executadas concorrentemente. A execução concorrente das declarações S 1, S 2,, S n pode ser ativada através da estrutura: Cobegin S1 S2 Sn Coend O processo pai será bloqueado até que S 1, S 2,, S n estejam terminadas. C A B D E F G H A cobegin C begin B cobegin D E F coend G end coend H Fork/Join O comando Fork implica que um determinado conjunto de instruções (processo filho) deve iniciar a sua execução em paralelo com o processo que o executa (processo pai). O comando Join é utilizado para a sincronização do processo pai com os filhos gerados.
6 Sistemas Operacionais Notas de Aula Cap.03-6 C A B D E F G H A m=2 fork c B n=3 fork e fork f D join m,g; quit g:g join n,h; quit h: H quit c: C join m,g; quit e: E join n,h; quit f: F join n,h; quit DoAll Este comando pode ser visto como um comando CoBegin/CoEnd onde as instruções executadas em paralelo são as diversas instâncias de um bloco de comandos dentro de um comando de iteração. Alguns comandos de função semelhante são: forall, pardo e doacross.
7 Sistemas Operacionais Notas de Aula Cap.03-7 for i=0 to 2 do a[i] = doall i=1 to 2 a[i] = a[0]= a[0]= a[1]= a[2]= tempo a[1]= a[2]= tempo loop sequencial loop paralelo 3.2 Problema da Seção Crítica A seção crítica ou região crítica é uma parte do código de um processo que faz acesso a recursos compartilhados. Muitos problemas podem surgir quando vários processos fazem acessos a dados ou recursos compartilhados de forma paralela ou concorrente. Os mecanismos de sincronização devem evitar a concorrência nas regiões críticas, permitindo que somente um processo esteja executando sua região crítica de cada vez. Essa idéia de exclusivismo de acesso é denominada Exclusão mútua. Exclusão Mútua Se um processo estiver sendo executado em sua seção crítica, é preciso impedir que todos os outros processos entrem em suas próprias seções críticas. Reciprocamente, não se pode permitir que um processo entre em sua seção crítica se qualquer outro processo estiver em sua própria seção crítica.
8 Sistemas Operacionais Notas de Aula Cap.03-8 Processo 1 Inicio código não crítico IniciaExclusão Inicio {seção crítica} seção crítica Fim {seção crítica} TerminaExclusão código não crítico Fim Processo 2 Inicio código não crítico IniciaExclusão Inicio {seção crítica} seção crítica Fim {seção crítica} TerminaExclusão código não crítico Fim O problema da exclusão mútua leva as seguintes perguntas: Como garantir a exclusão mútua? O que pode ser feito antes que um processo entre em sua seção crítica para garantir a exclusão mútua? Deve-se fazer alguma coisa quando um processo termina a sua seção crítica? Na Figura anterior, cada processo faz referência a um comando chamado IniciaExclusão antes de sua seção crítica, e cada um se refere a um comando chamado TerminaExclusão depois de sua seção crítica. IniciaExclusão deve fazer o seguinte: Verificar se qualquer outro processo está em sua própria seção crítica e esperar se houver algum. Passar à execução da seção crítica se nenhum outro processo estiver em sua própria seção crítica. TerminaExclusão deve informar a todos os outros processos que um processo terminou a execução de sua própria seção crítica.
9 Sistemas Operacionais Notas de Aula Cap.03-9 Soluções de Hardware As soluções de hardware são importantes pois criam mecanismos que permitem a implementação das soluções de software. Desabilitação de Interrupções A solução mais simples para o problema da exclusão mútua é fazer com que o processo, antes de entrar em sua região crítica, desabilite todas as interrupções externas e as reabilite após deixar a seção crítica. Como a mudança de contexto só pode ser realizada através de interrupções, o processo que as desabilitou terá acesso exclusivo garantido. Processo 1 Inicio código não crítico Desabilita_Interrupções seção crítica Habilita_Interrupções código não crítico Fim Esse mecanismo é inconveniente por vários motivos. O maior deles acontece quando o processo que desabilitou as interrupções não torna a habilitá-las. Nesse caso o sistema, provavelmente, terá seu funcionamento seriamente comprometido. A desabilitação das interrupções é útil ao SO quando este necessita manipular estruturas de dados compartilhadas do sistema, como lista de processo. Assim, o SO garante que não ocorrerão problemas de inconsistência em seus dados. Instrução Test-And-Set Muitos processadores possuem uma instrução especial, que permite ler uma variável, armazenar seu conteúdo em uma outra área e atribuir um
10 Sistemas Operacionais Notas de Aula Cap novo valor a essa variável. Esse tipo de instrução é denominado instrução test-and-set. A principal característica dessa instrução é ser sempre executada sem interrupção, ou seja, trata-se de uma instrução indivisível (atômica). A instrução test-and-set possui o seguinte formato: Test-and-Set (X, Y); Na execução dessa intrução o valor lógico da variável Y é copiado para X, sedo atribuído à variável Y o valor lógico verdadeiro. Para coordenar o acesso concorrente a um recurso, a instrução test-andset utiliza uma variável lógica global. Quando essa variável for falsa, qualquer processo poderá alterar seu valor para verdadeiro, através da instrução test-and-set e, assim, acessar o recurso de forma exclusiva. Ao terminar o acesso o processo deve simplesmente retornar o valor da variável para falso, liberando o acesso ao recurso.
11 Sistemas Operacionais Notas de Aula Cap Program Programa_Test_and_Set; Var Bloq : Boolean; Procedure ProcessoA; var PodeA : Boolean; begin repeat PodeA := True; while PodeA do Test_and_Set(PodeA, Bloq); {seção crítica} Bloq := False; end; Procedure ProcessoB; var PodeB : Boolean; begin repeat PodeB := True; while PodeB do Test_and_Set(PodeB, Bloq); {seção crítica} Bloq := False; end; begin Bloq := False; CoBegin ProcessoA; ProcessoB; CoEnd; end; Soluções de Software Além da exclusão mútua, que soluciona os problemas de compartilhamento de recursos, três fatores fundamentais para a solução dos problemas de sincronização deverão ser atendidos: O número de processadores e o tempo de execução dos processos concorrentes devem ser irrelevantes; Um processo, fora de sua região crítica, não pode impedir que outros processo entrem em suas próprias regiões críticas; Um processo não pode permanecer indefinidamente esperando para entrar em sua região crítica. As primeiras soluções de software para o problema da exclusão mútua entre processos possuiam, de forma geral, duas inconviniências:
12 Sistemas Operacionais Notas de Aula Cap provocavam starvation e utilizavam um mecanismo de espera ocupada (busy wait). Além da exclusão mútua, que soluciona os problemas de compartilhamento de recursos, três fatores fundamentais para a solução dos problemas de sincronização deverão ser atendidos: 3.3 Semáforos O conceito de semáforo foi proposto por Dijkstra, como uma solução mais geral e simples de ser implementada, para os problemas de sincronização entre processos concorrentes. Um semáforo é uma variável inteira, não negativa, que só pode ser manipulada por duas instruções atômicas: DOWN e UP, também chamadas, originalmente, instruções P e V. No caso da exclusão mútua, as instruções DOWN e UP funcionam como protocolos de entrada e saída, respectivamente, para que um processo possa entrar e sair de sua região crítica. O semáforo fica associado a um recurso compartilhado, indicando quando o recurso está sendo acessado por um dos processos concorrentes. Se seu valor for maior que 0, nenhum processo está utilizando o recurso; caso contrário, o processo fica impedido do acesso. Sempre que deseja entrar na sua região crítica, um processo executa uma instrução DOWN. Se o semáforo for maior que 0, este é decrementado de 1, e o processo que solicitou a operação pode executar sua região crítica. Entretanto, se uma instrução DOWN é executada em um semáforo cujo valor seja igual a 0, o processo que solicitou a operação ficará no estado de espera, em uma fila associada ao semáforo. O processo que está acessando o recurso, ao sair de sua região cr tica, executa uma instrução UP, incrementando o semáforo de 1 e liberando o acesso ao recurso. Se um ou mais processos estiverem esperando o sistema escolhe um processo na fila de espera e muda seue estado para pronto.
13 Sistemas Operacionais Notas de Aula Cap Type Semaforo = record Valor : integer; Fila_Espera : (*Lista de Proc.pendentens *); end; Procedure DOWN (var S : Semaforo); begin if S.Valor = 0 then Insere_Proc.Fila_Espera else S.Valor := S.Valor - 1; end; Procedure UP (var S : Semaforo); begin if (Tem_Proc_Fila) then Retira_Proc.Fila_Espera else S.Valor := S.Valor + 1; end; 3.4 Monitores O uso de semáforos exige dos programadores bastante atenção, pois os problemas que podem resultar dos uso incorreto dos semáforos podem ser difícieis de reproduzir devido ao não determinismo das tarefas. Dessa forma foi proposto por Hoare o mecanismo denominado monitor. Um monitor é um conjunto de procedimentos, variáveis e estruturas de dados definido dentro de um módulo (semelhante a uma classe, da programação orientada à objetos). A característica mais importante de um monitor é a implementação automática da exclusão mútua, pois somente um processo pode estar executando os procedimentos do monitor em um determinado instante. Se um processo requisitar um procedimento do monitor, será verificado se já existe outro processo executando algum procedimento do monitor. Se isto ocorre o processo fica aguardando até o monitor estar disponível novamente. A principal diferença entre monitores e semáforos é que a exclusão mútua, no caso do monitor, é implementada automaticamente pelo compilador e não pelo programador, como é o caso dos semáforos.
14 Sistemas Operacionais Notas de Aula Cap Estrutura do Monitor Variáveis Globais Fila de Espera Procedimentos Código de Inicialização A implementação da sincronização condicional não é tão simples quanto a da exclusão mútua. Para implementá-la, é necessário utilizar variáveis de condição e duas instruções que operam sobre elas: WAIT e SIGNAL. Uma variável de condição é uma estrutura de dados do tipo fila, onde os processos esperam por algum evento. Sempre que o monitor descobre que alguma condição impede a continuação da execução de um processo, ele realiza um WAIT, fazendo com que o processo fique no estado de espera na fila associada a essa condição. Uma característica do monitor é permitir que um processo possa executar um de seus procedimentos, mesmo que um ou mais processos estejam no estado de espera dentro do monitor. O processo bloqueado só poderá prosseguir sua execução quando um outro processo executar um SIGNAL, sobre a mesma condição que o colocou no estado de espera.
15 Sistemas Operacionais Notas de Aula Cap Troca de Mensagens Em sistemas com memória distribuída, se torna inviável o uso de semáforos ou monitores, pois os processos que executam em processadores diferentes não possuem acesso ao mesmo endereçamento de dados. Nesse caso a única maneira de haver comunicação é através da troca de mensagens que é realizada pelas primitivas SEND e RECEIVE. Existem, basicamente, duas formas de comunicação entre processos pela troca de mensagens: comunicação síncrona e comunicação assíncrona. A comunicação síncrona acontece quando um processo que envia uma mensagem fica aguardando até que o processo receptor leia a mensagem ou quando o processo receptor espera pelo envio de uma mensagem por algum processo. A comunicação assíncrona ocorre quando nenhum processo fica bloqueado, nem o processo emissor nem o processo receptor. Nesse caso é necessária a utilização de buffers para o armazenamento temporário das mensagens. A vantagem da comunicação assíncrona é o maior paralelismo entre as tarefas. Já a comunicação síncrona permite a realização de sincronização entre os processos.
16 Sistemas Operacionais Notas de Aula Cap Bibliografia: DEITEL, H. M., DEITEL, P. J. & CHOFFNES, D. R. Sistemas Operacionais 3a. Edição: Person (2005) São Paulo / SP MACHADO, F. B. & MAIA, L. P. Arquitetura de Sistemas Operacionais 3a. Edição: LCT (2002) Rio de Janeiro / RJ SANTANA, R. H. C.; et. alli. Computação Paralela Apostila ICMC - USP SILBERSCHATZ, ABRAHAM & GALVIN, PETER B. Operating System Concepts 5 th Edition: John Wiley (1999) Massachusetts STALLINGS, WILLIAM Operating Systems 2 nd Edition: Prentice-Hall (1995) TANENBAUM, ANDREW S. Sistemas Operacionais Modernos 2ª. Edição. Person (2003) São Paulo / SP TANENBAUM, ANDREW S. & WOODHULL, ALBERT S. Operating Systems: Design and Implementation 2 nd Edition: Prentice-Hall (1997) Upper Saddle River / NJ TOSCANI, S. S.; OLIVEIR, R. S. & CARISSIMI, A. S. Sistemas Operacionais e Programação Concorrente Editora Sagra-Luzzatto (2003) Porto Alegre / RS
17 This document was created with Win2PDF available at The unregistered version of Win2PDF is for evaluation or non-commercial use only.
Sincronização e Comunicação entre Processos
Sincronização e Comunicação entre Processos Monitores/Semáforos Semáforos Mecanismos de sincronização nãoestruturados; Exige do desenvolvedor bastante cuidado, pois qualquer engano pode levar a problemas.
Leia maisSincronização e comunicação entre processos
Sistemas Operacionais Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios Sincronização e comunicação entre processos Em um sistema multiprogramável com
Leia maisIntrodução Aplicações Concorrentes Especificação de Concorrência em Programas Problemas de Compartilhamento de Recursos Exclusão Mútua Sincronização
Sincronização e Comunicação entre Processos Introdução Aplicações Concorrentes Especificação de Concorrência em Programas Problemas de Compartilhamento de Recursos Exclusão Mútua Sincronização Condicional
Leia maisRedes de Computadores. INF201 - Fundamentos de Sistemas Operacionais - 2º Período
Redes de Computadores INF201 - Fundamentos de Sistemas Operacionais - 2º Período PARTE II: PROCESSOS E THREADS SUMÁRIO 7. SINCRONIZAÇÃO E COMUNICAÇÃO ENTRE PROCESSOS: 7.1 Introdução; 7.2 Aplicações Concorrentes;
Leia maisComunicação entre Processos
Programação Paralela e Distribuída Ordenação e Sincronização Prof. Msc. Marcelo Iury de Sousa Oliveira marceloiury@gmail.com http://sites.google.com/site/marceloiury/ Comunicação entre Processos Processos
Leia maisEscalonamento. Eduardo Ferreira dos Santos. Abril, Ciência da Computação Centro Universitário de Brasília UniCEUB 1 / 28
Escalonamento Eduardo Ferreira dos Santos Ciência da Computação Centro Universitário de Brasília UniCEUB Abril, 2016 1 / 28 Sumário 1 Multiprogramação 2 Escalonamento 3 Concorrência 2 / 28 Multiprogramação
Leia maisSincronização e Comunicação entre Processos. Adão de Melo Neto
Sincronização e Comunicação entre Processos Adão de Melo Neto 1 INTRODUÇÃO Em um sistema multitarefa os processos alternam sua execução segundo critérios de escalonamento estabelecidos pelo sistema operacional.
Leia maisSincronização e Comunicação
Sincronização e Comunicação Eduardo Ferreira dos Santos Ciência da Computação Centro Universitário de Brasília UniCEUB Maio, 2017 1 / 28 Sumário 1 Concorrência 2 Sistemas Multiprogramáveis Troca de mensagens
Leia maisCapítulo 6 Deadlocks. Não encontre defeitos, encontre soluções. Qualquer um sabe queixar-se. Henry Ford
Universidade Federal de Itajubá UNIFEI Instituto de Engenharia de Sistemas e Tecnologias da Informação IESTI CCO 004 Sistemas Operacionais Prof. Edmilson Marmo Moreira 1 Introdução Capítulo 6 Deadlocks
Leia maisCurso de Programação Distribuída e Paralela 29/09/2008. Informática UFRGS. Sistemas Operacionais II (C. Geyer) Sincronização 1. Pg.
Sistemas Operacionais Professor Cláudio Geyer Instituto de - Sistemas Operacionais II (C. Geyer) Sincronização 1 Sistemas Operacionais Professor Cláudio Geyer Instituto de - Pg. 1 1 Tópicos ensinados no
Leia maisDEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO SISTEMAS OPERACIONAIS I SEM/12 PROVA I. Tempo de Prova: 100 minutos / Escore Máximo: 300 pontos
DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO SISTEMAS OPERACIONAIS I - 1 0 SEM/12 PROVA I Tempo de Prova: 100 minutos / Escore Máximo: 300 pontos Aluno: G A B A R I T O Escore: Responda às perguntas de forma
Leia maisUniversidade Federal do Pará Instituto de Ciências Exatas e Naturais Faculdade de Computação
Universidade Federal do Pará Instituto de Ciências Exatas e Naturais Faculdade de Computação SISTEMAS OPERACIONAIS Aula 7 Regiane Kawasaki kawasaki@ufpa.br Slides adaptados da Profa. Sarita Mazzini Bruschi
Leia maisSistemas Operacionais: Sincronização entre processos
Sistemas Operacionais: Sincronização entre processos Sincronização Programa concorrente Executado por diversos processos Acesso concorrente a dados Paralelismo real x Paralelismo aparente Multiprocessadores:
Leia maisProblema dos Leitores/Escritores
Sincronização: Semáforos Problema dos Leitores/Escritores Autores Eduardo André Mallmann 0905/96-9 João Paulo Reginatto 1530/96-0 Local Instituto de Informática UFRGS disciplina: Sistemas Operacionais
Leia maisConcorrência em Processos
Concorrência em Processos Anderson L. S. Moreira anderson.moreira@recife.ifpe.edu.br http://dase.ifpe.edu.br/~alsm Baseado nas aulas do professor Alberto Costa Neto da UFS 1 O que fazer com essa apresentação
Leia maisUnidade 3. Controle de Concorrência. Primitivas de Programação Concorrente Clássica
Unidade 3 Controle de Concorrência Primitivas de Programação Concorrente Clássica Programação Concorrente A abstração de programação concorrente é o estudo de sequênciasde execução intercaladas, de instruções
Leia maisComunicação entre processos
Universidade Federal do Acre Centro de Ciências Exatas e Tecnológicas Bacharelado em Sistemas de Informação Comunicação entre processos Macilon Araújo Costa Neto macilon@ufac.br Capítulo 2 do livro do
Leia maisSistemas Operacionais. Prof. André Y. Kusumoto
Sistemas Operacionais Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com Fundamentos Paradigma do produtor-consumidor Sincronização de Processos Produtor while (count == BUFFER_SIZE) ; //no-op //adiciona
Leia maisSistemas Operacionais
Introdução 2 a edição Revisão: Fev/2003 Sistemas Operacionais Programação concorrente Capítulo 3 Programa executado por apenas um processo é dito de programa seqüêncial Existe apenas um fluxo de controle
Leia maisSistemas Operacionais Aula 6
Sistemas Operacionais Aula 6 Anderson L. S. Moreira anderson.moreira@recife.ifpe.edu.br http://dase.ifpe.edu.br/~alsm Curso de Análise e Desenvolvimento de Sistemas de Informação Recife - PE O que fazer
Leia maisProgramação concorrente (processos e threads)
Programação concorrente (processos e threads) Programação concorrente Por que precisamos dela? Para utilizar o processador completamente Paralelismo entre CPU e dispositivos de I/O Para modelar o paralelismo
Leia maisSistemas Operacionais II
O problema da seção crítica... Instituto de Informátic ca - UFRGS Sistemas Operacionais II Exclusão mútua (implementação) Aula 04 Seção crítica Porção de código que não pode ser executado por dois ou mais
Leia maisProgramação Orientada a Objetos. Concorrência
Programação Orientada a Objetos Concorrência Cristiano Lehrer, M.Sc. Níveis de concorrência: Introdução Nível de instrução de máquina: Executando duas ou mais instruções de máquina simultaneamente. Nível
Leia maisEscalonamento. Eduardo Ferreira dos Santos. Abril, Ciência da Computação Centro Universitário de Brasília UniCEUB 1 / 42
Escalonamento Eduardo Ferreira dos Santos Ciência da Computação Centro Universitário de Brasília UniCEUB Abril, 2017 1 / 42 Sumário 1 Multiprogramação 2 Escalonamento 3 Concorrência Memória compartilhada
Leia maisSistemas Operacionais. Prof. André Y. Kusumoto
Sistemas Operacionais Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com Semáforos Sincronização de Processos Um semáforo é uma estrutura de dados que consiste em um número inteiro e em uma fila Seu
Leia maisProcessos Concorrentes
Processos Concorrentes Walter Fetter Lages w.fetter@ieee.org Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Engenharia Elétrica ENG04008 Sistemas de Tempo Real Copyright
Leia maisSincronização de Processos (2)
Sincronização de Processos (2) Tipos de Soluções (cont.) Soluções de Hardware Inibição de interrupções Instrução TSL (apresenta busy wait) Soluções de software com busy wait Variável de bloqueio Alternância
Leia maisSistemas Operacionais
Sistemas Operacionais I Índice 2 Processos... 1 2.2.5 Semáforos... 1 2.2.6 Monitores... 2 2.2.7 Passagem de Mensagens... 5 2 Processos 2.2.5 Semáforos Para resolver este problema, Dijkstra propôs em 1965
Leia maisFundamentos de Sistemas Operacionais
Fundamentos de Sistemas Operacionais Aula 5: Exclusão Mútua Diego Passos Última Aula Programação Concorrente Programas compostos por mais de um processo ou thread. Pode trazer benefícios: Simplificar o
Leia maisSistemas de Entrada e Saída
Sistemas de Entrada e Saída Eduardo Ferreira dos Santos Ciência da Computação Centro Universitário de Brasília UniCEUB Maio, 2016 1 / 31 Sumário 1 Interrupções 2 Camadas de Software de E/S 2 / 31 Interrupções
Leia maisSemáforos. Gerenciamento de Recursos I
Semáforos O problema dos leitores/escritores, apresentado a seguir, consiste em sincronizar processos que consultam/atualizam dados em uma base comum. Pode haver mais de um leitor lendo ao mesmo tempo;
Leia maisUnidade III Gerência de Processos
Sistemas Operacionais Unidade III Gerência de Processos http://www.lncc.br/~lrodrigo Professor: Luis Rodrigo lrodrigo@lncc.br Página: 1 de 34 Unidade III: Gerência de Processos Conceito de Processo Materialização
Leia maisFundamentos de Sistemas Operacionais
Fundamentos de Sistemas Operacionais Aula 6: Monitores, Troca de Mensagens e Deadlock Diego Passos Última Aulas Mecanismos de Exclusão Mútua Operações atômicas. Protocolos de controle de acesso. Spin-locks.
Leia mais1 a Questão Unidade I e II (45 pontos)
DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO CURSO DE CIÊNCIA DA COMPUTAÇÃO SISTEMAS OPERACIONAIS I - 1 0 SEM/08 Teste 1 Unidades I e II Total: 200 pontos Aluno: Escore: 1 a Questão Unidade I e II (45 pontos)
Leia maisAula 6: Comunicação entre processos. Instituto Federal da Bahia INF009 - Sistemas Operacionais Profª Flávia Maristela
Aula 6: Comunicação entre processos Instituto Federal da Bahia INF009 - Sistemas Operacionais Profª Flávia Maristela (-- motivação --) Processos em execução no sistema operacional podem ser: Independentes:
Leia maisUNIVERSIDADE FEDERAL DO RIO DE JANEIRO IM DCC CURSO DE CIÊNCIA DA COMPUTAÇÃO SISTEMAS OPERACIONAIS I 2010/2 PROGRAMA DA DISCIPLINA
UNIVERSIDADE FEDERAL DO RIO DE JANEIRO IM DCC CURSO DE CIÊNCIA DA COMPUTAÇÃO SISTEMAS OPERACIONAIS I 2010/2 Código: MAB366 Créditos: 04 Carga Horária: 60 horas Professor: Antonio Carlos Gay Thomé thome@nce.ufrj.br
Leia maisSistemas Operativos. Objetivo. Entrega do Questionário. Exercício 1. Exercício 2. Exercício 3. Exercício 4. Grupo 1 Introdução
Sistemas Operativos Objetivo O objetivo deste questionário é levá-lo a rever os conceitos básicos dos sistemas operativos, bem como os algoritmos de scheduling e mecanismos de sincronização estudados.
Leia maisSemáforos. Gerenciamento de Recursos I
Semáforos O problema dos leitores/escritores, apresentado a seguir, consiste em sincronizar processos que consultam/atualizam dados em uma base comum. Pode haver mais de um leitor lendo ao mesmo tempo;
Leia maisSistemas Distribuídos
Sistemas Distribuídos Thaís Vasconcelos Batista UFRN DIMAp http://www.dimap.ufrn.br/~thais thais@ufrnet.br Programa do Curso INTRODUÇÃO Conceitos Básicos Sistemas em Rede X Sistemas Distribuídos Necessidade
Leia maisLabSO Gerência de Processos. Retrospectiva da aula passada... Na aula passada... Na aula passada...
LabSO Gerência de Processos Retrospectiva da aula passada... AULA 4 Flávia Maristela (flavia@flaviamaristela.com) Romildo Martins (romildo@romildo.net) Na aula passada... Processos Estados do processo
Leia maisPró-Reitoria Acadêmica Diretoria Acadêmica Assessoria Pedagógica da Diretoria Acadêmica PLANO DE ENSINO. Revisão 7-17/02/16
FACULDADE: CENTRO UNIVERSITÁRIO DE BRASÍLIA UniCEUB CURSOS: ENGENHARIA DE COMPUTAÇÃO E CIÊNCIA DA COMPUTAÇÃO DISCIPLINA: SISTEMAS OPERACIONAIS CÓDIGO: RN0352 CARGA HORÁRIA: 75 H.A. ANO/SEMESTRE: 2016/2
Leia maisSistemas Distribuídos Aula 7
Sistemas Distribuídos Aula 7 Aula passada Atomicidade Test-and-set Locks revisitado Semáforos Dois problemas Aula de hoje Limitação dos semáforos Monitores Variáveis de condição Semântica do signal Sincronização
Leia maisSSC0640 Sistemas Operacionais I
SSC0640 Sistemas Operacionais I 1ª Aula Apresentação da disciplina Profa. Sarita Mazzini Bruschi sarita@icmc.usp.br 1 Objetivos do curso Introduzir o estudante nos conceitos e princípios básicos dos sistemas
Leia maisModelos de Programação de Tempo Real
Modelos de Programação de Tempo Real Eduardo Ferreira dos Santos Ciência da Computação Centro Universitário de Brasília UniCEUB Março, 2016 1 / 27 Sumário 1 Características de Tempo Real 2 Multiprogramação
Leia maisRevisão Ultima aula [1/2]
SOP - TADS Comunicação Interprocessos IPC Prof. Ricardo José Pfitscher dcc2rjp@joinville.udesc.br Material cedido por: Prof. Rafael Rodrigues Obelheiro Prof. Maurício Aronne Pillon Revisão Ultima aula
Leia maisOO Engenharia Eletrônica
OO Engenharia Eletrônica - Programação em C/C++ Slides 18: Introdução à programação multi-thread. Thread: linha de execução de um processo. Multi-thread: execução de múltiplas threads em um processo. Prof.
Leia maisTipos de Soluções (cont.)
Sincronização de Processos (2) Tipos de Soluções (cont.) Soluções de Hardware Inibição de interrupções Instrução TSL (apresenta busy wait) Soluções de software com busy wait Variável de bloqueio Alternância
Leia maisLabSO Gerência de Processos. Processos. Porque eu preciso entender este assunto?
LabSO Gerência de AULA 3 Flávia Maristela (flavia@flaviamaristela.com) Romildo Martins (romildo@romildo.net) Porque eu preciso entender este assunto? Para entender como um computador consegue executar
Leia mais1B Conceitos Básicos: Indique Verdade/Falso
INE5645 - Programação Paralela e Distribuída - Prova 1B 24/04/2017 Nome 1B Conceitos Básicos: Indique Verdade/Falso a) (Verdade/Falso) Threads distintas em um processo não são tão independentes quanto
Leia maisProf. Kleber R. Rovai
Msn: klrovai@hotmail.com E-mail: Skype: klrovai 2 1 Programa: sequência de instruções com diferentes fluxos de execução comandos condicionais e interativos (entidade passiva); Processo: um programa em
Leia maisSincronização e Comunicação entre Processos. Adão de Melo Neto
Sincronização e Comunicação entre Processos Adão de Melo Neto 1 MOTIVAÇÃO 2 INTRODUÇÃO Em um sistema multiprogramado (concorrente) os processos alternam sua execução (ou seja, são executados alternadamente
Leia maisFundamentos de Sistemas Operacionais
Fundamentos de Sistemas Operacionais Aula 4: Programação Concorrente Diego Passos Últimas Aulas Processos Compostos por: Código (programa). Estado (memória, registradores). Em um sistema com multiprogramação:
Leia maisSistemas de Entrada e Saída
Sistemas de Entrada e Saída Eduardo Ferreira dos Santos Ciência da Computação Centro Universitário de Brasília UniCEUB Maio, 2016 1 / 33 Sumário 1 Dispositivos de E/S 2 Interrupções 3 Software de E/S 2
Leia maisSistemas Operacionais
Introdução Sistemas Operacionais Sincronização de processos Aula 07 Em sistemas multiprogramados há interação entre processos para comunicação, que pode ser feita via compartilhamento de memória/arquivos
Leia maisMétodos de Sincronização
Métodos de Sincronização Eduardo Ferreira dos Santos Ciência da Computação Centro Universitário de Brasília UniCEUB Maio, 2017 1 / 31 Sumário 1 Sistemas multiprogramáveis 2 Mecanismos de sincronização
Leia maisComunicação entre processos (2)
Comunicação entre processos (2) Pedro Cruz EEL770 Sistemas Operacionais Lembretes Proposta de trabalho Enviar para cruz@gta.ufrj.br Prazo: dia 02 de abril 2 Aula passada Comunicação entre processos é útil
Leia maisProcessos. Prof. Gustavo Leitão
Processos Prof. Gustavo Leitão Campus Natal Central Disciplina Programação para Ambiente de Redes Baseada na Aula do Prof. Ricardo Valentim 5/3/2010 Objetivo da Aula 5/3/2010 PLANO DE AULA Processos Processos:
Leia maisProcessos. Processo (1) Processo (2) Processo (3) Conceitos Básicos
Processos Conceitos Básicos Processo (1) Abstração usada pelo S.O. para designar a execução de um programa. É caracterizado por uma thread de execução, um estado corrente e um conjunto associado de recursos
Leia maisProcessos. Conceitos Básicos
Processos Conceitos Básicos Processo (1) Abstração usada pelo S.O. para designar a execução de um programa. É caracterizado por uma thread de execução, um estado corrente e um conjunto associado de recursos
Leia maisSistemas Operacionais. Prof. André Y. Kusumoto
Sistemas Operacionais Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com Deadlocks Situação na qual um, ou mais processos, fica impedido de prosseguir sua execução devido ao fato de cada um estar aguardando
Leia maisSOP Sistemas Operacionais Módulo 04: Processo
SOP Módulo 04: Processo Prof. Charles Christian Miers e-mail: charles.miers@udesc.br Multiprogramação Tornar mais eficiente o aproveitamento dos recursos do computador Execução simultânea de vários programas
Leia maisProgramação de Sistemas em Tempo Real
BCC722 Programação de Sistemas em Tempo Real Processos Prof. Charles Garrocho O conceito de processo Um S.O. executa uma variedade de programas Sistemas de tempo compartilhado: programas Processo: um programa
Leia maisSistemas Operacionais
Sistemas Operacionais 04 Processos Introdução Um sistema de computação quase sempre tem mais atividades a executar que o número de processadores disponíveis. Diferentes tarefas têm necessidades distintas
Leia maisSistemas Operacionais
Brainstormig Sistemas Operacionais Processos e multiprogramação Aula 2 Quais são os componentes de um programa? Como podemos representar um programa em execução? Onde ele inicia a executar? Como se mapeia
Leia maisSincronização de Processos (2)
Sincronização de Processos (2) Tipos de Soluções (cont.) Soluções de Hardware Inibição de interrupções Instrução TSL (apresenta busy wait) Soluções de software com busy wait Variável de bloqueio Alternância
Leia maisUniversidade Federal do RGS Instituto de Informática Departamento de Informática Aplicada
Universidade Federal do RGS Instituto de Informática Departamento de Informática Aplicada Disciplina: INF01151 - Sistemas Operacionais II N Turma: A, 2 Sem/2008 Prof. Cláudio Geyer CURSOS : Ciência da
Leia maisSSC0640 Sistemas Operacionais I
SSC0640 Sistemas Operacionais I 8ª Aula Comunicação e Sincronismo de Processos Profa. Sarita Mazzini Bruschi sarita@icmc.usp.br Slides adaptados de Marcos José Santana / Regina H. C. Santana / Luciana
Leia maisSO: SISTEMAS OPERACIONAIS Curso: Sistemas de Informação
SO: SISTEMAS OPERACIONAIS Curso: Sistemas de Informação - Definições - Ementa - Objetivos - Unidades de Ensino - Bibliografia - Processo de Avaliação Paulo César do Amaral Pereira SISTEMA COMPUTACIONAL
Leia maisPROCESSADORES SUPERESCALARES FELIPE G. TORRES
PROCESSADORES SUPERESCALARES FELIPE G. TORRES PROCESSAMENTO DAS INSTRUÇÕES Como podemos melhorar esse processamento? Arquitetura de computadores 2 PROCESSAMENTO DAS INSTRUÇÕES Como uma abordagem simplificada,
Leia mais08/08/2016. Metodologia de trabalho Sistema de notas Trabalhos Artigos Celulares Presença Entrega de trabalhos Uso de laboratório
Prof. Richard Brosler richard.brosler@aedu.com Metodologia de trabalho Sistema de notas Trabalhos Artigos Celulares Presença Entrega de trabalhos Uso de laboratório Introdução à Programação Concorrente
Leia maisModelagem e implementação de programas concorrentes
Modelagem e implementação de programas concorrentes Aula 3 DCC-UFMG 2010 Bibliograa G.R. Andrews. Foundations of Multithreaded, Parallel, and Distributed Programming. Addison-Wesley, 1999. M. Ben-Ari.
Leia maisSistemas Operacionais
Introdução Sistemas Operacionais Sincronização de processos Aula 08 Em sistemas multiprogramados há interação entre processos para comunicação, que pode ser feita via compartilhamento de memória/arquivos
Leia maisConcorrência. Condições de Corrida. 5a. Tentativa. Dificuldades: Sincronização de Processos (2) Aula 11 Profa. Patrícia Dockhorn Costa
Concorrência Dificuldades: Sincronização de Processos (2) Aula 11 Profa. Patrícia Dockhorn Costa Compartilhamento de recursos globais. Gerência de alocação de recursos. Localização de erros de programação
Leia maisSistemas Operacionais
Sistemas Operacionais Slides adaptados de Prof. Dr. Marcos José Santana, Prof. Dra. Regina Helena Carlucci Santana e Sarita Mazzini Bruschi baseados no livro Sistemas Operacionais Modernos de A. Tanenbaum
Leia maisUNIVERSIDADE ESTADUAL VALE DO ACARAÚ- UEVA. Assunto: Programação Concorrente.
UNIVERSIDADE ESTADUAL VALE DO ACARAÚ- UEVA Assunto: Programação Concorrente. Alunos: Valdeclébio Farrapo Costa Paulo Roberto Gabriel Barbosa Curso: Ciência da Computação Disciplina: Linguagem de Programação
Leia maisTécnicas Avançadas de Programação
Sumário Técnicas Avançadas de Programação Prof. João Marcos M. da Silva Departamento de Engenharia de Telecomunicações Escola de Engenharia Universidade Federal Fluminense Agosto de 2011 Prof. João Marcos
Leia maisProtótipo tipo de um sistema de arquivos para ambiente distribuído
Universidade Regional de Blumenau Bacharelado em Ciências da Computação Protótipo tipo de um sistema de arquivos para ambiente distribuído do Acadêmica: Catia Silene Possamai Orientador: Antonio Carlos
Leia maisSistema de entrada e saída (E/S)- Módulos de E/S; tipos de operações de E/S
Sistema de entrada e saída (E/S)- Módulos de E/S; tipos de operações de E/S Explicitar aos alunos os modelos de entrada e saída em um computador e quais barramentos se aplicam a cada componente: memória,
Leia maisSistemas Operacionais. Capítulo 7 Sincronização e Comunicação entre Processos
Sistemas Operacionais Capítulo 7 Sincronização e Comunicação entre Processos Baseado no Livro e Material de Apoio de Arquitetura de Sistemas Operacionais 3ª edição - LTC - 2004 Francis Berenger Machado
Leia maisEstrutura deste arquivo.. Comunicação Interprocesso Parte 1 de 2 - Cap. 2. Introdução 1 CONDIÇÕES DE CORRIDA
Estrutura deste arquivo.. Comunicação Interprocesso Parte 1 de 2 - Cap. 2 Prof. Alexandre Beletti Ferreira 1. Condições de Corrida 2. Seções Críticas 3. Exclusão Mútua com Espera Ativa 1. Desativando Interrupções
Leia maisLinguagens de Programação
Linguagens de Programação Paradigma Imperativo Matheus Hafner Tiago Xavier CET 087 - Conceitos de Linguagens de Programação (CLP) 10 de novembro de 2011 Sumário 1 Introdução 2 Paradigma imperativo Modelo
Leia maisSistemas Distribuídos
Sistemas Distribuídos Exclusão Mútua Referência Sistemas operacionais modernos Andrew S. TANENBAUM Prentice-Hall, 1995 Seção 11.2 pág. 325-329 Conteúdo Algoritmo centralizado Algoritmo distribuído (Algoritmo
Leia maisProcessos O conceito de processos é fundamental para a implementação de um sistema multiprogramável. De uma maneira geral, um processo pode ser entend
Concorrência Nos sistemas Monoprogramáveis somente um programa pode estar em execução por vez, permanecendo o processador dedicado a esta única tarefa. Os recursos como memória, processador e dispositivos
Leia maisINTRODUÇÃO AOS SISTEMAS OPERACIONAIS SEMANA 13
INTRODUÇÃO AOS SISTEMAS OPERACIONAIS outubro/2013 SEMANA 13 Conceitos sobre s. Visão geral, s de usuário e de, modelos de multiing, ciclo de vida. Exemplos nos sistemas operacionais. 1 - Introdução Thread
Leia maisSistemas Operacionais
Introdução Inst tituto de Info ormátic ca - UF FRGS Sistemas Operacionais i Introdução à Programação Concorrente Aula 05 Em sistemas multiprogramados há interação entre processos para comunicação, que
Leia maisSistemas Operacionais
Sistemas Operacionais Processos - Parte 2 Prof. Dr. Fábio Rodrigues de la Rocha (Processos - Parte 2) 1 / 33 (Processos - Parte 2) 2 / 33 (Processos - Parte 2) 3 / 33 (Processos - Parte 2) 4 / 33 (Processos
Leia maisINE5645 PROGRAMAÇÃO PARALELA E DISTRIBUÍDA - Prova 1 12/05/2014 Aluno: Bosco
INE5645 PROGRAMAÇÃO PARALELA E DISTRIBUÍDA - Prova 1 12/05/2014 Aluno: Bosco 1. Um servidor acessa as variáveis i e j. O servidor oferece duas operações para seus clientes: read(i) retorna o valor de i
Leia maisApresentação. Ementa da Disciplina. Objetivo da Disciplina. DCA-108 Sistemas Operacionais. Referências Bibliográfica. Referências Bibliográfica
DCA-108 Sistemas Operacionais Luiz Affonso Guedes www.dca.ufrn.br/~affonso affonso@dca.ufrn.br Apresentação Disciplina básica do curso de Engenharia de Computação Carga-horária: 60h teóricas Associadas
Leia maisAULA 03: PROCESSAMENTO PARALELO: MULTIPROCESSADORES
ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES II AULA 03: PROCESSAMENTO PARALELO: MULTIPROCESSADORES Prof. Max Santana Rolemberg Farias max.santana@univasf.edu.br Colegiado de Engenharia de Computação MULTIPROCESSADORES
Leia maisUniversidade Federal do Pará Instituto de Ciências Exatas e Naturais Faculdade de Computação
Universidade Federal do Pará Instituto de Ciências Exatas e Naturais Faculdade de Computação SISTEMAS OPERACIONAIS Aulas 6 Regiane Kawasaki kawasaki@ufpa.br Slides adaptados da Profa. Sarita Mazzini Bruschi
Leia maisGERENCIAMENTO DE PROCESSOS E MEMÓRIA
GERENCIAMENTO DE PROCESSOS E MEMÓRIA GRUPO ELAINE P. S. ALVES RAFAEL T. ROLDÃO VINICIUS A. ZANQUINI SAMUEL DISCIPLINA: SISTEMAS OPERACIONAIS 2º QUAD/2010 PROFº MARCELO NASCIMENTO MOTIVAÇÃO 1. Sistema de
Leia maisUnidade VI. Técnicas de Teste de Software Teste Estrutural. Profa. Dra. Sandra Fabbri
Unidade VI Técnicas de Teste de Software Profa. Dra. Sandra Fabbri Os requisitos de teste são extraídos de uma implementação em particular Teste dos detalhes procedimentais A maioria dos critérios dessa
Leia maisSISTEMAS OPERACIONAIS
SISTEMAS OPERACIONAIS Introdução a Sistemas Operacionais Andreza Leite andreza.leite@univasf.edu.br Plano de Aula Introdução aos Sistemas Operacionais Fundamentação Teórica Evolução Histórica Características
Leia maisProgramação Concorrente Locks
Programação Concorrente Prof. Eduardo Alchieri Variáveis do tipo trava (lock) Lock: É um mecanismo de sincronização de processos/threads, em que processos/threads devem ser programados de modo que seus
Leia mais14/05/2017. Conceitos de Processos. Conceitos de Processos. Conceito de processo
Conceito de processo Os computadores executam várias operações ao mesmo tempo. - Compilar um programa; - Enviar um arquivo para a impressora; - Exibir uma página web; - Reproduzir músicas; - Receber mensagens
Leia maisINE 5645 PROGRAMAÇÃO PARALELA E DISTRIBUIDA PROVA 2 12/06/2017. ALUNO Prof. Bosco
INE 5645 PROGRAMAÇÃO PARALELA E DISTRIBUIDA PROVA 2 12/06/2017 ALUNO Prof. Bosco 1. Sockets - Indicar (Verdade/Falso): (a) (Verdade/Falso) Sockets são abstrações utilizadas nos protocolos de comunicação
Leia maisE S C O L A T É C N I C A E S T A D U A L R E P Ú B L I C A
1. COMPETÊNCIAS GOVERNO DO ESTADO DO RIO DE JANEIRO Conhecer as partes integrantes de um sistema de informação e suas respectivas funções. Analisar as necessidades do usuário e definir o sistema operacional
Leia maisUFRJ IM - DCC. Sistemas Operacionais I. Unidade II Concorrência
UFRJ IM - DCC Sistemas Operacionais I Unidade II 19/2/2007 Prof Antonio Carlos Gay Thomé Prof Aux Simone Markenson Pech 1 Organização da Unidade Processos Threads Princípios da ncia Exclusão o Mútua M
Leia maisENADE 2011 SISTEMAS OPERACIONAIS
ENADE 2011 SISTEMAS OPERACIONAIS SOs: conteúdos comuns Gerência de processos/processador Comunicação Concorrência e Sinc. de Processos Gerenciamento de Memória Alocação de Recursos e Deadlocks Sistemas
Leia mais