Exclusão Mútua (mutex)
|
|
|
- Amália Santarém
- 6 Há anos
- Visualizações:
Transcrição
1 Volnys Bernal 1 Exclusão Mútua (mutex) Volnys Borges Bernal [email protected] Departamento de Sistemas Eletrônicos Escola Politécnica da USP
2 Volnys Bernal 2 Tópicos Exclusão Mútua (Mutex) Objetivo, utilidade, requisitos e primitivas Alternativas para implementação de Exclusão Mútua Implementação em software (não funcionam) Alternância obrigatória Solução de Peterson Implementação utilizando recursos de baixo nível Desabilitar interrupção Instrução Test-And-Set (TST) Interface de mutex em Pthreads Problema de inversão de prioridade
3 Exclusão Mútua (mutex) Volnys Bernal 3
4 Volnys Bernal 4 Exclusão Mútua (Mutex) Objetivo: Técnica de sincronização que possibilita assegurar o acesso exclusivo (leitura e escrita) a um recurso compartilhado por duas ou mais entidades Utilidade Prevenção de problema de condição de disputa em regiões críticas Requisitos para a implementação de exclusão mútua 1- Nunca duas entidades podem estar simultaneamente em suas regiões críticas 2- Deve ser independente da quantidade e desempenho dos processadores 3- Nenhuma entidade fora da região crítica pode ter a exclusividade desta 4- Nenhuma entidade deve esperar eternamente para entrar em sua região crítica
5 Volnys Bernal 5 Exclusão Mútua (Mutex) Pode ser implementada com duas primitivas básicas: lock() [ ou enter_region() ] Garante a exclusividade da região crítica no ponto de entrada da região unlock() [ ou leave_region() ] Libera a exclusividade da região crítica no ponto de saída da região
6 Volnys Bernal 6 Região Crítica Exemplo: Região crítica sem proteção... <manipula recurso comparilhado> <manipula recurso comparilhado>... Região Crítica
7 Volnys Bernal 7 Exclusão Mútua (Mutex) Exemplo: Região crítica protegida com uso de mutex: lock( ) - para obter a exclusão mútua sobre a RC unlock( ) - para liberar a exclusão mútua sobre a RC... lock() <manipula recurso comparilhado> unlock() lock() <manipula recurso comparilhado> unlock()... Região Crítica com exclusão mútua
8 Volnys Bernal 8 Exclusão Mútua (Mutex) Exemplo: t1 Thread 1 entra na região crítica t2 Thread 2 tenta entrar na região crítica t3 Thread 1 A sai da região crítica; Thread 2 entra na região crítica t4 Thread 2 sai da região critica Thread 1 Thread 2 esperando t 1 t 2 t 3 t 4 t
9 Volnys Bernal 9 Exclusão Mútua (Mutex) Exemplo: Solução do problema do contador Thread1:... Repetir: <Realiza tarefa> lock() c = c + 1 unlock()... Thread2:... Repetir: <Realiza tarefa> lock() c = c + 1 unlock()...
10 Volnys Bernal 10 Uso de mutex: Interface de mutex em Pthreads
11 Volnys Bernal 11 Interface de mutex em Pthreads Primitivas pthreads // Iniciação estática pthread_mutex_t mymutex = PTHREAD_MUTEX_INITIALIZER; // Primitiva de iniciação dinâmica pthread_mutex_t mymutex; int pthread_mutex_init (pthread_mutex_t *mymutex, pthread_mutexattr_t *attr); // Demais primitivas int pthread_mutex_lock (pthread_mutex_t *mymutex) int pthread_mutex_unlock (pthread_mutex_t *mymutex) int pthread_mutex_trylock (pthread_mutex_t *mymutex)
12 Exercício Volnys Bernal 12
13 Volnys Bernal 13 Exercicio (1) Modifique o programa mythread.c para proteger a variável i contra condição de disputa utilizando primitivas mutex pthreads. Compile o programa mythread.c utilizando a biblioteca libpthread: cc -o mythread mythread.c lpthread Execute o programa mythread e verifique o resultado da execução:./mythread
14 #include <pthread.h> pthread_mutex_t mymutex; int i=0; Volnys Bernal 14 imprimir_msg(char *nome) { while (i<10) { pthread_mutex_lock(&mymutex); i++; printf("thread %s - %d\n", nome, i); pthread_mutex_unlock(&mymutex); sleep(2); } printf("thread %s terminado \n", nome); } int main() { pthread_t thread1; pthread_t thread2; pthread_mutex_init(&mymutex,null); printf("programa de teste de pthreads \n"); printf("disparando primeiro thread\n"); pthread_create(&thread1, NULL, (void*) imprimir_msg,"thread_1"); printf("disparando segundo thread\n"); pthread_create(&thread2, NULL, (void*) imprimir_msg,"thread_2"); pthread_join(thread1,null); pthread_join(thread2,null); printf("terminando processo"); }
15 Implementação de Mutex Volnys Bernal 15
16 Volnys Bernal 16 Implementação de Mutex Alternativas para implementação de exclusão mútua: Implementação em software Não funcionam a contento Ex: Alternância obrigatória, Solução de Peterson Implementação utilizando recursos de hardware Desabilitar interrupção Instrução Test-And-Set (TST)
17 Desabilitar Interrupção Volnys Bernal 17
18 Volnys Bernal 18 Desabilitar Interrupção Objetivo Controlar exclusão mútua em porções de código executados em modo supervisor (onde é permitido desabilitar a interrupção) Contexto de uso Condição de disputa entre código do sistema operacional e rotinas de tratamento de interrupção Ex: Device driver: Exclusão mútua entre rotina de tratamento de interrupção e código do device driver
19 Volnys Bernal 19 Desabilitar Interrupção Comentários O uso desta técnica está limitada às porções de código que executam em modo supervisor (onde existe permissão de acesso ao controlador de interrupção): Em ambientes operacionais de propósito geral: núcleo do sistema operacional Em sistemas embarcados: geralmente em qualquer porção do código, já que não existe diferenciação da execução em modo usuário e modo supervisor.
20 Volnys Bernal 20 Desabilitar Interrupção Exemplo de uso: Device driver Exclusão mútua entre rotina de tratamento de interrupção e código do device driver Método Desabilitar a ocorrência da interrupção do dispositivo controlado pelo device driver durante a execução da região crítica Problemas e limitações Em ambientes multiprocessadores deve ser utilizado em conjunto com mecanismos de espera ociosa com TST. Comentário Método muito usado neste contexto
21 Volnys Bernal 21 Desabilitar interrupção Exemplo: Para condição de disputa entre rotina de tratamento de interrupção de código do device driver: # lock() desabilita_interrupcao(controlador); # unlock() habilita_interrupcao(controlador);
22 Volnys Bernal 22 Desabilitar interrupção Ex: Kernel Linux Desabilitar interrupção local Ambiente monoprocessador x multiprocessador
23 Volnys Bernal 23 Instrução Test-And-Set-Lock
24 Volnys Bernal 24 Instrução Test-And-Set-Lock Objetivo Primitiva de baixo nível para implementação de sincronização Contexto de uso Mecanismo básico para implementação de primitivas de sincronização Descrição Instrução especial da CPU Operação (variável_memória) registrador (leitura) 1 (variável_memória) (escrita) Instrução atômica (indivisível) As operações de leitura da variável e alteração (escrita) do valor ocorrem em uma única instrução. Não existe possibilidade de ocorrer interrupção entre estas operações. Acesso atômico à memória Em sistemas multirprocessadores é garantido que o acesso á memória (leitura/escrita) seja atômico, ou seja, não seja interrompido entre as operações de leitura e escrita
25 Volnys Bernal 25 Instrução Test-And-Set-Lock Exemplo: Implementação de exclusão mútua utilizando TST var é uma variável alocada na memória lock: TST register,(var) # register var; var 1 CMP register,#0 # register == 0? JNE lock # se register!= 0, loop RET # retorna unlock: MOV (var),#0 # var 0 (libera lock) RET # retorna
26 Volnys Bernal 26 Problema da Inversão de Prioridade
27 Volnys Bernal 27 Problema de Inversão de Prioridade Descrição do problema Ambiente Ambiente monoprocessador Sistema com 2 threads: o Thread H Thread de alta prioridade, não preemptivo o Thread L Thread de baixa prioridade, preemptivo Utilização de primitivas de exclusão mútua com espera ociosa Escalonamento: o H sempre é executado quando está no estado pronto (ou seja, H tem preferência sobre L) Situação na qual ocorre o problema Thread L ganha a região crítica e thread H torna-se pronto Thread H é escalonado e tenta ganhar a região crítica Resultado Deadlock
28 Volnys Bernal 28 Problema de Inversão de Prioridade Exemplo com possibilidade de deadlock Thread1: Alta prioridade e não preemptível repetir... lock()... RC... unlock()... Thread2: Baixa prioridade e preemptível repetir... lock()... RC... unlock()... Região Crítica com exclusão mútua
29 Exercícios Volnys Bernal 29
30 Volnys Bernal 30 Exercício (4) Em relação ao problema do produtor-consumidor: (a) Faça um esboço de solução do problema sem levar em consideração as condições de disputa existentes. Produtor 1 Consumidor 1 Produtor 2 Produtor 3 Fila Consumidor 2
31 Volnys Bernal 31 Exercício Primeiro esboço de solução sem levar em consideração as condições de disputa Produtor: Repetir Produzir(E); InserirFila(F,E); Consumidor: Repetir E = RetirarFila(F); Processar(E);
32 Volnys Bernal 32 Exercício (b) Em relação ao problema do produtor-consumidor, analise o código, identifique as condições de disputa e defina as regiões críticas. Dica: Identifique os recursos que são compartilhados entre as entidades.
33 Volnys Bernal 33 Exercício Identificação das regiões críticas: Produtor: Repetir Produzir(E); InserirFila(F,E); Região crítica Consumidor: Repetir E = RetirarFila(F); Processar(E); Região crítica Fila: recurso compartilhado pode ser acessada de forma concorrente
34 Volnys Bernal 34 Exercício (c) Identifique necessidades de sincronização de espera por recursos. Dica: Identifique em quais situações a entidade deve aguardar por recursos estarem disponíveis. Estes recursos provavelmente são disputados pelas entidades! Neste caso específico, existem 2 recursos: um importante para os produtores e outro importante para os consumidores
35 Volnys Bernal 35 Exercício Necessidades de sincronização de espera por recursos: Produtor slots livres problema: quando não existem slots livres na fila Consumidor itens produzidos problema: quando não existem itens produzidos na fila
36 Volnys Bernal 36 Exercício Necessidades de sincronização de espera por recursos: Produtor: Repetir Produzir(E); InserirFila(F,E); Consumidor: Repetir E = RetirarFila(F); Processar(E); (1) Fila cheia: o recurso Fila é limitado, ou seja, a fila pode tornar-se cheia. Nesta situação (de fila cheia) os produtores devem aguardar a existência de slots livres. (2) Os consumidores podem ser mais rápidos que os produtores permitindo que em determinados momentos a fila fique vazia. Nesta situação (fila vazia), os consumidores dem aguardar a chegada de itens.
37 Volnys Bernal 37 Exercício (d) Altere o esboço do programa a fim de contornar o problema de espera por recursos (não se preocupe com condição de disputa, por enquanto).
38 Volnys Bernal 38 Exercício Alteração do programa (sem levar em consideração eventuais condições de disputa) Produtor: Repetir Produzir(E); Enquanto FilaCheia(F) Aguardar; InserirFila(F,E); Consumidor: Repetir Enquanto FilaVazia(F) Aguardar; E = RetirarFila(F); Processar(E);
39 Volnys Bernal 39 Exercício (e) Apresente uma solução para do acesso compartilhado aos recursos (fila) utilizando primitivas de exclusão mútua.
40 Volnys Bernal 40 Exercício Alteração do programa para evitar condição de disputa. Produtor: Repetir Produzir(E); Enquanto FilaCheia(F) Aguardar; InserirFila(F,E); Consumidor: Repetir Enquanto FilaVazia(F) aguardar; E = RetirarFila(F); Processar(E); Condição de disputa
41 Volnys Bernal 41 Exercício Alteração do programa para evitar condição de disputa. Produtor: Repetir Produzir(E); Enquanto FilaCheia(F) Aguardar; InserirFila(F,E); Consumidor: Repetir Enquanto FilaVazia(F) aguardar; E = RetirarFila(F); Processar(E); Região crítica R Região crítica R
42 Volnys Bernal 42 Exercício Primeiro esboço: proteção das regiões críticas Produtor: Repetir Produzir(E); lock(); Enquanto FilaCheia(F) Aguardar; InserirFila(F,E); unlock(); Consumidor: Repetir lock(); Enquanto FilaVazia(F) aguardar; E = RetirarFila(F); unlock(); Processar(E);
43 Volnys Bernal 43 Exercício (f) Baseado no esboço da 1ª solução apresentada responda: (a) O produtor, quando possui um item produzido e a fila está cheia o que ocorre? (b) O consumidor, quando deseja retirar um item da fila e a fila está vazia o que ocorre? (c) Qual é o problema que ocorre nestas situações no qual não existem recursos disponíveis?
44 Volnys Bernal 44 Exercício Primeiro esboço: proteção das regiões críticas Produtor: Repetir Produzir(E); lock(); Enquanto FilaCheia(F) Aguardar; InserirFila(F,E); unlock(); Consumidor: Repetir lock(); Enquanto FilaVazia(F) aguardar; E = RetirarFila(F); unlock(); Processar(E); Problemas: (1) Deadlock quando produtor encontra fila cheia (2) Deadlock quando consumidor encontra fila vazia
45 Volnys Bernal 45 Exercício Segundo esboço: Produtor() { repetir { Produzir(E); lock(); enquanto FilaCheia(F) { unlock(); lock(); } InserirFila(F,E); unlock(); } } Consumidor() { repetir { lock(); enquanto FilaVazia(F) { unlock(); lock(); } E = RetirarFila(F); unlock(); Processar(E); } }
46 Volnys Bernal 46 Exercício (g) Baseado no esboço da 2ª solução apresentada responda: (a) A implementação funciona com múltiplos produtores e múltiplos consumidores? (b) Suponha que o sistema seja monoprocessador. Qual tipo de primitiva é a mais recomendada: espera ociosa ou bloqueante? Porque? (c) Suponha que o sistema seja multiprocessador. Qual tipo de primitiva é a mais recomendada: espera ociosa ou bloqueante? Porque?
47 Volnys Bernal 47 Exercício (5) O problema do produtor-consumidor pode ser implementado utilizando-se um único buffer sincronizado por primitivas de exclusão mútua. Produtor 1 Consumidor 1 Produtor 2 Produtor 3 Consumidor 2
48 Volnys Bernal 48 Exercício O programa prodcons_buffer.c mostra uma implementação da solução do problema do produtor-consumidor utilizando-se um único buffer sincronizado por primitivas de exclusão mútua. Compile e execute este programa cc o prodcons_buffer prodcons_buffer.c -lpthread./prodcons_buffer Analise o programa e responda: (a) A solução apresentada resolve o problema de condição de disputa? (b) Qual é a condição de término dos produtores? (c) Qual é a condição de término dos consumidores? (d) Proponha uma condição de término para os consumidores.
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
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
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
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 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
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
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
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.
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
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
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
Pthreads. O que são threads? Mario João Junior. Uma thread é um fluxo de execução de instruções que pode ser escalonado pelo sistema operacional.
Pthreads Mario João Junior O que são threads? Uma thread é um fluxo de execução de instruções que pode ser escalonado pelo sistema operacional. O que são threads? No UNIX, uma thread: Existe no interior
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:
Comunicaçã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 [email protected] Capítulo 2 do livro do
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 MOTIVAÇÃO 2 INTRODUÇÃO Em um sistema multiprogramado (concorrente) os processos alternam sua execução (ou seja, são executados alternadamente
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
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
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 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
Sistemas Operativos: Concorrência
Sistemas Operativos: Concorrência Pedro F. Souto ([email protected]) March 16, 2012 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
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 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 - 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
Sistemas Operacionais Aula 07: Scheduling da CPU. Ezequiel R. Zorzal
Sistemas Operacionais Aula 07: Scheduling da CPU Ezequiel R. Zorzal [email protected] www.ezequielzorzal.com Objetivos Introduzir o Scheduling da CPU, que é a base dos sistemas operacionais multiprogramados
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
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.
Sincronizaçã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
Exercícios de Sistemas Operacionais 3 B (1) Gerência de Dispositivos de Entrada e Saída
Nome: Exercícios de Sistemas Operacionais 3 B (1) Gerência de Dispositivos de Entrada e Saída 1. A gerência de dispositivos de entrada e saída é uma das principais e mais complexas funções de um sistema
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
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
Sistemas Distribuídos Aula 3
Sistemas Distribuídos Aula 3 Aula passada Processos IPC Características Ex. sinais, pipes, sockets Aula de hoje Threads Kernel level User level Escalonamento Motivação: Servidor Web Considere Servidor
Sincronização e Comunicação Problemas Clássicos
2002-2016 Volnys Bernal 1 Sincronização e Comunicação Problemas Clássicos Volnys Borges Bernal [email protected] Departamento de Sistemas Eletrônicos Escola Politécnica da USP 2002-2016 Volnys Bernal 2
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)
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
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;
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
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. Sistema de entrada e Saída
Sistemas Operacionais Sistema de entrada e Saída Sistema de Entrada e Saída I/O É uma das principais tarefas de um sistema computacional Como máquina abstrata o S.O. deve oferecer uma visão padronizada
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
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
Programaçã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
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
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
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 Aula 3
Sistemas Operacionais Aula 3 Anderson L. S. Moreira [email protected] http://dase.ifpe.edu.br/~alsm Curso de Análise e Desenvolvimento de Sistemas de Informação Recife - PE O que fazer
Threads. Sistemas Operacionais. Charles Tim Batista Garrocho. Instituto Federal de São Paulo IFSP Campus Campos do Jordão. charles.garrocho.
Threads Sistemas Operacionais Charles Tim Batista Garrocho Instituto Federal de São Paulo IFSP Campus Campos do Jordão charles.garrocho.com/oso [email protected] Técnico em Informática Prof.
Algoritmos de escalonamento
Algoritmos de escalonamento Escalonamento de Processos Sistemas Interativos Algoritmos para Sistemas Interativos: First-Come-First-Served (FIFO) Round-Robin; Prioridade; Múltiplas Filas; Utilizam escalonamento
Threads em Ambiente LINUX. Estudo e testes com a biblioteca pthreads
Universidade Federal do ABC Disciplina: BC 1518 Sistemas Operacionais (SO) Prática: Threads Atividade 3 Threads em Ambiente LINUX Objetivo Estudo e testes com a biblioteca pthreads Threads Como vimos em
