Sistemas Operacionais Processos
|
|
|
- Miguel Jardim Silveira
- 9 Há anos
- Visualizações:
Transcrição
1 Sistemas Operacionais Processos Prof. Raimundo Macêdo, DCC/UFBA
2 Processo processo: programa em execução consiste de: código do programa executável dados pilha de execução contador de programa valores de registros informações sobre estado de acesso a arquivos etc.
3 Árvore de Processos criação dinâmica de processos A processo pai processo pai processos filhos de B B D E F C processos filhos de A X Processo
4 Criação de Processos no Unix #include <stdlib.h> #define SHELL /bin/sh int my_system (const char *command) { int status; pid_t pid; } pid = fork(); if (pid == 0) { execl (SHELL, SHELL, -c, command, NULL); exit (EXIT_FAILURE); } else if (pid < 0) status = -1; else if (waitpid (pid, &status, 0)!= pid) status = -1; return status; main (int argn, char **argc) { my_system ( ls -la ); }
5 Processos no Linux LaSiD - Laboratório de Sistemas Distribuídos
6 struct task_struct armazena informações sobre processos ver arquivo include/linux/sched.h anexo
7 Alguns Atributos de Processos uid (user identification) gid (group identification) diretório corrente de trabalho descritores de arquivo padrão: standard input standard output standard error
8 Estados de um Processo Executando Bloqueado Pronto
9 Escalonamento de Processos Processos 0 1 n-1... Scheduler
10 Implementação de Processos o sistema operacional mantém uma tabela de processos na tabela de processos há uma entrada por processo
11 Exemplo de Tabela de Processos Gerenciamento de Processos Gerenciamento de Memória Gerenciamento de Arquivos registradores program counter apontador da pilha estado do processo tempo de início de execução tempo de CPU usado... apontador para segmento de código apontador para segmento de dados... diretório raiz diretório corrente descritores de arquivos...
12 Processo Abstrato pilha Concreto heap Processos Comunicação para realização das tarefas Processos Independentes, Competidores ou Cooperantes dados código
13 Processos em Sistemas Centralizados Comunicação Compartilhamento de Memória Primitivas: Semáforos, filas de mensagens, monitores, sinais etc Relógio Único RAM Pi Pn Pj Pk
14 Processos em Sistemas Distribuídos Comunicação Troca de Mensagens Primitivas: send(destino, mensagem) e receive(origem, mensagem) Pi Pj Pk Pn RAM RAM RAM RAM
15
16
17
18 Sincronização entre Processos Race condition: dois processos compartilham dados e o resultado depende de quem executa exatamente quando Solução : Exclusão Mútua
19 Propriedades de um programa distribuído (Lamport, 1977) LaSiD - Laboratório de Sistemas Distribuídos Exemplo:exclusão mútua num sistema controlando semáforos safety: dois semáforos numa estarão verde ao mesmo tempo liveness: um carro esperando na luz vermelha, receberá luz verde no futuro
20 Exemplo de Race Condition Extraído do livro Tanenbaum pg. 54 spooler de fila de impressão 1- A atualiza nexta = in A é interrompido pelo escalonador 3 - B atualiza netxb := in + 1 Processo A Processo B abc prog.c prog.n 4 - B faz spooler [nextb] := file; in := nextb; /* in = 7 * / 5 - Escalonador coloca A na CPU 6 - A faz spooler [nexta] := file; in := nexta; /* in = 7 * / out = 4 in = 6 in e out são variáveis compartilhadas Arquivo de B nunca será impresso
21 Formulação Abstrata do Requisito de Sincronização região crítica: parte do programa que acessa o recurso compartilhado exclusão mútua: garantia de que, se um processo está acessando a sua região crítica, nenhum outro processo estará fazendo o mesmo
22 Requisitos de uma boa solução dois processos não podem estar simultaneamente em suas regiões críticas (safety) nenhuma consideração deve ser feita sobre velocidades relativas de execução de processos nenhum processo executando fora de sua região crítica pode bloquear outros processos (safety) processos devem em algum instante poder entrar em suas regiões críticas (liveness)
23 As soluções em geral implicam : Ação anterior (testar condição)... RC Saída da região em crítica (liberar a RC para outros processos)
24 Métodos para Exclusão Mútua Desligar (desabilitar) interrupções Alternação estrita (strict alternation) Solução de Peterson Instrução TSL (test and set lock) Semáforos Monitores Troca de Mensagens
25 Desligar Interrupções solução simples não é recomendada no nível das aplicações pode ser útil para o kernel somente funciona para sistemas monoprocessados Desabilita as interrupções... RC Habilita interrupções
26 Tentando resolver o problema via software com uso de variáveis tipo tranca while (lock ==1) // wait lock = 1... R.C.... lock =0 Para sair Para entrar Problema : 2 processos podem entrar região crítica caso leia o valor de lock simultaneamente.
27 Resolvendo a Exclusão mútua com Alternação Estrita while (TRUE) { while (turn!= 0) /* wait */ critical_section(); turn = 1; noncritical_section(); } while (TRUE) { while (turn!= 1) /* wait */ critical_section(); turn = 0; noncritical_section(); } Problema : a falha ou não execução de um processo impedirá o acesso do outro processo
28 int wait_turn; Solução de Peterson int interested[2]; /* valores iniciais = 0 */ void enter_region (int process) { } int other; other = 1 - process; interested[process] = TRUE; wait_turn = process; while (wait_turn == process && interested[other] == TRUE); void leave_region (int process) { } interested[process] = False); Exercício para casa : 1) mostrar que a solução de peterson atende aos requisitos de exclusão mútua 2) fazer a versão generalizada para n processos Dica : usar esquema de senhas
29 Exemplo: P0 Solução de Peterson P1 Other = 1 0 = 1 Interested[0] = true wait_turn = 0 other = 1 1 = 0 interested[1] = true wiat_turn = 1 While(cond?) Entra RC LaSiD - Laboratório de Sistemas Distribuídos White(cond?) Espera
30 Solução de exercício Usar liga e desliga interrupções somente para implementar o teste do lock. Obs: lock assume inicialmente valor 1 Testa_RC: DI (desliga) LA lock (acumulador := lock) CMP A,#0 JNZ Entra_Região_Crítica LI (liga interrupções) JMP Testa_RC(testa novamente se valor de lock = 1) Entra_Região_Crítica Set lock,0 (lock:=0) LI (liga interrupções) Sai_RC set lock,#1 LaSiD - Laboratório de Sistemas Distribuídos
31 ... until false; Exercício (trazer na próxima aula) LaSiD - Laboratório de Sistemas Distribuídos A primeira solução de software correta para o problema de exclusão mútua foi feita por Dekker. Mostre que está correta segundo critérios dados em sala de aula. Repeat flag[i] := true; /* para tentar entrar na RC */ while flag[j] do if turn = j then begin flag[i] := false; while turn = j do no_op; flag[i] := true; end; RC... Turn := j; /* saida da RC */ Flag[i]:= false;
32 Resolvendo o Problema no Nível do LaSiD - Laboratório de Sistemas Distribuídos Hardware : A Instrução TSL atomicamente transfere uma posição da memória para um registrador e armazena um valor diferente de zero na na posição de memória enter_region: tsl reg, lock /* reg:= lock; lock:= 1; */ cmp reg, #0 /* reg 0 o valor de lock era zero? */ jnz enter_region /* loop se o valor de lock era 1 */ ret leave_region: mov lock, #0 /* lock := 0*/ ret
33 Tentando resolver o problema: while Enter_region (lock ==1) // wait lock com TST = o... R.C.... Leave_region lock =1 com TST Para entrar Para sair Problema : stavation.
34 Uso de Semáforos para Exclusão Mútua Wait = Down = P Signal = UP = V Wait(mutex) - bloqueia processo se a RC está ocupada Rergião Crítica Signal(mutex) libera a RC para outros processos
35 Semáforos de Dijkstra Abstração conveniente para lidar com o problema de acesso a região crítica e sincronização entre processos Um semáforo é uma variável inteira operações WAIT ou P (Proberen em holandês) SIGNAL ou V (Verhogen em holandês)
36 Semáforos de Dijkstra Definição Clássica de Semáforos Inicialmente S := 1; WAIT(S) : while S 0 no_op S := S -1; SIGNAL(S) : S := S + 1; OBS: Wait e Signal são atômicos pois são regiões críticas Exercício para Casa : Implementar WAIT e SIGNAL
37 Implementando Semáforos de Dijkstra WAIT(S) Enter_region: tsl reg, S /* reg:= S; S:= 1; */ cmp reg, #0 /* reg 0 o valor de lock era zero? */ jnz enter_region /* loop se o valor de lock era 1*/ ret SIGNAL(S): mov lock, #0 /* lock := 0*/ ret
38 Usando Semáforos para resolver o problema de acesso à região crítica para n processos LaSiD - Laboratório de Sistemas Distribuídos Solução : os processos compartilham um semáforo mutex (mutual exclusion) iniciado com valor 1 Repeat wait (mutex) seção crítica signal (mutex) resto da seção until false OBS: BUSY WAIT irá ocorrer, mas pode ser interessante para multiprocessadores ou quando o lock for rápido
39 Usando semáforos para sincronização entre processos cooperantes Exemplo: suponhas processos P1 e P2 cuja operação S1 de P1 necessariamente ter que ser executada antes da operação S2 de P2 Processo 1 S1; Signal (synch); Processo 2 wait (synch); S2;
40 Espera Ocupada (Busy Waiting) Os métodos: Alternação estrita (strict alternation) Solução de Peterson Instrução TSL (test and set lock) Semáforos convencionais são baseados em espera ocupada! implicam em gasto de tempo de CPU
41 Como resolver o problema de BUSY WAIT da especificação clássica dos semáforos? LaSiD - Laboratório de Sistemas Distribuídos Solução : uso de bloqueio de processos e filas de espera associadas aos semáforos Processo P WAIT (S) ---> processo P é bloqueado e colocado na fila de espera associado a S. O controle passa para o escalonador que então passo o controle para outro processo. Processo P SIGNAL (S) ---> o escalonador tira um processo associado a S do estado waiting para ready
42 Estrutura do semáforo com filas LaSiD - Laboratório de Sistemas Distribuídos Type semáforo = Record value : integer; L : lista de processos End; WAIT (S) : S.value := S.value - 1; if S.value < 0 then begin add P to S.L; end; SIGNAL (S) : S.value := S.value + 1; if S.value 0 then begin remove a P from S.L; wakeup(p); end;
43 Problemas Clássicos de sincronização que modelam vários Mecanismos de Sistemas Operacionais Produtor/Consumidor o problema dos filósofos (the dining philosophers problem) o problema dos leitores/escrevedores (the readers and writers problem) o problema do barbeiro que dorme (the sleeping barber problem)
44 O Problema Produtor/Consumidor dois processos compartilham um buffer comum, de tamanho fixo um deles, o produtor, coloca informação no buffer o outro, o consumidor, tira informações do buffer quando o buffer estiver cheio, o produtor dorme quando o buffer ficar vazio, o consumidor dorme este problema é sujeito a race condition
45 Produtor/Consumidor Usando buffer infinito consumidor produtor
46 Produtor entra_região_crítica buffer[fim] := item; fim := fim + 1; num_itens := num_itens +1 ; if num_itens If fim = in = then 1... then tira consumidor da fila FIFO sai_região_crítica Set in = 0; fim = 0;num_itens = 0; Consumidor entra_região_crítica if num_itens > 0 If fim > in then... item := buffer[in] in := in + 1; num_itens:= num_itens - 1; else coloca consumidor na fila FIF sai_região_crítica
47 Solução do problema do Produtor/Consumidor usando semáforo consumidor produtor Produtor repeat produz um novo item; wait (mutex); buffer[fim] := item; fim := fim + 1; Consumidor reapeat wait (full) wait (mutex) item := buffer[in] in := in + 1 signal (mutex); until false; Exercício : fazer o signal algoritmo (mutex); para buffer finito de tamanho N signal (full) until false;
48 Monitores encapsulamento de procedimentos, variáveis e estruturas processos chamam procedimentos do monitor apenas um processo pode estar ativo dentro do monitor num dado instante o compilador constrói a exclusão mútua
49 Estrutura de Monitores monitor example integer i; condition c; procedure producer(x);... end procedure consumer(x);... end end monitor
50 Monitores: Primitivas wait/signal Primitivas do Monitor wait(cond): bloqueia o processo que a chamou e espera por um signal. signal(cond): acorda um processo bloqueado O que fazer depois do signal Hoare: processo acordado ganha o direito de executar e bloqueia o processo que acordou B. Hansen: processo que executou signal() fica obrigado a deixar o monitor
51 Produtor/Consumidor usando Monitor Monitor ProdCons condition full, empty; int cont = 0; Procedure Enter; if (cont == N) wait(full); enter_item; cont = cont + 1; if (cont == 1) signal(empty); end; Procedure Remove; if (cont == 0) wait(empty); remove_item; cont = cont + 1; if (cont == N -1) signal(full); END; Procedure Prod; while (TRUE) Produce_item; ProdCons.Enter; endwhile; end; Procedure Cons; while (TRUE) ProdCons.Remove; Consome_item; endwhile; end; Características Exige suporte da linguagem de programação
52 Troca de Mensagens primitivas send(destino, mensagem) receive(fonte, mensagem) se nenhuma mensagem está disponível, o recebedor pode bloquear até que uma mensagem chegue
53 Produtor/Consumidor com Troca de Mensagens #define N 100 #define MSIZE 4 typedef int message[msize]; void producer(void) { int item; message m; while (TRUE) { produce_item(&item); receive(consumer,&m); build_message(&m,item); send(consumer,&m); } } void consumer(void) { int item; message m; for (int i=0; i<n; i++) send(producer,&m); while (TRUE) { receive(producer,&m); extract_item(&m,item); send(producer,&m); consume_item(item) } }
54 O problema dos filósofos garfo prato com spaghetti mesa
55 O problema dos filósofos (cont.) um conjunto de filósofos está sentado em volta de uma mesa cada filófoso tem um prato de spaghetti para comer o spaghetti, um filósofo precisa de dois garfos entre cada prato tem um garfo a vida de um filósofo consiste de períodos alternados de comer e pensar quando um filósofo tem fome, ele tenta obter os dois garfos ao lado de seu prato se o filósofo consegue obter os garfos, ele come por um tempo e depois repõe os garfos sobre a mesa como programar a ação dos filósofos?
56 O problema dos filósofos Pega o 1o e espera pelo 2o (se ocupado)
57 O problema dos filósofos Se o 2o estiver ocupado, larga os dois garfos Larga e tenta de novo
58 O problema dos filósofos Se o 2o estiver ocupado, larga os dois garfos Larga e tenta de novo APÓS um Tempo Aleatório
59 O problema dos filósofos Usando mutex para exclusão mútua Down(mutex) pega 1o pega 2o come larga os garfos up(mutex)
60
61 Uma solução para o problema dos filósofos #define N 5 #define LEFT (i-1)%n #define RIGHT (i+1)%n #define THINKING 0 #define HUNGRY 1 #define EATING 2 typedef int semaphore; int state[n]; semaphore mutex = 1; semaphore s[n]; void philosopher(int i) { while (TRUE) { think(); take_forks(i); eat(); put_forks(i); } } void take_forks(int i) { down(&mutex); state[i] = HUNGRY; test(i); up(&mutex); down(&s[i]); } void put_forks(int i) { down(&mutex); state[i] = THINKING; test(left); test(right); up(&mutex); } void test(int i) { if (state[i] == HUNGRY && state[left]!= EATING && state[right]!= EATING) { state[i] = EATING; up(&s[i]); } }
62
63 O problema do barbeiro que dorme um barbearia tem: um barbeiro uma cadeira para cortar cabelo n cadeiras para clientes se não há clientes, o barbeiro senta-se na cadeira de cortar cabelo e dorme quando um cliente chega, ele acorda o barbeiro se outros clientes chegam, eles sentam-se nas cadeiras (se houver cadeiras vagas) ou vão embora (se não há cadeiras) como programar o barbeiro e os clientes?
64
65 Uma solução para o problema do barbeiro que dorme #define CHAIRS 5 semaphore customers = 0; sempahore barbers = 0; semaphore mutex = 1; int waiting = 0; void Barber(void) { while (TRUE) { down(customers); down(mutex); waiting = waiting - 1; up(barbers); up(mutex); cut_hair(); } } void Customer(void) { down(mutex); if (waiting < CHAIRS) { waiting = waiting + 1; up(customers); up(mutex); down(barbers); get_haircut(); } else up(mutex); } }
66 Exercício Fazer uma solução para o problema do barbeiro considerando que não há cadeiras de espera
67 O problema dos leitores/escrevedores um conjunto de leitores e escrevedores podem ter acesso a um conjunto compartilhado de dados quando um escrevedor quer escrever, ele tem que ter acesso exclusivo aos dados vários leitores podem ler os dados ao mesmo tempo como programar os leitores e escrevedores?
68 Uma solução para o problema dos escritores/escrevedores semaphore mutex = 1; semaphore db = 1; int rc = 0; void reader(void) { while (TRUE) { down(&mutex); rc = rc + 1; if (rc == 1) down(&db); up(&mutex); read_database(); down(&mutex); rc = rc -1; if (rc == 0) up(&db); up(&mutex); use_data_read(); } } void writer (void) { } while (TRUE) { } think_up_data(); down(&mutex); write_database(); up(&mutex);
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
8 PROBLEMAS CLÁSSICOS
8 PROBLEMAS CLÁSSICOS 8.1.1 FILÓSOFOS GLUTÕES Contexto: temos cinco filósofos, cujas únicas atividades são comer macarrão e pensar. Além disso, o macarrão nunca acaba. Componentes do problema: 5 Filósofos
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. Técnicas de Implementação de Exclusão Mútua. Aula VI Prof. Rosemary Silveira
Sistemas Operacionais Técnicas de Implementação de Exclusão Mútua Aula VI Prof. Rosemary Silveira Tópicos de Apresentação Condições de Corrida Técnicas de Implementação de Exclusão Mútua Condições de Corrida
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 Operacionais Aula 08: Sincronização de Processos. Ezequiel R. Zorzal [email protected] www.ezequielzorzal.com
Sistemas Operacionais Aula 08: Sincronização de Processos Ezequiel R. Zorzal [email protected] www.ezequielzorzal.com Objetivos Introduzir o problema da seção crítica, cujas soluções podem ser usadas
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
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
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 de Processos (3) Exercícios - Semáforos
Sincronização de Processos (3) Exercícios - Semáforos Uso dos Semáforos 1. Sincronização de execução 2. Acesso a recursos limitados 3. Exclusão mútua Problema do pombo correio Problema do jantar dos canibais
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;
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
Produtor - Consumidor c/ Buffer Circular (1) Aula 13 - Exercícios - Semáforos. Produtor - Consumidor c/ Buffer Circular (3)
1 Produtor - Consumidor c/ Buffer Circular (1) Dois problemas p/ resolver: - Variáveis compartilhada - Coordenação quando o buffer estiver CHEIO ou VAZIO Sincronização de Processos (4) Próxima inserção
Sistemas 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
7 SINCRONIZAÇÃO DE PROCESSOS
7 SINCRONIZAÇÃO DE PROCESSOS Quando se trabalha com processos cooperativos, eles podem afetar uns aos outros. Eles compartilham recursos, principalmente posições de memória e arquivos. O acesso a dados
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
Exclusão Mútua Distribuída
Exclusão Mútua Distribuída Raimundo Macêdo Laboratório de Sistemas Distribuídos - LaSiD Universidade Federal da Bahia Propriedades de um programa distribuído (Lamport, 1977) Exemplo 2: sistema controlando
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:
Sincronização de Processos (3) Exercícios - Semáforos
Sincronização de Processos (3) Exercícios - Semáforos Uso dos Semáforos 1. Sincronização de execução 2. Acesso a recursos limitados 3. Exclusão mútua Problema do pombo correio Problema do jantar dos canibais
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
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 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
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
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
Aula 7. Problemas Clássicos de Sincronização. 1.1 O Jantar dos Filósofos. 1.2 Leitores e Escritores. 1.3 O Barbeiro Dorminhoco
Aula 7 Problemas Clássicos de Sincronização 1.1 O Jantar dos Filósofos 1.2 Leitores e Escritores 1.3 O Barbeiro Dorminhoco Problemas Clássicos de Sincronização Porque estudá-los: Arquétipos: Representação
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
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 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
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
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
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
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
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)
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:
Introduçã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
Sincronização de Processos (3) Exercícios - Semáforos
Sincronização de Processos (3) Exercícios - Semáforos Uso dos Semáforos 1. Sincronização de execução 2. Acesso a recursos limitados 3. Exclusão mútua Problema do pombo correio Problema do jantar dos canibais
Sincronização de Processos (4) Monitores
Sincronização de Processos (4) Monitores Monitores (1) Sugeridos por Dijkstra (1971) e desenvolvidos por Hoare (1974) e Brinch Hansen (1975), são estruturas de sincronização de alto nível, que têm por
Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO
Comunicação e Sincronismo entre processos Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO 1 Comunicação entre Processos Processos
Sistemas Operacionais
Sistemas Operacionais Programação Concorrente Problemas clássicos Edson Moreno [email protected] http://www.inf.pucrs.br/~emoreno Sumário Produtor / consumidor O jantar dos filósofos O barbeiro sonolento
Programação Concorrente
Programação Concorrente Monitores e Troca de Mensagens Monitores Considere que, no projeto da solução do produtor-consumidor com semáforos, os 2 downs tenham sido trocados Se o buffer estiver cheio deadlock
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
Sistemas 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
Sincronizaçã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
Capí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
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 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
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
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
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.
Unidade 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
Exercícios Resolvidos (Problemas Clássicos e Outros)
1) Produtor-consumidor com buffer limitado Exercícios Resolvidos (Problemas Clássicos e Outros) Este problema pode ser enunciado como segue. Um par de processos compartilha um buffer de N posições. O primeiro
Sistemas Operativos I
Sincronização de Processos Luis Lino Ferreira / Maria João Viamonte Fevereiro de 2006 Sumário Problemas inerentes à gestão de recursos Inconsistência de dados versus sincronização de processos O problema
SISTEMAS OPERACIONAIS. 2ª. Lista de Exercícios
SISTEMAS OPERACIONAIS INF09344 - Sistemas Operacionais / INF02780 - Sistemas Operacionais / INF02828 - Sistemas de Programação II Prof a. Roberta Lima Gomes ([email protected]) 2ª. Lista de Exercícios Data
LabSO Gerência de Processos. Processos. Porque eu preciso entender este assunto?
LabSO Gerência de AULA 3 Flávia Maristela ([email protected]) Romildo Martins ([email protected]) Porque eu preciso entender este assunto? Para entender como um computador consegue executar
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
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
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 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
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;
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 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 Operacionais
Sistemas Operacionais Problemas Clássicos de Comunicação entre Processos Norton Trevisan Roman Marcelo Morandini Jó Ueyama Apostila baseada nos trabalhos de Kalinka Castelo Branco, Antônio Carlos Sementille,
Conceito de Processo. Estados de Processos. Diagrama de Estados de Processos
Conceito de Processo Módulo 4: Processos Um Sistema Operacional executa uma variedade de programas: Sistemas de processamento em lotes (batch) processa jobs Sistemas de tempo partilhado (time shared) roda
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
Fundamentos. Módulo 6: Sincronização de Processos. Bounded-Buffer (Cont.) Bounded-Buffer
Módulo 6: Sincronização de Processos Fundamentos Fundamentos O problema das regiões críticas Hardware de Sincronização Semáforos Problemas Clássicos de Sincronização Regiões Críticas Monitores Sincronização
INE5645 Programação Paralela e Distribuída - Prova 1 22/10/2012 Aluno: Parte 1 Controle de Concorrência Conceitos Básicos (2,5)
INE5645 Programação Paralela e Distribuída - Prova 1 22/10/2012 Aluno: Parte 1 Controle de Concorrência Conceitos Básicos (2,5) 1.1 (Verdade/Falso) Itens próprios de processos são: Espaço de endereçamento,
Sistemas Operacionais Sincronização e Comunicação entre Processos
Universidade Estadual de Mato Grosso do Sul UEMS Curso de Licenciatura em Computação Sistemas Operacionais Sincronização e Comunicação entre Processos Prof. José Gonçalves Dias Neto [email protected]
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
Sistemas Operacionais. Prof. André Y. Kusumoto
Sistemas Operacionais Prof. André Y. Kusumoto [email protected] 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
