©André Santos, 2000 Concorrência e Sincronização André Santos CIn-UFPE Concorrência.

Slides:



Advertisements
Apresentações semelhantes
Estruturação de Linguagens (Pascal e C++)
Advertisements

Sistemas Distribuídos
Diagrama de Atividades
Estruturas de Repetição
LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS INSTRUÇÕES DE CONTROLE – PARTE I Prof. Thiago Pereira Rique
Programação Concorrente
ESTRUTURAS DO TIPO FILA
Teste de Software Parte 3.
Introdução à Computação - Jorge Macêdo
Estruturas de repetição
Monitores.
Sistemas Operacionais II
Introdução a Programação
Walfredo Cirne Threads Walfredo Cirne
Curso UML Diagramas de Atividade
Sincronização de Processos (3)
Sincronização de Processos (2)
9 Controle de fluxo Seqüenciadores. Jumps. Escapes. Exceções.
Sincronização e Comunicação entre Processos
Threads.
Contratos Modelagem Funcional.
O Portal do Estudante de Computação
Threads sem Sincronização
Paradigmas de programação
Prof. Natalia Castro Fernandes Mestrado em Telecomunicações – UFF 2º semestre/2012.
Concorrência em Java Threads em Java.
Monitores.
Concorrência em Java Threads em Java.
Unidade 3 Controle de Concorrência
Concorrência em Java Threads em Java.
Linguagem de Programação I Parte III
Ponteiros em Pascal Variáveis ponteiros são aquelas que guardam o endereço de outra, possibilitando o acesso a seu conteúdo. Declaração em Pascal:  var.
FTIN Formação Técnica em Informática
Universidade Federal de Alagoas – UFAL Centro de Tecnologia – CTEC
Sistema Operacional Processos
Estruturas de Dados Módulo 3 – Controle de Fluxo
Sistemas Operacionais Profª Adriana Vettorazzo
Conjuntos (continuação)
Tipos de Dados Paradigmas de Programação
Teoria e Implementação de Linguagens Computacionais – IF688
Alexandre Mota/Augusto Sampaio {acm,
ALGORITMOS.
Módulo I Capítulo 4: Operador de Repetição
Troca de Mensagens Assíncronas n Canais de comunicação são filas ilimitadas de mensagens. n Processos inserem elementos nessa flia através de comandos.
Programação Orientada a Objetos - Java Professor: Jean Carlo Mendes.
Analise Semântica aula-10-analise-semântica.pdf.
Iteração – Capítulo 5 Programming from Specifications Carroll Morgan Prentice-Hall, 1994 Integrantes: Alex Motta Carlos Nascimento Paulo Maia.
Programação de Sistemas Distribuídos e Concorrentes
GERÊNCIA DE PROCESSOS Disciplina: Sistemas Operacionais II.
SISTEMAS OPERACIONAIS I
Sistemas Operacionais
Semáforos n Variáveis compartilhadas são globais n Acesso a variáveis ocorre em procedimentos, mas podem estar espalhados pelo programa n Exige consulta.
A Linguagem de Máquina – Desvios e Laços
Multiprocessamento Sérgio Cavalcante CIn GRECO - CIn / UFPE.
Fundamentos de linguagens de programação
©André Santos, Concorrência: Sincronização de fina granularidade II André Santos CIn-UFPE.
ALGORITMIA. ALGORITMO Conjunto de instruções ou acções que ao serem executadas, permitirão realizar uma determinada tarefa.
Processamento de Alto Desempenho Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo -
Engenharia de Sistemas Embarcados Aula 9: Salvo RTOS.
Introdução a Programação
©André Santos, Concorrência: Sincronização de fina granularidade André Santos CIn-UFPE.
Transações Banco de Dados II Aline S Costa 1. TRANSAÇÕES Conjunto de operações que formam uma única unidade lógica de trabalho; Conjunto de instruções.
Processos Concorrentes
Diagrama de Colaboração
Laço ou loop e repetição
Troca de Mensagens Síncronas n Consequências do uso de comunicação assíncrona:  Um processo pode se adiantar muito em relação aos outros. Para sincronizar.
Bruna Cavallero Martins Universidade Católica de Pelotas.
ProgramaçãoConcorrente Glêdson Elias
Laboratório de Computação Aula 06 e 07 – Implementação de classes Prof. Fábio Dias
Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos
Transcrição da apresentação:

©André Santos, 2000 Concorrência e Sincronização André Santos CIn-UFPE Concorrência

©André Santos, 2000 Notação: Declarações type days = (SUN,MON,...,SAT) var i : int := 0, x : real, s : string(10) var forks[1:5]:bool := ([5] false) type student = rec (name:string(30) age : int classes[1:5] : string(15))

©André Santos, 2000 Notação: Statements skip vector[1] := n + 2 v1 :=: v2 x := x+1; y := y-1 if B1 -> S1 []... [] Bn -> Sn fi

©André Santos, 2000 Notação: Statements do B1 -> S1 []... [] Bn -> Sn od MDC: x := X; y := Y do x > y -> x := x – y [] y > x -> y := y – x od

©André Santos, 2000 Notação: Statements fa i:=1 to n -> vector[i]:=0 af procedure inc (var x:int) x := x + 1 end

©André Santos, 2000 Notação: Concorrência co S1 //... // Sn oc x := 0; y := 0 co x:= x + 1 // y:= y + 1 oc z := x + y co i := 1 to n -> a[i]:=0 oc

©André Santos, 2000 Notação: Concorrência var a[1:n], b[1:n] : int Largest:: var max:int max:=a[1] fa j:=2 to n st max max := a[j] af

©André Santos, 2000 Notação: Concorrência Sum[i:1..n]:: b[i] := a[1] fa j:=2 to i -> b[i] := b[i] + a[j] af

©André Santos, 2000 Políticas de Escalonamento e Fairness n Várias das propriedades de liveness dependem de fairness. n O escalonamento se preocupa em como garantir que processos tenham chance de prosseguir, independentemente das ações dos demais processos.  A existência de várias ações elegíveis fazem com que uma política de escalonamento seja usada para definir qual será executada.

©André Santos, 2000 Atomicidade de fina granularidade n Ação atômica faz uma transformação indivisível no estado. n Qualquer estado intermediário na implementação da ação deve ser invisível para os outros processos. n Ação atômica de fina granularidade é implementada diretamente pelo hardware em que o programa concorrente executa.

©André Santos, 2000 Exemplo: atribuição n y:=0; z:=0 co x := y+z // y :=1; z:=2 oc n x = 0,1,2 ou 3?

©André Santos, 2000 Assumir nos exemplos n Valores de tipos básicos são lidos e escritos como uma ação atômica n Valores são manipulados carregando-os em registros, executando operações e depois guardando os resultados na memória. n Cada processo tem seu conjunto de registros (chaveamento de contexto) n Resultados intermediários são guardados em registros ou em memória.

©André Santos, 2000 Especificando sincronização n Objetivo: possibilitar criação de ações atômicas de maior granularidade. n Exemplo: modificação simultânea em um banco de dados S> 0) -> s := s-1>

©André Santos, 2000 Especificando sincronização Exclusão mútua Sincronização de condição 0> n Ação atômica incondicional x condicional

©André Santos, 2000 Políticas de Escalonamento e Fairness Exemplo: var continue := true Loop:: do continue -> skip od Stop:: continue := False n O que acontece se o escalonador faz o chaveamento de contexto (context switch) apenas quando um processo termina ou fica em espera?

©André Santos, 2000 Unconditional Fairness n Uma política de escalonamento é incondicionalmente justa se toda ação atômica incondicional que é elegível é executada em algum momento. n Para o exemplo anterior, round-robin ou execução paralela em multiprocessadores seria incondicionalmente justa.

©André Santos, 2000 Weak Fairness n Na presença de ações atômicas condicionais, é necessário hipóteses mais fortes para garantir que os processos vão progredir. n Uma política de escalonamento é fracamente justa se ela é incondicionalmente justa e toda ação atômica condicional elegível é executada em algum momento, assumindo que sua guarda se torne verdadeira e não seja subsequentemente mudada para falso por outro processo.

©André Santos, 2000 Weak Fairness n Round-robin e timeslicing são fracamente justas. n O processo em algum momento verá que sua condição de espera se tornou verdadeira.

©André Santos, 2000 Strong Fairness n Se a guarda pode mudar - de falsa para verdadeira e novamente para falsa – enquanto um processo espera. n Uma política de escalonamento é fortemente justa se ela é incondicionalmente justa e toda ação atômica condicional elegível é executada em algum momento, assumindo que a guarda é infinitamente frequentemente verdadeira.

©André Santos, 2000 Strong Fairness Exemplo: var continue := true, try := false; Loop:: do continue -> try := true; try := false od Stop:: continue := false>

©André Santos, 2000 Strong Fairness n De forma geral não é viável na prática:  Alternar a cada instrução  Escalonador de um multiprocessador n Não é fortemente justo:  Round-robin e timeslicing

©André Santos, 2000 Strong Fairness Instâncias específicas: 0) -> s := s - 1> n 2 processos de espera, demais incrementam s n Escalonador FCFS (First Come First Served)