Sistemas Operacionais II
|
|
- Leonor Silva Leveck
- 6 Há anos
- Visualizações:
Transcrição
1 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 processos simultaneamente sob pena de inconsistência de dados Necessário garantir acesso exclusivo de um processo à seção crítica Se um processo está executando instruções da seção crítica, outro processo é impedido de entrar até que a primeira saia! É o que se denomina de exclusão mútua Resulta em uma serialização no acesso Primitivas para exclusão mútua: enter_em exit_em Enter_EM Seção crítica Exit_EM Sistemas Operacionais II 2 Propriedades para primitivas de exclusão mútua Como implementar? (1) Exclusão mútua Garantir que apenas um processo esteja executando dentro da seção crítica. (2) Progressão Um processo fora da seção crítica não pode impedir outro processo de entrar (3) Espera limitada Um processo não deve ser indefinidamente impedido de entrar na seção crítica (4) Não deve fazer suposições sobre a velocidade relativa da execução dos processos, nem de número de processadores Processo ou thread Primitiva genérica: <await (B); S> Exclusão mútua e sincronização condicional Como implementar o operador exclusão mútua ( < e > )? Sem suporte de hardware, i.é, em software puro! Algoritmo de Dekker! Algoritmo de Peterson! Algoritmo de Lamport Com suporte de hardware! Baseado em habilitação/desabilitação de interrupções! Instruções atômicas (test-and-set e swap) Procedural! Baseado em suporte por compiladores Sistemas Operacionais II 3 Sistemas Operacionais II 4
2 Considerações gerais Abordagem algorítmica Para simplificar a análise: Duas unidades de execução ( threads ou processos) Algoritmos podem ser adaptados para n threads ou processos Máquinas com um processador (e um só core) Programas tem três partes: Instruções críticas (modificam dados compartilhados) Instruções não críticas (não atualizam dados compartilhados) Primitivas para exclusão mútua (enter_em e exit_em) Abordagem algorítmica é caracterizada por: Não empregar serviços providos pelo núcleo (kernel) para bloquear, sinalizar ou retardar a execução de um processo Não empregar instruções especiais do processador Vantagem: É uma solução independente de sistema operacional e de plataforma de execução Desvantagem: Emprego de espera ativa (busy wait) Complexidade de programação Sistemas Operacionais II 5 Sistemas Operacionais II 6 Algoritmo de Dekker (versão I) Algoritmo de Dekker (versão I) Var turn: 0..1 Var turn: 0..1 while (turn = 2) do {nothing; { seção crítica; turn := 2; Parend ; while (turn = 1) do {nothing; { seção crítica; turn := 1; Problemas? while (turn = 2) do {nothing; { seção crítica; turn := 2; Parend ; while (turn = 1) do {nothing; { seção crítica; turn := 1; Problemas? Viola propriedade da progressão Sistemas Operacionais II 7 Sistemas Operacionais II 8
3 Algoritmo de Dekker (versão II) Algoritmo de Dekker (versão II) while (c2 = 0) do {nothing; c i é um flag para indicar se o processo P i está na região crítica. Antes de entrar na SC um processo verifica se a mesma livre, ou seja, se o outro processo não está dentro dela. while (c1 = 0) do {nothing; while (c2 = 0) do {nothing; c i é um flag para indicar se o processo P i está na região crítica. Antes de entrar na SC um processo verifica se a mesma livre, ou seja, se o outro processo não está dentro dela. while (c1 = 0) do {nothing; Viola regra da exclusão mútua Sistemas Operacionais II 9 Sistemas Operacionais II 10 Algoritmo de Dekker (versão II alternativa 2) Algoritmo de Dekker (versão II tentativa 2) c1 = 0 while (c2 = 0) do {nothing; c2 = 0 while hl (c1 = 0) do {nothing; c1 = 0 while (c2 = 0) do {nothing; c2 = 0 while hl (c1 = 0) do {nothing; Esperarão por uma situação que nunca ocorrerá Sistemas Operacionais II 11 Sistemas Operacionais II 12
4 Algoritmo de Dekker (versão II tentativa 3) Algoritmo de Dekker (versão II tentativa 3) c1 = 0 while (c2 = 0) do { timewait(rand); c1 =0; end. c2 = 0 while (c1 = 0) do { timewait(rand); c2 =0; c1 = 2; c1 = 0 while (c2 = 0) do { timewait(rand); c1 =0; end. c2 = 0 while (c1 = 0) do { timewait(rand); c2 =0; Um processo pode sempre dar a preferência para o outro e nenhum dos dois ingressar na SC. Sistemas Operacionais II 13 Sistemas Operacionais II 14 Var turn: 1..2; c1, c2: 0..1; while (c2 = 0 ) do Algoritmo de Dekker (versão V) if (turn = 2) then { while (turn = 2) do {nothing; turn = 2; while (c1 = 0 ) do if (turn = 1) then { while (turn = 1) do {nothing; Parend. Sistemas Operacionais II 15 Var turn: 1..2; c1, c2: 0..1; while (c2 = 0 ) do if (turn = 2) then { Algoritmo de Dekker (versão V) while (turn = 2) do {nothing; turn = 2; Parend. while (c1 = 0 ) do if (turn = 1) then { while (turn = 1) do {nothing; Desta vez não... Está correto!! Mas façam para n processos... Sistemas Operacionais II 16
5 Algoritmo de Peterson Passando para n processos Var flag: array[0..1] of boolean; turn:0..1; flag[0] = false; flag[1] = false; flag[0] = true; while flag[1] and turn = 1 do {nothing; flag[0] = false; Parend. flag[0] = true; turn = 0; while flag[0] and turn = 0 do {nothing; flag[1] = false; Também está correto... Mas façam para n processos... Sistemas Operacionais II 17 Algoritmo de Dijkstra (1965) Possibilidade de adiamento indefinido Algoritmo de Knuth (1965) Resolvia adiamento indefinido, mas permite longos atrasos Algoritmo de Eisenberg e McGuire (1972) Entrada na seção crítica no máximo após n-1 tentativast ti Algoritmo de Peterson (1981) Generalização do de duas unidades de execução Algoritmo de Lamport (1974) Desenvolvido para sistemas distribuídos Algoritmo de Block e Woo (1990) Sistemas Operacionais II 18 Algoritmo da Padaria (Lamport, 1974) const n; Var choosing = array[0..n-1] of boolean; number = array[0..n1] of integer; for j=0 to n-1 do { choosing[i]=false; number[j]=0 Process Pi: Sistemas Operacionais II Tie break (relação precedência) (number[j], j) < number[i], i) number[j] < number [i] or number[j] = number [i] and j < i choosing[i]=true; number[i] = max(number[0]...number[n-1]) + 1; choosing[i]=false; for j=0 to n-1 do { while (choosing[j] do {nothing; while (number[j] and (number[j], j) < (number[i], i)) do {nothing; {Seção crítica number[i] = 0; {Seção não crítica Parend. Problemas com soluções em software Software puro: algoritmos de Dekker, Peterson e Lamport Problemas:! Complexidade! Problema de desempenho! Espera ativa (busy wait)! Falta de clareza o que é lógica de controle de acesso a seção crítica e o que é da lógica do programa Solução Contar com o auxílio de mecanismos de hardware (projeto do processador) Sistemas Operacionais II 20
6 Mecanismos de hardware Desabilitação de interrupções Habilitação e desabilitação de Interrupções Instruções específicas a serem usadas como base para se implementar primitivas de exclusão mútua: Test and set Compare and Store Swap Unidades de execução: thread ou processos (discurso válido para ambos!) Só há chaveamento de unidades de execução com a ocorrência de interrupções de tempo ou de eventos externos (E/S, traps, etc) Problemas: Poder demais para um usuário!! Não funciona em máquinas multiprocessadoras (SMP) pois apenas a CPU que realiza a instrução é afetada! Violação da regra não fazer suposições sobre processadores... CLI STI ;Desliga interrupções Seção crítica ;Ativa interrupções Sistemas Operacionais II 21 Sistemas Operacionais II 22 Variável do tipo lock Instruções especiais Posição de memória especial, compartilhada, que armazena dois estados: Zero: livre 1: ocupado Desvantagem: Race conditions While (lock == 1) ; lock = 1; Lock = 0 ; Seção crítica Solução: Fazer com que o while e a atribuição sejam feitas de forma indivisível Projeto de processadores levam em conta que eles serão usados em ambientes de programação concorrente Instruções assembly para leitura e escrita de posições de memória de forma atômica (indivisível). SWAP: swap (a, b)! Permutação de valores Compare and Store: cas r1, mem! Copia o valor de uma posição de memória para um registrador interno e escreve nela o valor 1 Test and Set Lock: tst r1, mem! Lê o valor de uma posição de memória e coloca nela um valor não zero Sistemas Operacionais II 23 Sistemas Operacionais II 24
7 Primitivas lock e unlock Problemas com a solução lock/unlock Instruções especiais podem ser usadas para implementar primitivas de mais alto nível Solução freqüentemente referenciada como mutex lock (flag); unlock (flag); Seção crítica enter_region: leave_region:... tst register,flag cmp register,0 jnz enter_region ret... mov flag,0 ret Uso correto das primitivas lock e unlock Programador deve estar ciente (para não dizer ser competente! ) do que é necessário liberar o acesso a seção crítica (unlock) Esquecimento gera, normalmente, deadlock Inversão de prioridade Espera ativa (busy wait) Sistemas Operacionais II 25 Sistemas Operacionais II 26 Mas, espera ativa nem sempre é um problema... Problema e solução para a espera ativa Em multiprocessadores (multicore) o busy wait pode ser interessante Há outro processador para liberar o recurso O custo de chaveamento pode não compensar (relação com o tamanho da seção crítica) Porém viola a regra sobre fazer suposições sobre processadores Possibilidade: primitiva trylock Faz busy wait por um período de tempo, se durante esse período o mutex não tiver sido liberado bloqueia (sleep) O programador escolhe entre trylock e lock Problema é dimensionar o período de tempo! Compromisso entre o tamanho da seção crítica, tempo de chaveamento de contexto e tempo estimado de espera Espera ativa ou busy wait (spin lock) Sem sentido, pois para alguém liberar o recurso deve executar, mas para executar tem que usar a CPU! Argumento válido para monoprocessadores (monocore) Solução: é bloquear o processo (thread) Baseado em duas novas primitivas mais elaboradas! sleep: Bloqueia um processo a espera de uma sinalização! wakeup: Sinaliza um processo Sistemas Operacionais II 27 Sistemas Operacionais II 28
8 Problema: Inversão de prioridades Soluções para inversão de prioridade Uma thread de mais baixa prioridade impedir a progressão de uma thread de mais alta prioridade Menos prioritário Mais prioritário lock(m) Troca de processo/thread lock(m) unlock(m) Outros processos/threads Situações indesejadas: Bloqueado ou fazendo busy wait (até quando?) Teto para prioridade (priority ceiling) Aumento da prioridade de uma thread para um valor prédeterminado sempre que ela adquirir um mutex (lock) Teto deve ser maior que a prioridade da maior thread Na liberação (unlock) a thread retorna a sua prioridade original Herança (priority inheritance) A prioridade da thread que detém o mutex é elevada ao nível da thread mais prioritária que solicita o recurso Elevação da prioridade só ocorre se houver risco de conflito Na liberação (unlock) a thread retorna a sua prioridade original Sistemas Operacionais II 29 Sistemas Operacionais II 30 O caso Missão Mars pathfinder: robô sojourner O problema do robô sojourner O problema: A sonda, depois de algum tempo da missão iniciou, de forma não determinística, a fazer resets e se auto-inicializar. A cada reset, os dados coletados e não transmitidos eram perdidos. Thread 1: controle do barramento (alta prioridade) Transferência de dados de controle em um barramento de informações Thread 2: transmissão de dados (média prioridade) Thread 3: coleta de dados meteorológicos (baixa prioridade) Coleta dados meteorológicos e os publica no barramento de informações lock ( bus); Watch dog (hardware) lock ( bus); preempção preempção RESET T 1 T 2 T 3 Sistemas Operacionais II 31 Sistemas Operacionais II 32
9 Leituras adicionais G. R. Andrews Multithreaded, Parallel and Distributed Programming, Addison Wesley, Capítulo 2 (seções 2.1 a 2.5) e capítulo 3 (seções 3.1 a 3.3) Deitel, Deitel e Choffnes, Sistemas Operacionais, 3a edição, Pearson Prentice Hall Capítulo 5 (seções 5.1 a 5.5) Bibliografia complementar! S. Toscani; R. Oliveira; A. Carissimi; Sistemas Operacionais e programação concorrente Editora Sagra-Luzzato, 2003.! Capítulo 4! A. Silberchatz, P. Galvin, G. Gagne; Sistemas Operacionais: conceitos e aplicações. (1 a edição). Campus ! Capítulo 7 Sistemas Operacionais II 33
Sistemas 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 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
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 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 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 Operacionais
Sistemas Operacionais Processos Exclusão Mútua Mecanismos para se Obter Exclusão MútuaM Mecanismos de Hardware: Inibição de Interrupções Instrução TSL (Test and Set Lock) Mecanismos de Software: Com Espera
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 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 maisSincronização e comunicação entre entidades de processamento. Mutex Volnys Bernal 1. Tópicos. Exclusão Mútua (mutex) Exclusão Mútua (Mutex)
2004-2013 Volnys Bernal 1 2004-2013 Volnys Bernal 2 Tópicos Exclusão Mútua (mutex) Volnys Borges Bernal volnys@lsi.usp.br http://www.lsi.usp.br/~volnys Exclusão Mútua () Objetivo, utilidade, requisitos
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 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 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 maisExclusão Mútua (mutex)
2004-2017 Volnys Bernal 1 Exclusão Mútua (mutex) Volnys Borges Bernal volnys@lsi.usp.br Departamento de Sistemas Eletrônicos Escola Politécnica da USP 2004-2017 Volnys Bernal 2 Tópicos Exclusão Mútua (Mutex)
Leia maisSistemas Operacionais. Universidade Federal de Minas Gerais. Aula 5. Implementação de Exclusão Mútua
Aula 5 Implementação de Exclusão Mútua Implementando Exclusão Mútua Via software Propriedades; Dois processos; Múltiplos processos Via hardware Desabilitando interrupções; read-modify-write test & set
Leia maisSistemas Operacionais. Condição de corrida e Região crítica
Sistemas Operacionais Condição de corrida e Região crítica Região Crítica Parte do código que acessa a área compartilhada Condição em que dois processos lêem e escrevem um dado compartilhado e o resultado
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 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 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 maisSistemas Operacionais. Comunicação entre processos
Sistemas Operacionais Comunicação entre processos Comunicação entre Processos Os SO s hoje são multi-tarefa Alguns processos precisam cooperar para cumprir seus objetivos Sugestões de implementação? Exemplos
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 maisSistemas Distribuídos Aula 5
Sistemas Distribuídos Aula 5 Aula passada Sincronização Race condition Região crítica Locks Algoritmo de Peterson Aula de hoje Atomicidade test-and-set Locks revisitado Semáforos Dois problemas Atomicidade
Leia maisTrincos Lógicos: Implementações. Trincos lógicos: Propriedades
Trincos Lógicos: Implementações Algorítmicas Hardware Sistema Operativo Trincos lógicos: Propriedades Exclusão mútua Progresso (liveness) Ausência de interblocagem (deadlock) Ausência de míngua (starvation)
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 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 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
Introdução Inst tituto de Info ormátic ca - UF FRGS Sistemas Operacionais i Multithreading Aula 04 Necessidade de executar atividades concorrentes, porém cooperantes ou que compartilhem dados endereçamento
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 maisSistemas Operacionais Concorrência. Carlos Ferraz Jorge Cavalcanti Fonsêca
Sistemas Operacionais Concorrência Carlos Ferraz (cagf@cin.ufpe.br) Jorge Cavalcanti Fonsêca (jcbf@cin.ufpe.br) POSIX Threads... ... POSIX Threads (2) Exercício } Executando n vezes e verificando a ordem
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 maisSincronização de Processos (1) Mecanismos de busy wait
Sincronização de Processos (1) Mecanismos de busy wait Condições de Corrida Exemplo: Fila de impressão. Qualquer processo que queira imprimir precisa colocar o seu documento na fila de impressão (compartilhada).
Leia maisExecução Concorrente
Sincronização Parte I Primitivas de Sincronização Sistemas Operativos 2015 / 2016 Execução Concorrente struct { int saldo; /* outras variáveis,ex. nome do titular, etc. */ conta_t; int levantar_dinheiro
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 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 maisSistemas Operacionais II
Introdução Instituto de Informátic ca - UFRGS Sistemas Operacionais II es Aula 06 Exclusão mútua pode ser obtida com variáveis lock e semáforos São mecanismos primitivos e estão sujeitos a erros no seu
Leia maisSistemas de Tempo-Real. Acesso exclusivo a recursos partilhados
Sistemas de Tempo-Real Aula 7 Acesso exclusivo a recursos partilhados O acesso exclusivo a recursos partilhados A inversão de prioridades como consequência do bloqueio Técnicas básicas para acesso exclusivo
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 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 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 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 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 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 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 maisSincronização e Comunicação entre Processos. Sincronização e Comunicação Volnys Bernal 1. Agenda
entre Processos 004-006 Volnys Bernal 004-006 Volnys Bernal Agenda entre Processos Volnys Borges Bernal volnys@lsi.usp.br http://www.lsi.usp.br/~volnys Região Crítica Classificação dos mecanismos de sincronização
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 maisCapítulo 3 Programação Concorrente. Nunca encontrei um homem tão ignorante que eu não pudesse aprender algo com ele.
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
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 de Tempo-Real. Acesso exclusivo a recursos partilhados
Sistemas de Tempo-Real Aula 7 Acesso exclusivo a recursos partilhados O acesso exclusivo a recursos partilhados A inversão de prioridades como consequência do bloqueio Técnicas básicas para acesso exclusivo
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 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 maisAlocação de Recursos. Introdução. Sistemas de Tempo Real: Introdução. Modelo de Recursos. Modelo de Recursos. Modelo de Recursos
Introdução Sistemas de Tempo Real: Alocação de Recursos Rômulo Silva de Oliveira Departamento de Automação e Sistemas DAS UFSC Processador é o recurso mais imtante Mais essencial Outros recursos também
Leia maisAlocação de Recursos. Introdução. Sistemas de Tempo Real: Introdução. Modelo de Recursos. Modelo de Recursos. Modelo de Recursos
Introdução Sistemas de Tempo Real: Alocação de Recursos Rômulo Silva de Oliveira Departamento de Automação e Sistemas DAS UFSC Processador é o recurso mais imtante Mais essencial Outros recursos também
Leia maisModelagem e implementação de programas concorrentes
Modelagem e implementação de programas concorrentes Aula 5 DCC-UFMG 2010 Bibliograa A de sempre + The Mutual Exclusion Problem Part I: A Theory of Interprocess Communication L. Lamport Interferencia Interferência:
Leia maisSistemas Operacionais
Introdução Sistemas Operacionais Gerência do processador (Escalonamento na prática) Aula 06 Sistemas atuais tem uma série de particularidades Multiprocessadores e multicore Existência de memória cache
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 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 maisSistemas Operacionais Gerência de Processos
Sistemas Operacionais Gerência de Processos Dierone C.Foltran Jr. prof.dierone at gmail.com Sistemas Operacionais 1 Introdução Programa executado por apenas um processo é dito de programa sequencial Existe
Leia maisFerramentas para Programação em Processadores Multi-Core
Ferramentas para Programação em Processadores Multi-Core Prof. Dr. Departamento de Informática Universidade Federal de Pelotas Sumário Introdução Arquiteturas multi-core Ferramentas de programação Prática
Leia maisSistemas Operacionais
Sistemas Operacionais Programação Concorrente Sincronização entre processos Edson Moreno edsonmoreno@pucrsbr http://wwwinfpucrsbr/~emoreno Sumário Conceituação Princípios de concorrência Região crítica
Leia maisProgramação Concorrente e Paralela. Noemi Rodriguez
2016 o que é programação concorrente e paralela? programação concorrente: composição de linhas de atividades independentes programação paralela: execução simultânea de linhas de atividades Go blog (Rob
Leia maisCarlos Eduardo Batista Centro de Informática - UFPB
Carlos Eduardo Batista Centro de Informática - UFPB bidu@ci.ufpb.br Motivação Arquitetura de computadores modernos Desafios da programação concorrente Definição de concorrência Correr junto Disputa por
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 maisFundamentos de Sistemas Operacionais
Fundamentos de Sistemas Operacionais Aula 12: Revisão para a P1 Diego Passos Capítulo 1 Sistemas Operacionais São programas. Duas funções: Gerenciar os recursos do hardware. Dividir entre os vários processos.
Leia maisSistemas Operacionais
Introdução Sistemas Operacionais Multithreading (multiprogramação leve) Aula 04 Forma diferente de enxergar a abstração de processo = Conjunto de recursos relacionados endereçamento, arquivos, filhos,
Leia maisSistemas Operacionais II
Mecanismos de sincronização de processos Instituto de Informátic ca - UFRGS Sistemas Operacionais II Da teoria à prática... (Processos, threads, mutex, semáforos, variáveis de condição e monitores) Aula
Leia maisCarlos Eduardo Batista Centro de Informática - UFPB
Carlos Eduardo Batista Centro de Informática - UFPB bidu@ci.ufpb.br Introdução O problema da Seção Crítica Seções Críticas: Spin Locks Implementando comandos Await Soluções justas Exercícios Programas
Leia maisSistemas Operacionais
Introdução Sistemas Operacionais Gerência do processador (Escalonamento na prática) Aula 06 Sistemas atuais tem uma série de particularidades Multiprocessadores e multicore Existência de memória cache
Leia maisNotas da Aula 5 - Fundamentos de Sistemas Operacionais
Notas da Aula 5 - Fundamentos de Sistemas Operacionais 1. Operações Atômicas Uma operação é dita atômica quando ela é indivisível no tempo. Em outras palavras, uma vez que a operação tenha sido iniciada,
Leia maisUniversidade Federal do Rio de Janeiro Informática DCC/IM. Arquitetura de Computadores II. Arquiteturas MIMD. Arquiteturas MIMD
Universidade Federal do Rio de Janeiro Informática DCC/IM Arquitetura de Computadores II Arquiteturas MIMD Arquiteturas MIMD As arquiteturas MIMD dividem-se em dois grandes modelos: Arquiteturas MIMD de
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 maisExclusão Mútua por Espera-Ocupada
Exclusão Mútua por Espera-Ocupada Walter Fetter Lages w.fetter@ieee.org Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Engenharia Elétrica Programa de Pós-Graduação em Engenharia
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 maisArquitetura de Sistemas Operativos
Arquitetura de Sistemas Operativos Sistemas Operativos 2011/2012 1 Requisitos de uma Secção Crítica Requisitos de uma Secção Crítica Antes de analisarmos as várias soluções para assegurar que um bloco
Leia maisSincronizaçã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 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 maisProgramação Concorrente. Prof. Hugo Vieira Neto
Programação Concorrente Prof. Hugo Vieira Neto Concorrência Um programa concorrente descreve diversas atividades que ocorrem simultaneamente, de modo diferente de programas comuns, que descrevem apenas
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 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 maisSistemas Operacionais. Universidade Federal de Minas Gerais. Aula 4. Comunicação e Sincronização de Processos
Aula 4 Comunicação e Sincronização de Processos Comunicação e Sincronização de Processos Cooperação Variáveis compartilhadas Operações atômicas Exclusão mútua Requisitos para exclusão mútua Referências:
Leia maisSistemas Operacionais
Introdução Sistemas Operacionais Gerência do processador (Escalonamento) Aula 05 Objetivos de um sistema operacional são: Eficiência: relação entre o uso efetivo de um recurso e a quantidade desse recurso
Leia maisIntrodução. Pedro Cruz. EEL770 Sistemas Operacionais
Introdução Pedro Cruz EEL770 Sistemas Operacionais Roteiro Informações úteis Motivação Definições Revisão de arquitetura 2 Contato Site da disciplina www.gta.ufrj.br/~cruz/courses/eel770 Email cruz@gta.ufrj.br
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 maisSistemas Operacionais
Sistemas Operacionais Processos - Parte 1 Prof. Dr. Fábio Rodrigues de la Rocha (Processos - Parte 1) 1 / 46 Um aspecto importante no estudo sobre sistemas operacionais é o gerenciamento de processos.
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 maisSistemas Operacionais
Sistemas Operacionais Introdução 2 a edição Capítulo 1 Revisão: Fev/2003 Introdução O que se espera de um sistema de computação? Execução de programas de usuários Permitir a solução de problemas Sistema
Leia maisSistemas Operacionais. Universidade Federal de Minas Gerais. Aula 6. Primitivas de Sincronização
Aula 6 Primitivas de Sincronização Primitivas de Sincronização Lock / Unlock Sleep / Wakeup Semáforo Monitores Mensagens Sincronização no Linux Lock / Unlock Funcionam como as primitivas vistas até agora
Leia maisCapítulo 6: Sincronização de Processos. Operating System Concepts 8th Edition
Capítulo 6: Sincronização de Processos Módulo 6: Sincronização de Processos Fundamentos O problema das Regiões Críticas Solução de Peterson Hardware de Sincronização Travas com Mutex Semáforos Problemas
Leia maisSincronização. Problema da Exclusão Mútua
Sincronização Parte I Primitivas de Sincronização Problema da Exclusão Mútua struct int saldo; /* outras variáveis,ex. nome do titular, etc. */ conta_t; int levantar_dinheiro (conta_t* conta, int valor)
Leia maisSistemas Operacionais
Sistemas Operacionais Prof. Jó Ueyama Apresentação baseada nos slides da Profa. Dra. Kalinka Castelo Branco, do Prof. Dr. Antônio Carlos Sementille e da Profa. Dra. Luciana A. F. Martimiano e nas transparências
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 maisSincronização e Comunicação de/entre Processos. Na Aula Anterior... Nesta Aula. Comunicação entre Processos. Pipes 07/09/2016
GSI018 Sistemas Operacionais 07/09/2016 Sincronização e Comunicação de/entre Processos Universidade Federal de Uberlândia Faculdade de Computação Prof. Dr. rer. nat. Daniel D. Abdala Na Aula Anterior...
Leia maisSistemas Operacionais Aula 7
Sistemas Operacionais Aula 7 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 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 maisSistemas Operacionais
Introdução 2 a edição Revisão: Fev/2003 Sistemas Operacionais Introdução Capítulo 1 O que se espera de um sistema de computação? Execução de programas de usuários Permitir a solução de problemas Sistema
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 mais6. Mostre os principais modelos de organização interna de um sistema operacional.
Trabalho 1 Sistemas Operacionais Embarcados Engenharia Elétrica Prof. Carlos Marcelo Pedroso 1 Problemas 1. O IBM 360 modelo 75 é cerca de 50 vezes mais rápida do que o IBM 360 modelo 30. Todavia, o tempo
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 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 maisAlocação de Recursos. Referências. Sistemas de Tempo Real: Introdução. Introdução. Modelo de Recursos. Modelo de Recursos
Referências Sistemas de Tempo Real: Alocação de Recursos Rômulo Silva de Oliveira Departamento de Automação e Sistemas - DAS UFSC romulo@das.ufsc.br http://www.das.ufsc.br/~romulo J.-M. Farines, J. da
Leia mais