Sistemas Operativos: Concorrência
|
|
|
- Lucinda Neiva Zagalo
- 9 Há anos
- Visualizações:
Transcrição
1 Sistemas Operativos: Concorrência Pedro F. Souto March 16, 2012
2 Sumário Race Conditions e Secções Críticas Exclusão Mútua via Programação Exclusão Mútua via Inibição de Interrupções. Locks Leitura Adicional
3 Sumário Race Conditions e Secções Críticas Exclusão Mútua via Programação Exclusão Mútua via Inibição de Interrupções. Locks Leitura Adicional
4 Interferência Em sistemas concorrentes, um processo (ou thread) pode estar sujeito à interferência de outros processos (ou threads) com os quais partilha estruturas de dados e pelo menos um dos acessos a essas estruturas é de escrita. Um exemplo clássico onde este problema pode ocorrer é o problema do produtor/consumidor: o thread produtor produz estruturas de dados; o thread consumidor consome essas estruturas de dados. O servidor de Web com múltiplos threads é um dos muitos exemplos práticos deste tipo de problema: o dispatcher recebe os pedidos dos clientes e passa-os aos workers para os processarem.
5 Problema do Produtor/Consumidor Implementação usando um vector circular: out 0 2 inserções... out 0 in 2 cnt 2 in 0 cnt 0 seguidas por uma remoção out 1 in 2 cnt 1
6 Solução de Bounded Buffer em C (1/2) Quando a comunicação entre o produtor e o consumidor é feita através dum buffer de capacidade finita, o problema do produtor/consumidor é designado por bounded buffer problem. #define BUF_SIZE 100 typedef struct { int cnt, in, out; void *buffer[buf_size]; } bbuf_t; void enter(bbuf_t *bbuf_p, void *obj_p) { assert( cnt < BUF_SIZE ); bbuf_p->buffer[bbuf_p->in] = obj_p; bbuf_p->in = (bbuf_p->in + 1) % BUF_SIZE; bbuf_p->cnt++; }
7 Solução do Bounded Buffer em C (2/2) void *remove(bbuf_t *bbuf_p) { void *obj_p; assert( cnt > 0 ); obj_p = bbuf_p->buffer[bbuf_p->out]; bbuf_p->out = (bbuf_p->out + 1) % BUF_SIZE; bbuf_p->cnt--; return obj_p; } O produtor deverá usar enter(), enquanto que o consumidor deverá usar remove().
8 Actualização do Número de Elementos Actualização do número de objectos no buffer (cnt): Pelo produtor: Pelo consumidor: LD (D),A LD (D), A INC A DEC A ST A,(D) ST A,(D) Onde: A e D são registos do CPU; (D) designa o conteúdo da posição de memória apontada por D.
9 Race Condition O produtor e o consumidor executam em simultâneo, i.e. concorrentemente, num PC com um único CPU. Por causa da comutação de threads, a ordem de execução das instruções pode ser: LD (D),A INC A LD (D), A DEC A ST A,(D) ST A,(D) O valor de cnt passa a estar incorrecto. Este tipo de situação, na qual a correcção da execução dum segmento de código depende da ordem da execução dos threads, designa-se por race condition.
10 Desenvolvimento de Aplicações Concorrentes Uma tarefa fundamental no desenvolvimento de aplicações concorrentes consiste: na identificação de possíveis condições de competição; na eliminação dessas condições de competição. Para eliminar condições de competição é necessário garantir exclusão mútua no acesso a variáveis partilhadas modificáveis. Isto aplica-se a quaisquer objectos (p.ex. ficheiros) partilhados. Encontrar condições de competição que escaparam na concepção e na codificação é extremamente difícil: quase todos os testes terminam com sucesso, mas uma vez num milhão ocorrem coisas inexplicáveis.
11 Secções Críticas Um segmento de código em que um thread acede a um objecto partilhado modificável designa-se por secção crítica. Secções críticas aparecem em conjuntos, tipicamente associados a objectos partilhados: secções críticas dentro do mesmo conjunto não podem ser executadas simultaneamente ; secções críticas pertencentes a conjuntos diferentes, podem ser executadas simultaneamente.
12 Secções Críticas A enters critical region A leaves critical region Process A B attempts to enter critical region B enters critical region B leaves critical regio Process B B blocked T 1 T 2 T 3 T 4 Time As secções críticas devem ser tão grandes quanto o necessário para garantir a correcção do programa, mas não maiores.
13 Secções Críticas: Critérios para uma Solução Tanenbaum sugere que uma solução para o problema das condições de competição deverá satisfazer as seguintes condições: 1. Não mais do que um thread poderá estar numa secção crítica (dum dado conjunto). 2. A solução não deverá depender da velocidade relativa de execução dos threads. 3. Threads que pretendem entrar numa secção crítica não devem ser bloqueados por threads que não executem dentro duma secção crítica (desse conjunto). 4. Nenhum thread deverá esperar indefinidamente para entrar na sua secção crítica. Mas, nem sempre estes são os critérios mais apropriados.
14 Sumário Race Conditions e Secções Críticas Exclusão Mútua via Programação Exclusão Mútua via Inibição de Interrupções. Locks Leitura Adicional
15 Secções Críticas: SW-only non-solution Uma não-solução ingénua baseada em programação é: while(busy); // wait if busy busy = 1; // keep out other processes... // critical section busy = 0; // leaving critical section... // non-critical section Obviamente, há uma condição de competição no acesso a busy.
16 Secções Críticas: SW-only solution Podem encontrar uma solução (de Peterson) para o caso de 2 processos em livros sobre SO. Há também várias soluções para n processos: entre as mais eficientes, a mais simples parece ser de Lamport (bakery algorithm): O algoritmo baseia-se no uso de números de forma semelhante ao usado para atendimento de clientes (daí o seu nome). Requer que os diferentes processos tenham identificadores distintos, para resolver empates. Soluções baseadas em HW são mais simples e eficientes.
17 Sumário Race Conditions e Secções Críticas Exclusão Mútua via Programação Exclusão Mútua via Inibição de Interrupções. Locks Leitura Adicional
18 Inibição de Interrupções Cada thread deverá: inibir interrupções imediatamente antes de entrar na secção crítica; e permiti-las imediatamente depois de sair. Por exemplo, na actualização de cnt do problema produtor/consumidor: DI DI LD (D),A LD (D), A INC A DEC A ST A,(D) ST A,(D) EI EI Com as interrupções inibidas não há comutação entre threads, e consequentemente não há possibilidade de condições de competição.
19 Inibição de Interrupções: Problemas Enquanto um thread estiver numa secção crítica, o CPU não pode responder a pedidos de interrupção: E se o thread se "esquecer" de permitir interrupções de novo? Inibição/permissão de interrupções é realizada através de instruções protegidas. Um único conjunto de secções críticas (SC). Não funciona em sistemas multiprocessador (ver à frente). Inibir interrupções: não é uma solução apropriada ao nível da aplicação; mas é uma técnica frequentemente usada no núcleo (kernel) dum sistema operativo.
20 Sumário Race Conditions e Secções Críticas Exclusão Mútua via Programação Exclusão Mútua via Inibição de Interrupções. Locks Leitura Adicional
21 Locks Um lock pode ser definido em C pelo seguinte tipo abstracto: typedef struct { unsigned short locked; struct thrd *waitq; /* queue of waiting threa } lock_t; void unlock(lock_t *lock_p); void lock(lock_t *lock_p); lock() bloqueia o thread e insere-o na fila de threads waitq, se locked == 1, senão altera o valor de locked para 1. unlock() desbloqueia um dos threads (em geral, o primeiro) da fila waitq, se algum, senão altera o valor de locked para 0.
22 Locks: algumas questões pertinentes Problema Mas, e lock() e unlock() não têm secções críticas? Resposta Sim, mas podemos inibir interrupções. Pergunta Mas, e agora já não há esquecimentos? Resposta Se lock() e unlock() forem implementadas como chamadas ao sistema (system calls), não há problemas. E o código de unlock() e lock() é curto, pelo que não deve afectar significativamente o tempo de resposta a interrupções.
23 Locks: Exemplo Consideremos o problema do bounded buffer de novo: [...] [...] lock(lp); lock(lp); cnt++; cnt--; lock(lp); unlock(lp); [...] [...] E se nos esquecermos de invocar unlock()? :) Boas notícias primeiro: as interrupções não ficam inibidas. :( Más notícias depois: um ou mais threads poderão bloquear, possivelmente indefinidamente, apesar de não haver qualquer thread na secção crítica. E se nos esquecermos de invocar lock()? Há a possibilidade de ocorrer uma race condition.
24 Locks (Mutexes) em libpthread Um mutex é uma variável do tipo pthread_mutex_t #include <pthread.h> pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER; Funções que operam sobre mutexes: int pthread_mutex_init(pthread_mutex_t *mutex, const pthread_mutexattr_t *attr); int pthread_mutex_destroy(pthread_mutex_t *mutex); int pthread_mutex_lock(pthread_mutex_t *mutex); int pthread_mutex_trylock(pthread_mutex_t *mutex); int pthread_mutex_unlock(pthread_mutex_t *mutex); pthread_mutex_trylock() tenta fazer o lock, mas não bloqueia o thread que o executa se o mutex já estiver no estado locked, ao contrário de pthread_mutex_lock(). Um mutex tem que ser inicializado antes de ser usado.
25 Sumário Race Conditions e Secções Críticas Exclusão Mútua via Programação Exclusão Mútua via Inibição de Interrupções. Locks Leitura Adicional
26 Leitura Adicional Sistemas Operativos Secções: 5.1 a 5.5 (excepto subsecções 5.4.2, e 5.5.3) Modern Operating Systems, 2nd. Ed. Subsecções 2.3.1, e (excepto último parágrafo: The TSL Instruction) Operating Systems Concepts Secções 6.1 e 6.2
Sistemas Operativos: Concorrência (Parte 2)
Sistemas Operativos: Concorrência (Parte 2) Pedro F. Souto ([email protected]) March 23, 2012 Sumário Instruções read-modify-write Atómicas. Problema do Lost Wakeup Semáforos Monitores Variáveis de Condição
Exclusão Mútua (mutex)
2004-2017 Volnys Bernal 1 Exclusão Mútua (mutex) Volnys Borges Bernal [email protected] Departamento de Sistemas Eletrônicos Escola Politécnica da USP 2004-2017 Volnys Bernal 2 Tópicos Exclusão Mútua (Mutex)
Sincronizaçã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 [email protected] http://www.lsi.usp.br/~volnys Exclusão Mútua () Objetivo, utilidade, requisitos
Programaçã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
Sistemas 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:
Sistemas Operativos: Implementação de Processos
Sistemas Operativos: Implementação de Processos Pedro F. Souto ([email protected]) March 8, 2012 Sumário: Implementação de Processos Contexto (Estado) dum Processo Comutação de Processos Escalonamento de Processos
Sistemas 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
Trincos 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)
Sistemas Operativos: Escalonamento de Processos
Sistemas Operativos: Escalonamento de Processos Pedro F. Souto ([email protected]) March 29, 2011 Sumário Escalonamento de Processos O Problema Algoritmos de Escalonamento de Processos Leitura Adicional Padrão
Sistemas 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
Sistemas 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
Sumário. Sistemas Operativos: Escalonamento de Processos e Deadlocks. Padrão de Execução dum Processo. Multiprocessamento
Sumário Sistemas Operativos: Escalonamento de Processos e Deadlocks Pedro F. Souto ([email protected]) May 18, 2008 Escalonamento de Processos O Problema Algoritmos de Escalonamento de Processos Leitura Adicional
Concorrência entre Processos
Concorrência entre Processos Prof. Dr. André Carvalho [email protected] Agenda n Concorrência entre Processos Condições de disputa, seções críticas n Soluções para Seções Críticas n Problemas clássicos
Aula 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:
Arquitetura de Sistemas Operativos
Arquitetura de Sistemas Operativos Sistemas Operativos 2011/2012 1 Threads Conceito Um processo é um programa em execução. A execução de um processo é sequencial: pode-se caracterizar um processo pelo
Sistemas 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
Comunicação entre Processos
Programação Paralela e Distribuída Ordenação e Sincronização Prof. Msc. Marcelo Iury de Sousa Oliveira [email protected] http://sites.google.com/site/marceloiury/ Comunicação entre Processos Processos
Sincronizaçã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
Sistemas 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
Tipos 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
Sistemas Operativos. Escalonamento e sincronização. Rui Maranhão
Sistemas Operativos Escalonamento e sincronização Rui Maranhão ([email protected]) Benefícios da Multiprogramação maximiza o tempo de utilização do CPU utilização do CPU = 1 - p n n é o número de processos
UNIVERSIDADE LUSÓFONA DE HUMANIDADES E TECNOLOGIAS C SISTEMAS OPERATIVOS
UNIVERSIDADE LUSÓFONA DE HUMANIDADES E TECNOLOGIAS C1203 - SISTEMAS OPERATIVOS 2º Semestre 2005/2006 27/7/2007 Resolução 1. Identifique três situações em que ocorra uma transição do modo de execução utilizador
Sistemas 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
Sistemas 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
Escalonamento. 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
Exclusão Mútua Distribuída. Algoritmos para eleição de um coordenador ou líder. UBI, DI, Paula Prata SDTF T04 1
Exclusão Mútua Distribuída Algoritmos para eleição de um coordenador ou líder 1 Suponhamos N processos, pi, i=1,2,,n que não partilham variáveis, mas que partilham algum recurso partilhado ao qual devem
Sincronizaçã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 [email protected] http://www.lsi.usp.br/~volnys Região Crítica Classificação dos mecanismos de sincronização
Capítulo 2 Processos e Threads
Capítulo 2 Processos e Threads 2.1 Processos 2.2 Threads 2.3 Comunicação interprocesso 2.4 Problemas clássicos de IPC 2.5 Escalonamento 1 Processos O Modelo de Processo Multiprogramação de quatro programas
Multiprocessamento. Escalonamento de Processos: Algoritmos. Escalonamento em POSIX. Escalonamento de Threads. Padrão de Execução dum Processo
Sumário Multiprocessamento. Escalonamento de Processos: Algoritmos. Escalonamento em POSIX. Escalonamento de Threads. 1 Padrão de Execução dum Processo Processos (e threads) alternam: execução de instruções;
Introdução aos Sistemas Operacionais. Threads
Introdução aos Sistemas Operacionais Threads Eleri Cardozo FEEC/Unicamp O que é uma Thread? Uma thread (linha de controle) é uma unidade de execução e de controle, alocação e compartilhamento de recursos
Sistemas 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
Sistemas Operacionais
Sistemas Operacionais Processos Semáforos Semáforos Mecanismo de sincronização que não requer espera ocupada Dijkstra propôs usar uma variável inteira para contar o n o de WAKEUPs para uso futuro Menos
Sistemas Operacionais. Prof. André Y. Kusumoto
Sistemas Operacionais Prof. André Y. Kusumoto [email protected] Fundamentos Paradigma do produtor-consumidor Sincronização de Processos Produtor while (count == BUFFER_SIZE) ; //no-op //adiciona
Mecanismos de Sincronização com Variáveis Compartilhadas
Mecanismos de Sincronização com Variáveis Compartilhadas Rômulo Silva de Oliveira Edição do Autor, 2018 www.romulosilvadeoliveira.eng.br/livrotemporeal Outubro/2018 1 Introdução Problema da seção crítica
Sistemas Operativos. Processos cooperantes e processos independentes
Processos (complementos) Processos cooperantes e processos independentes! Os processos que se executam de forma concorrente podem ser: Cooperantes podem afectar ou ser afectados pela execução de outros
Redes 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;
Concorrê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
Replicação. Modelos de Consistência.
Replicação. Modelos de Consistência. December 1, 2009 Sumário Introdução Questões Centrais da Replicação Modelos de Consistência Replicação O que é? O uso de múltiplas cópias de dados ou serviços (e estado
Comunicação entre processos (2)
Comunicação entre processos (2) Pedro Cruz EEL770 Sistemas Operacionais Lembretes Proposta de trabalho Enviar para [email protected] Prazo: dia 02 de abril 2 Aula passada Comunicação entre processos é útil
MC504 Sistemas Operacionais MC514 Sistemas Operacionais: Teoria e
Instituto de Computação Universidade Estadual de Campinas Nome: MC504 Sistemas Operacionais MC514 Sistemas Operacionais: Teoria e Prática Profa. Islene Calciolari Garcia 18 de setembro de 2013 Questão
Sistemas 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.
Fundamentos 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.
SO: Sincronização. Sistemas Operacionais Flavio Figueiredo (http://flaviovdf.github.io)
SO: Sincronização Sistemas Operacionais 2017-1 Flavio Figueiredo (http://flaviovdf.github.io) 1 Mapa da Disciplina Fim da Seção de Processos SOs geralmente são lecionados em três grandes temas Processos
Programação de Sistemas
Programação de Sistemas Pai Natal Programação de Sistemas Pai Natal : 1/16 Problema (1) Considere o Pai Natal ( Santa Claus ) se encontra a dormir na sua loja em Rovaniemi-Lapónia finlandesa, sendo acordado
Tipos de Soluções (cont.)
Tipos de Soluções (cont.) Sincronização de Processos: Semáforos Aula 12 Profa. Patrícia Dockhorn Costa Soluções de Hardware Inibição de interrupções Instrução TSL (apresenta busy wait) Soluções de software
Sincronizaçã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.
DEPARTAMENTO 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
Sistemas Operacionais. Sincronização: Semáforos Problema dos Leitores/Escritores
Sistemas Operacionais Sincronização: Semáforos Problema dos Leitores/Escritores Autoria Autores Eduardo André Mallmann 0905/96-9 João Paulo Reginatto 1530/96-0 Local Instituto de Informática UFRGS disciplina:
Linguagem de Programação I
Linguagem de Programação I Carlos Eduardo Batista Centro de Informática - UFPB [email protected] Exemplo: Explorar Templates e Exceções Incrementar com o uso de STL 2 Crie uma função verificarpalindromo()
Semá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;
Problema do Produtor -Consumidor. Solução por semáforos
Problema do Produtor -Consumidor Solução por semáforos Autoria Autores alunos da disciplina SO II Local Instituto de Informática UFRGS Versão v7 agosto de 2008 por C. Geyer Visão geral do assunto...2 Conceito...3
Grupo I [7 Val] 1. Considere os seguintes 3 algoritmos de escalonamento num sistema operativo de tempo virtual:
Número: Nome: LEIC/LERC 2012/13-1º Teste de Sistemas Operativos 24 de Novembro de 2011 Responda no enunciado, apenas no espaço fornecido. Identifique todas as folhas. Justifique todas as respostas. Duração:
Exclusão Mútua Distribuída. Algoritmos para eleição de um coordenador ou líder. UBI, DI, Paula Prata SDTF T04 1
Exclusão Mútua Distribuída Algoritmos para eleição de um coordenador ou líder 1 Há situações em que os processos de um sistema distribuído necessitam de coordenar as suas ações: - quando há recursos partilhados,
Semá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;
Sistemas Operativos: Deadlocks
Sistemas Operativos: Deadlocks Pedro F. Souto ([email protected]) March 30, 2012 Deadlocks Um deadlock é uma situação em que 2 ou mais processos ficam bloqueados indefinidamente pode ser uma race condition
Sistemas 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
Capítulo 7 Sincronização entre processos
Capítulo 7 Sincronização entre processos SUMÁRIO: Problemas inerentes à gestão de recursos Inconsistência de dados versus sincronização de processos Os problemas clássicos de sincronização O problema das
Processos 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
Programaçã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
Sistemas 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
Fundamentos 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:
