Sistemas Operacionais Processos
|
|
- Miguel Jardim Silveira
- 7 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);
Universidade 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 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 mais8 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
Leia maisSincronização de Processos (2)
Sincronização de Processos (2) Tipos de Soluções (cont.) Soluções de Hardware Inibição de interrupções Instrução TSL (apresenta busy wait) Soluções de software com busy wait Variável de bloqueio Alternância
Leia maisSistemas Operacionais. 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
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 maisSincronização de Processos (2)
Sincronização de Processos (2) Tipos de Soluções (cont.) Soluções de Hardware Inibição de interrupções Instrução TSL (apresenta busy wait) Soluções de software com busy wait Variável de bloqueio Alternância
Leia maisSistemas Operacionais Aula 08: Sincronização de Processos. Ezequiel R. Zorzal ezorzal@unifesp.br www.ezequielzorzal.com
Sistemas Operacionais Aula 08: Sincronização de Processos Ezequiel R. Zorzal ezorzal@unifesp.br www.ezequielzorzal.com Objetivos Introduzir o problema da seção crítica, cujas soluções podem ser usadas
Leia maisSistemas Operacionais
Sistemas Operacionais Processos - Parte 2 Prof. Dr. Fábio Rodrigues de la Rocha (Processos - Parte 2) 1 / 33 (Processos - Parte 2) 2 / 33 (Processos - Parte 2) 3 / 33 (Processos - Parte 2) 4 / 33 (Processos
Leia maisSSC0640 Sistemas Operacionais I
SSC0640 Sistemas Operacionais I 8ª Aula Comunicação e Sincronismo de Processos Profa. Sarita Mazzini Bruschi sarita@icmc.usp.br Slides adaptados de Marcos José Santana / Regina H. C. Santana / Luciana
Leia 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 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 maisSincronizaçã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
Leia maisUniversidade Federal do Pará Instituto de Ciências Exatas e Naturais Faculdade de Computação
Universidade Federal do Pará Instituto de Ciências Exatas e Naturais Faculdade de Computação SISTEMAS OPERACIONAIS Aula 7 Regiane Kawasaki kawasaki@ufpa.br Slides adaptados da Profa. Sarita Mazzini Bruschi
Leia 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 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 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 maisSemáforos. Gerenciamento de Recursos I
Semáforos O problema dos leitores/escritores, apresentado a seguir, consiste em sincronizar processos que consultam/atualizam dados em uma base comum. Pode haver mais de um leitor lendo ao mesmo tempo;
Leia maisComunicação entre processos (2)
Comunicação entre processos (2) Pedro Cruz EEL770 Sistemas Operacionais Lembretes Proposta de trabalho Enviar para cruz@gta.ufrj.br Prazo: dia 02 de abril 2 Aula passada Comunicação entre processos é útil
Leia maisProdutor - 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
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 mais7 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
Leia maisTipos 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
Leia maisExclusã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
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: 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 maisSincronizaçã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
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 maisSemáforos. Gerenciamento de Recursos I
Semáforos O problema dos leitores/escritores, apresentado a seguir, consiste em sincronizar processos que consultam/atualizam dados em uma base comum. Pode haver mais de um leitor lendo ao mesmo tempo;
Leia 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 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 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 maisSistemas 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
Leia maisAula 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
Leia maisSistemas de Computação. Threads e Sincronização
Threads e Sincronização Processos concorrentes Os processos em execução sob um sistema operacional podem ser: independentes (não há interferência entre eles) cooperativos (há interferência entre eles)
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 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 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 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 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 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 maisProgramação concorrente (processos e threads)
Programação concorrente (processos e threads) Programação concorrente Por que precisamos dela? Para utilizar o processador completamente Paralelismo entre CPU e dispositivos de I/O Para modelar o paralelismo
Leia maisSistemas Operacionais
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 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 maisProblema 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
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 maisRoteiro. BC1518-Sistemas Operacionais. Prof. Marcelo Z. do Nascimento Semáforos
BC1518-Sistemas Operacionais Sincronização de Processos (aula 6 Parte 2) Prof. Marcelo Z. do Nascimento marcelo.nascimento@ufabc.edu.br Roteiro Semáforos Problemas clássicos de comunicação entre processos
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 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 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 maisSistemas Operacionais
Introdução 2 a edição Revisão: Fev/2003 Sistemas Operacionais Programação concorrente Capítulo 3 Programa executado por apenas um processo é dito de programa seqüêncial Existe apenas um fluxo de controle
Leia maisSistemas Operacionais
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 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 maisSincronizaçã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
Leia maisSistemas Operacionais
Introdução Sistemas Operacionais Sincronização de processos Aula 08 Em sistemas multiprogramados há interação entre processos para comunicação, que pode ser feita via compartilhamento de memória/arquivos
Leia maisSincronizaçã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
Leia maisProf. 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
Leia maisSistemas Operacionais
Sistemas Operacionais Programação Concorrente Problemas clássicos Edson Moreno edson.moreno@pucrs.br http://www.inf.pucrs.br/~emoreno Sumário Produtor / consumidor O jantar dos filósofos O barbeiro sonolento
Leia maisProgramaçã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
Leia maisSistemas Operacionais. Prof. André Y. Kusumoto
Sistemas Operacionais Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com Fundamentos Paradigma do produtor-consumidor Sincronização de Processos Produtor while (count == BUFFER_SIZE) ; //no-op //adiciona
Leia maisSistemas Operacionais
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 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 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 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 maisTeste de Sistemas de Operação 30 de Maio de 2009
Teste de Sistemas de Operação 30 de Maio de 2009 Duração: 30 min B NOME: Indique apenas uma das alternativas. Respostas erradas descontam na nota. 1. Um pedido de entrada e saída sem buffering: (letra
Leia maisThreads em Java. Java Threads. Java Componentes: JVM JVM:
Threads em Java (Aula 17) Java Threads Difícil de classificar com user thread ou kernel thread As threads Java são gerenciadas pela JVM. Threads em Java podem ser criadas das seguintes maneiras: Fazendo
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 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
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 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 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 maisUnidade 3. Controle de Concorrência. Primitivas de Programação Concorrente Clássica
Unidade 3 Controle de Concorrência Primitivas de Programação Concorrente Clássica Programação Concorrente A abstração de programação concorrente é o estudo de sequênciasde execução intercaladas, de instruções
Leia 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 maisExercí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
Leia maisSistemas 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
Leia maisSISTEMAS 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 (soufes@gmail.com) 2ª. Lista de Exercícios Data
Leia maisLabSO Gerência de Processos. Processos. Porque eu preciso entender este assunto?
LabSO Gerência de AULA 3 Flávia Maristela (flavia@flaviamaristela.com) Romildo Martins (romildo@romildo.net) Porque eu preciso entender este assunto? Para entender como um computador consegue executar
Leia 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 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 maisMC504 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
Leia maisMecanismos 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
Leia maisSincronização e Comunicação entre Processos. Adão de Melo Neto
Sincronização e Comunicação entre Processos Adão de Melo Neto 1 MOTIVAÇÃO 2 INTRODUÇÃO Em um sistema multiprogramado (concorrente) os processos alternam sua execução (ou seja, são executados alternadamente
Leia 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 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 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 mais1 a Questão Unidade I e II (45 pontos)
DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO CURSO DE CIÊNCIA DA COMPUTAÇÃO SISTEMAS OPERACIONAIS I - 1 0 SEM/08 Teste 1 Unidades I e II Total: 200 pontos Aluno: Escore: 1 a Questão Unidade I e II (45 pontos)
Leia 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 II
O problema da seção crítica... Instituto de Informátic ca - UFRGS Sistemas Operacionais II Exclusão mútua (implementação) Aula 04 Seção crítica Porção de código que não pode ser executado por dois ou mais
Leia maisSistemas 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,
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 maisConceito 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
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 maisFundamentos. 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
Leia maisINE5645 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,
Leia maisSistemas 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 profneto_ti@hotmail.com
Leia maisSistemas Operativos: Concorrência (Parte 2)
Sistemas Operativos: Concorrência (Parte 2) Pedro F. Souto (pfs@fe.up.pt) April 1, 2014 Sumário Monitores Variáveis de Condição Semáforos Leitura Adicional Sumário Monitores Variáveis de Condição Semáforos
Leia maisConcorrência entre Processos
Concorrência entre Processos Prof. Dr. André Carvalho andre@icomp.ufam.edu.br 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
Leia maisTeste de Sistemas de Operação 15 de Abril de 2010
Teste de Sistemas de Operação 15 de Abril de 2010 Duração: 1 h (prática + teórica) D NOME: Indique apenas uma das alternativas. Respostas erradas descontam na nota. 1. Em um sistema que suporta multiprogramação
Leia maisSistemas Operacionais. Prof. André Y. Kusumoto
Sistemas Operacionais Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com Semáforos Sincronização de Processos Um semáforo é uma estrutura de dados que consiste em um número inteiro e em uma fila Seu
Leia mais