Modelagem e implementação de programas concorrentes
|
|
- Andreia Ferrão Coimbra
- 6 Há anos
- Visualizações:
Transcrição
1 Modelagem e implementação de programas concorrentes Aula 5 DCC-UFMG 2010
2 Bibliograa A de sempre + The Mutual Exclusion Problem Part I: A Theory of Interprocess Communication L. Lamport
3 Interferencia Interferência: instruções executadas por um processo invalidam asserções em outro. Aparece por causa das variáveis compartilhadas A ação a não interfere com a asserção C se {C pre(a)} a {C} é sempre Verdadeiro (C é invariante respeito a execução de a) Exemplo: x = 1; // y = 2; z = x+y; z = x-y; Que podemos fazer ao respeito da interferência?
4 Interferencia 1. variables disjuntas processos independentes Sobreposição (interação de processos): 1. asserções enfraquecidas armamos menos do que poderiamos na execução isolada 2. invariantes globais predicados que são Verdadeiros em todos os estados visíveis 3. sincronização esconde estados (exclusão mutua <S>) ou demora a execução (sincronização por condição <await B S>)
5 Seção crítica Precedencia, ver Herlihy Chapter 2
6 Seção crítica Seção crítica: seqüência de ações envolvida no acesso a variáveis compartilhadas Problema da seção crítica: N processos executam em um loop innito uma sequencia de instruções dividida em 2 subsequencias: a seção critica e a seção nao-critica. <S i > CSEnter S i CSExit. Os processos não podem parar dentro da CS (em algum momento saem) A solução ao problema da seção crítica deve satisfazer 3 regras: Exclusão mutua Progresso (deadlock-freedom) Espera limitada
7 Seção crítica Exclusão mutua: Se o processo P 1 está executando na sua seção crítica, então nenhum outro processo pode ser executado nessa seção crítica (não pode ter dois processos na seção crítica ao mesmo tempo);
8 Seção crítica Progresso (deadlock-freedom?): Se um processo está tentando entrar na seção crítica, então algum processo (não necessariamente o mesmo) em algum momento entra a seção crítica. Estado ruim: varios processos esperando por condições que nunca irão ocorrer (deadlock se refere a uma condição especíca em que dois ou mais processos estão esperando porque o outro libere um recurso, ou mais de 2 processos estão esperando por recursos em uma cadeia circular);
9 Seção crítica Espera limitada (Bounded waiting) (starvation freedom?): Deve existir um limite no número de vezes que outros processos são permitidos de entrar na seção crítica, após a requisição de um processo de entrar na seção critica e antes de que esse pedido é satisfeito (starvation (inanição): a um processo se lhe negam perpetuamente recursos necessários)
10 Problema da seção crítica Como resolver o problema CS usando instruções de máquina diretamente (sem primitivas de sincronização)? Problema enunciado para N processos, mas começamos por 2! Note: somente existem 2 estados: ninguem na sua CS in1 = false in2 = false alguem na sua CS in1 = true in2 = true
11 Solução do problema da seção crítica in1 = false; in2 = false; { (in1 in2)} Processo 1 Processo 2 while (true) { while (true) { { (in1 in2)} in1 = true; in2 = true; { (in1 in2)}?? } CS1 in1 = false; NCS1 CS2 in2 = false; NCS2 Exclusão Mutua valendo sempre? Qualquer um entra na seção critica ainda que tenha outro dentro!! Sincronização!
12 Solução do problema da seção crítica in1 = false; in2 = false; Processo 1 Processo 2 while (true) { while (true) { <await not in2>; <await not in1>; --continua quando not in1 --continua quando not in1 in1 = true; in2 = true; { (in1 in2)}?? } CS1 in1 = false; NCS1 CS2 in2 = false; NCS2 Exclusão Mutua valendo sempre? Não! A leitura e a atribuição precisam ser atômicas!
13 Solução do problema da seção crítica in1 = false; in2 = false; Processo 1 Processo 2 while (true) { while (true) { <await not in2; <await not in1; in1 = true;> in2 = true;> { (in1 in2)} } CS1 in1 = false; NCS1 CS2 in2 = false; NCS2 Exclusão Mutua valendo sempre? Sim! A invariante (in1 in2) é verdadeira sempre.
14 Não deadlock Assumir que deadlock é possível, então ambos os processos estão bloqueados no await, ou seja, o processo 1 está no estado: P: { in1 in2} e o processo 2 está no estado: Q: {in1 in2} Mas o predicado P Q não pode ser verdadeiro (Veja teorema de exclusão de congurações no Andrews) porque não pode acontecer ao mesmo tempo de in1 ser verdadeiro e falso e in2 ser verdadeiro e falso Contradição! Portanto, o algoritmo é deadlock-free. Mas, como implementamos o await??
15 Operações atômicas comuns Test-and-set(TS) Swap Fetch-and-increment Compare-and-swap (CAS) Load-link/Store-conditional Read-modify-write Exemplo: CSenter: while (TS(lock)) skip; CS CSexit: lock = false # exemplo do Andrews
16 Seção crítica Mas, será possível implementar o await usando somente registros atômicos? Registros atômicos de leitura/escrita (read/write atomic registers): Objetos compartilhados que suportam operações de leitura e escrita atômicas.
17 Apresentação Herlihy: Algoritmo 1 em Java
18 Algoritmo 1 Cada processo anuncia que quer entrar na CS: flag1 = false; flag2 = false; Processo 1 Processo 2 while (true) { while (true) { flag1 = true flag2 = true while (flag2); while (flag1); CS1 CS2 flag1 = false; flag2 = false; } }
19 Algoritmo 1, exclusão mutua Assumindo que os intervalos não se sobrepõem, ou seja, CS j CS k A B e CS k CS j B A então: write A (A = true) read A (B = false) CS A write B (B = true) read B (A = false) CS B Assumindo B o último a ler o ag do outro: write A (A = true) read A (B = false) write B (B = true) read B (A = false) Chegamos a uma contradição: A==true e A==false sem nova atribuição (ela somente acontece na saida da CS e por hipótese o A ainda está na seção crítica).
20 Algoritmo 1, Deadlock-free? Não. O predicado {ag1 ag2} pode ser verdadeiro.
21 Algoritmo 2 Cada processo deixa passar ao outro primeiro: int victim; Processo A Processo B while (true) { while (true) { victim = A; --Cede a vez-- victim = B; while (victim==a); while (victim==b); CS1 CS2 } }
22 Algoritmo 2 Provar Exclusão mutua: pelo absurdo. Assumimos: CS j CS k A B e CS k CS j B A então: write A (victim = A) read A (victim = B) CS A write B (victim = B) read B (victim = A) CS B Assumindo A o último a ler o ag do outro: write B (victim = B) read B (victim = A) read A (victim = B) Chegamos a uma contradição: A não pode ter lido victim=b pois victim=a, não tem outra atribuição de victim=b até o B entrar de novo na CS e os registros são atômicos.
23 Algoritmo 2 Deadlock: Tem, processo A cede a vez a B, B executa e não volta a tentar entrar na CS.
24 Algoritmo de Peterson Misturar o melhor de cada um. Anuncio de intenção de entrada na CS e ceder a vez para evitar deadlock. flaga = false; flagb = false; Processo A Processo B while (true) { while (true) { flaga = true; flagb = true; victim = A; victim = B; while(flagb && victim = A); CSA flaga = false; } } while(flaga && victim = B); CSB flagb = false;
25 Algoritmo de Peterson flaga = false; flagb = false; Processo A Processo B while (true) { while (true) { flaga = true; flagb = true; victim = A; victim = B; while(flagb && victim = A); CSA flaga = false; } } while(flaga && victim = B); CSB flagb = false; Condição do await: agb && victim = A ca enquanto eu seja a vitima B esteja executando. Se o B já tiver tentado entrar (não sou mais a vítima) e B não esta dentro do CS posso entrar. Se o B não entrou ainda posso entrar. A condição agb (victim = A) exclui os casos em que agb victim=b (gera deadlock) e agb victim=a valem (não entra ainda que o B não esteja executando).
Sistemas Distribuídos
Sistemas Distribuídos Deadlocks Referência Sistemas operacionais modernos Andrew S. TANENBAUM Prentice-Hall, 1995 Seção 11.5 pág. 340-344 2 Conteúdo Detecção de deadlock distribuído Detecção centralizada
Leia maisGerenciamento de Transações em Banco de Dados
Gerenciamento de Transações em Banco de Dados Daniela Barreiro Claro MAT A60 Aula 13 Introdução à Transação 2 Transação É uma coleção de operações que formam uma única unidade lógica As transações acessam
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 maisContato. professorluisleite.wordpress.com
BD II Controle de Concorrência Professor: Luis Felipe Leite Contato luisleite@recife.ifpe.edu.br professorluisleite.wordpress.com Ciclo de três aulas Processamento de transações. Controle de Concorrência.
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 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 maisLinguagens de Programação
Linguagens de Programação Fabio Mascarenhas - 2015.2 http://www.dcc.ufrj.br/~fabiom/lp Introdução Quais das expressões abaixo têm o mesmo significado? (vector-ref a 42) Introdução Quais das expressões
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 maisSISTEMAS OPERACIONAIS
SISTEMAS OPERACIONAIS Deadlock Andreza Leite andreza.leite@univasf.edu.br Plano da Aula 2 Introdução Modelo de um Sistema Computacional Característica de um Deadlock Modelagem de um Deadlock (Grafos de
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 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 maisCapítulo 3. Programação Concorrente. Conteúdo. Objetivos. Recordando. Recordando. Objetivos de sistema operacional. DCA-108 Sistemas Operacionais
DCA-108 Sistemas Operacionais Capítulo 3 Luiz Affonso Guedes www.dca.ufrn.br/~affonso affonso@dca.ufrn.br Programação Luiz Affonso Guedes 1 Luiz Affonso Guedes 2 Conteúdo Caracterização e escopo da programação
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 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 maisDEADLOCKS IMPASSES. Vinícius Pádua
DEADLOCKS IMPASSES O que é um Deadlock? 2 O que é um Deadlock? Cenário Dois processos : Gravar CD com dados do scanner Processo A solicita o CD é autorizado Processo B solicita o scanner é autorizado Processo
Leia maisAlgoritmos e Programação
Algoritmos e Programação Aula 5 Estruturas de Repetição Profa. Marina Gomes marinagomes@unipampa.edu.br 26/04/2017 Engenharia de Computação - Unipampa 1 Aula de Hoje Estrutura de repetição Comando for
Leia maisAlgoritmos e Estruturas de Dados I (DCC/003) Estruturas Condicionais e de Repetição
Algoritmos e Estruturas de Dados I (DCC/003) Estruturas Condicionais e de Repetição 1 Comando while Deseja-se calcular o valor de: 1 + 2 + 3 +... + N. Observação: não sabemos, a priori, quantos termos
Leia maisLINGUAGEM C: COMANDOS DE REPETIÇÃO
LINGUAGEM C: COMANDOS DE REPETIÇÃO Prof. André Backes ESTRUTURAS DE REPETIÇÃO Uma estrutura de repetição permite que uma sequência de comandos seja executada repetidamente, enquanto determinadas condições
Leia maisPROGRAMAÇÃO ORIENTADA A OBJETOS. Aula 11 - Threads e Concorrência
Aula 11 - Threads e Concorrência Conteúdo Programático desta aula Apresentar os Conceitos de Threads, Concorrência e Sincronização. Verificar a aplicabilidade destes conceitos no mercado, bem como sua
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 maisSistemas Operacionais. Rodrigo Rubira Branco
Sistemas Operacionais Rodrigo Rubira Branco rodrigo@kernelhacking.com rodrigo@fgp.com.br Dispositivos de E/S O acesso aos registradores de dispositivo apresenta se como uma questao do projeto da CPU e
Leia maisSincronização e Comunicação entre Processos
Sincronização e Comunicação entre Processos Monitores/Semáforos Semáforos Mecanismos de sincronização nãoestruturados; Exige do desenvolvedor bastante cuidado, pois qualquer engano pode levar a problemas.
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 maisRoteiro. Introdução Sincronização de Relógio Físico Sincronização de Relógio Lógico Exclusão Mútua
Sincronização Roteiro Introdução Sincronização de Relógio Físico Sincronização de Relógio Lógico Exclusão Mútua Introdução A comunicação entre processos é importante, mas não é só isso que importa; Uma
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 maisProf. Silvana Rossetto 9 de julho de DCC/IM/UFRJ
Computação Concorrente (MAB117) Gabarito Segunda Prova Prof. Silvana Rossetto 9 de julho de 2015 1 DCC/IM/UFRJ Questão 1 (2,5 pts) O código Java abaixo implementa uma solução para o problema do barbeiro
Leia maisSistemas Distribuídos Aula 17
Sistemas Distribuídos Aula 17 Aula passada Garantindo ordenação total Relógio de vetores Propriedades Aula de hoje Exclusão mútua Algoritmo centralizado Algoritmo de Lamport Token Ring Exemplo Bancário
Leia maisLINGUAGEM C: COMANDOS DE CONTROLE CONDICIONAL
LINGUAGEM C: COMANDOS DE CONTROLE CONDICIONAL Prof. André Backes FLUXOGRAMAS Condição ou Decisão Representado por losangos Normalmente contém uma pergunta do tipo Sim/Não ou um teste de Verdadeiro/Falso.
Leia maisUniversidade Estadual de Mato Grosso do Sul UEMS Curso de Ciência da Computação Disciplina de Algoritmos Paralelos e Distribuídos
Universidade Estadual de Mato Grosso do Sul UEMS Curso de Ciência da Computação Disciplina de Algoritmos Paralelos e Distribuídos Pensando em Paralelo Pensar em paralelo é uma tarefa que exige disciplina
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 Operativos. Objetivo. Entrega do Questionário. Exercício 1. Exercício 2. Exercício 3. Exercício 4. Grupo 1 Introdução
Sistemas Operativos Objetivo O objetivo deste questionário é levá-lo a rever os conceitos básicos dos sistemas operativos, bem como os algoritmos de scheduling e mecanismos de sincronização estudados.
Leia maisCapí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
Leia maisUNIVERSIDADE FEDERAL DO RIO DE JANEIRO IM DCC CURSO DE CIÊNCIA DA COMPUTAÇÃO SISTEMAS OPERACIONAIS I 2010/2 PROGRAMA DA DISCIPLINA
UNIVERSIDADE FEDERAL DO RIO DE JANEIRO IM DCC CURSO DE CIÊNCIA DA COMPUTAÇÃO SISTEMAS OPERACIONAIS I 2010/2 Código: MAB366 Créditos: 04 Carga Horária: 60 horas Professor: Antonio Carlos Gay Thomé thome@nce.ufrj.br
Leia maisComunicação entre Processos
Comunicação entre Processos Prof. Dr. André Carvalho andre@icomp.ufam.edu.br Agenda n Comunicação entre Processos n Características dos mecanismos de comunicação Comunicação direta ou indireta, sincronismos,
Leia maisAnimação do funcionamento de um núcleo de sistema operacional. Marco Antonio Ruthes dos Santos Orientador : Mauro Marcelo Mattos
Marco Antonio Ruthes dos Santos Orientador : Mauro Marcelo Mattos Estrutura da apresentação: Objetivos do trabalho Base conceitual Modelo de Simulação Powerpoint Automation Simulação dos eventos do núcleo
Leia maisSISTEMAS OPERACIONAIS. Sincronização e Comunicação entre Processos UNIBAN
SISTEMAS OPERACIONAIS Sincronização e Comunicação entre Processos UNIBAN 40 SINCRONIZAÇÃO E COMUNICAÇÃO ENTRE PROCESSOS Na década de 1960, com o surgimento dos sistemas multiprogramáveis, passou a ser
Leia maisFundamentos de Sistemas Operacionais
Fundamentos de Sistemas Operacionais Aula 4: Programação Concorrente Diego Passos Últimas Aulas Processos Compostos por: Código (programa). Estado (memória, registradores). Em um sistema com multiprogramação:
Leia maisAlgoritmos Computacionais
UNIDADE 1 Processador e instruções Memórias Dispositivos de Entrada e Saída Software ARQUITETURA BÁSICA UCP Unidade central de processamento MEM Memória E/S Dispositivos de entrada e saída UCP UNIDADE
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 maisConceitos básicos de programação
Para aprender uma linguagem de programação podemos começar por conhecer os vocábulos ou símbolos que formam o seu léxico e depois aprender como esses vocábulos integram as instruções (frases) que compõe
Leia maisDeadlocks. Sistemas Operacionais - Professor Machado
Deadlocks Sistemas Operacionais - Professor Machado 1 Deadlock - Definição Um conjunto de processos está em situação de deadlock se todo processo pertencente ao conjunto estiver esperando por um evento
Leia maisALGORITMOS DISTRIBUÍDOS Deadlock
ALGORITMOS DISTRIBUÍDOS Deadlock Sistemas Distribuídos 231 Um deadlock é causado pela situação onde um conjunto de processos está bloqueado permanentemente, i.e., não conseguem prosseguir a execução, esperando
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 maisResumo: Sistemas Operacionais Abertos
Resumo: Sistemas Operacionais Abertos Prof. Michael A. Pontes Processos Um processo é um programa em execução. Enquanto um processo é executado, ele muda de estado. O estado de um processo é definido pela
Leia maisAula 4 Estruturas de Controle
UNIP Universidade Paulista Ciência da Computação Aula 4 Estruturas de Controle Prof. Célio Ricardo Castelano 1 Tópicos Abordados 1) Instruções de seleção em Java: 2) Instruções de repetição em Java: 2
Leia maisExame de 1ª Época Introdução à Programação IGE e ETI 2003/02/25-1º semestre de 2002/2003 ISCTE
Recibo do Exame de 1ª Época de Introdução à Programação (IGE e ETI), 2003/02/25 1º semestre de 2002/2003, ISCTE Nome do aluno:... Número do aluno:... Assinatura do docente:... Notas: Exame de 1ª Época
Leia maisCapítulo 2: Procedimentos e algoritmos
Capítulo 2: Procedimentos e algoritmos Para estudar o processo de computação de um ponto de vista teórico, com a finalidade de caracterizar o que é ou não é computável, é necessário introduzir um modelo
Leia maisProgramação Concorrente. 2º Semestre 2010
Programação Concorrente 2º Semestre 2 Tópicos de Hoje Assunto: Deadlocks Livro Texto Capítulo 4; Conceitos Iniciais; Tipos de Recursos; Condições necessárias para ocorrência de deadlock; Um sistemas livre
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 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 maisESTRUTURAS DE REPETIÇÃO - PARTE 1
AULA 15 ESTRUTURAS DE REPETIÇÃO - PARTE 1 15.1 O comando enquanto-faca- Considere o problema de escrever um algoritmo para ler um número inteiro positivo, n, e escrever todos os números inteiros de 1 a
Leia maisModelo de Programação Paralela
Modelo de Programação Paralela As arquiteturas paralelas e distribuídas possuem muitos detalhes Como especificar uma solução paralela pensando em todos esses detalhes? O que queremos? Eecutar a solução
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 maisIntrodução ao Fortran 90. Aula 3
Introdução ao Fortran 90 Aula 3 Usando vetores e matrizes Definição Uma matriz ou vetor consiste de um conjunto retangular de elementos, todos do mesmo tipo e espécie do tipo. Uma matriz ou vetor é um
Leia maisAula 4 Objetivos if/else while
Objetivos Tomadas de decisão Algoritmos; Estruturas de controle; A estrutura de seleção if; A estrutura de seleção if/else; A estrutura de repetição while. Tomadas de decisão Operadores de igualdade e
Leia maisParadigmas de Computação Paralela (UCE Computação Paralela Distribuída)
Paradigmas de Computação Paralela (UCE Computação Paralela Distribuída) Modelos de consistência de memória João Luís Ferreira Sobral jls@... 29 Março 2011 Resumo Revisão: modelos de threads Qual a necessidade
Leia maisModelos de Programação de Tempo Real
Modelos de Programação de Tempo Real Eduardo Ferreira dos Santos Ciência da Computação Centro Universitário de Brasília UniCEUB Março, 2016 1 / 27 Sumário 1 Características de Tempo Real 2 Multiprogramação
Leia maisSistemas Operacionais. Sincronização: Semáforos Problema dos Leitores/Escritores
Sistemas Operacionais Sincronização: Semáforos Problema dos Leitores/Escritores Autoria Autores Eduardo André Mallmann 0905/96-9 João Paulo Reginatto 1530/96-0 Local Instituto de Informática UFRGS disciplina:
Leia maisReplicação. Modelos de Consistência.
Replicação. Modelos de Consistência. December 1, 2009 Sumário Introdução Questões Centrais da Replicação Modelos de Consistência Replicação O que é? O uso de múltiplas cópias de dados ou serviços (e estado
Leia maisOrganização de Computadores
Organização de Computadores Aula 28 Operação da Unidade de Controle Rodrigo Hausen 17 de novembro de 2011 http://cuco.pro.br/ach2034 1/44 Apresentação 1. Bases Teóricas 2. Organização de computadores...
Leia maisMonitores. Paulo Sérgio Almeida. Grupo de Sistemas Distribuídos Departamento de Informática Universidade do Minho
Monitores Paulo Sérgio Almeida Grupo de Sistemas Distribuídos Departamento de Informática Universidade do Minho c 2006 2008 Paulo Sérgio Almeida Monitores 1 Problemas com semáforos Semáforo é uma primitiva
Leia maisResolução de sistemas de equações lineares: Método de eliminação de Gauss - estratégias de pivotamento
Resolução de sistemas de equações lineares: Método de eliminação de Gauss - estratégias de pivotamento Marina Andretta ICMC-USP 28 de março de 2012 Baseado no livro Análise Numérica, de R. L. Burden e
Leia mais(Model Checking) Estes slides são baseados nas notas de aula da Profa. Corina
Verificação de Modelos (Model Checking) Estes slides são baseados nas notas de aula da Profa. Corina Cîrstea Lista de Leitura para a Parte Teórica M. Huth and M. Ryan, Logic in Computer Science Modelling
Leia maisMétodos Computacionais. Operadores, Expressões Aritméticas e Entrada/Saída de Dados
Métodos Computacionais Operadores, Expressões Aritméticas e Entrada/Saída de Dados Tópicos da Aula Hoje aprenderemos a escrever um programa em C que pode realizar cálculos Conceito de expressão Tipos de
Leia maisEXPRESSÕES ARITMÉTICAS PARTE 1
AULA 5 EXPRESSÕES ARITMÉTICAS PARTE 1 5.1 Operadores aritméticos Os operadores aritméticos definem as operações aritméticas que podem ser realizadas sobre os números inteiros e reais. Para os inteiros,
Leia mais7 Comandos e Estruturas de Controle
Lógica para a Programação - 1º semestre AULA 03 Prof. André Moraes 7 Comandos e Estruturas de Controle Na criação de algoritmos é comum utilizar conceitos de bloco lógico, entrada e saída de dados, constantes,
Leia maisA resposta apresentada em aula, no quadro, (em Chapin e/ou Português Estruturado) está correta?
23 Algoritmos com Repetição Nos exemplos e exercícios vistos até agora, sempre foi possível resolver os problemas com uma sequência de instruções que eram executadas apenas uma vez. Existem três estruturas
Leia maisProgramação Paralela e Distribuída Lista de Exercícios P2 2008/1
Programação Paralela e Distribuída Lista de Exercícios P2 2008/1 Sincronização de Relógio Questão 1 Explique por que existe a necessidade de sincronização de relógio em sistemas distribuídos. Questão 2
Leia maisProcessos e Threads e em sistemas distribuídos. Prof. Me. Hélio Esperidião
Processos e Threads e em sistemas distribuídos. Prof. Me. Hélio Esperidião Processos Sistemas operacionais modernos criam vários processadores virtuais, cada um para executar um programa. Para monitorar
Leia maisIntrodução à Lógica de Programação. Adaptação de Luis Otavio Alvares
1 Introdução à Lógica de Programação Adaptação de Luis Otavio Alvares 2 Elaboração de um programa Problema Análise Programa Algoritmo 3 Processo de geração de um programa Análise do problema: Ler atentamente
Leia maisUnidade VI. Técnicas de Teste de Software Teste Estrutural. Profa. Dra. Sandra Fabbri
Unidade VI Técnicas de Teste de Software Profa. Dra. Sandra Fabbri Os requisitos de teste são extraídos de uma implementação em particular Teste dos detalhes procedimentais A maioria dos critérios dessa
Leia maisSistemas Distribuídos
Sistemas Distribuídos Transações atômicas Conteúdo O modelo transacional Armazenamento estável Primitivas transacionais Propriedades das transações Transações aninhadas Implementação Área de trabalho privada
Leia maisJuliana Kaizer Vizzotto. Universidade Federal de Santa Maria. Disciplina de Teoria da Computação
Universidade Federal de Santa Maria Disciplina de Teoria da Computação Quais são as capacidades e limitações fundamentais dos computadores? Funções Computáveis Algoritmo: descrição finitade uma computação
Leia maisProgramação Aplicada à Engenharia
Universidade Federal Rural do Semi-Árido Departamento de Ciências Ambientais Programação Aplicada à Engenharia Aula 07: Aritmética e Tomada de decisão Silvio Fernandes 2009.1 1 Operadores Aritméticos Operadores
Leia maisSistemas Operacionais
Sistemas Operacionais I Índice 2 Processos...1 2.1 Introdução...1 2.1.1 Hierarquia de Processos...2 2.1.2 Estados dos Processos...3 2.1.3 Implementação de Processos...4 2.2 Comunicação entre Processos...5
Leia maisSistemas Operacionais. DeadLock. Edeyson Andrade Gomes.
Sistemas Operacionais DeadLock Edeyson Andrade Gomes www.edeyson.com.br Roteiro da Aula DeadLock Metas Algoritmos 2 DeadLock Um estado de deadlock ocorre quando dois ou mais processos estão esperando por
Leia maisMatemática para Ciência de Computadores
Matemática para Ciência de Computadores 1 o Ano - LCC & ERSI Luís Antunes lfa@ncc.up.pt DCC-FCUP Complexidade 2002/03 1 Teoria de Conjuntos Um conjunto é uma colecção de objectos/elementos/membros. (Cantor
Leia maisComputação 1 - Python Aula 8 - Teórica: Estrutura de Repetição : for 1/ 10
Computação 1 - Python Aula 8 - Teórica: Estrutura de Repetição : for 1/ 10 Estrutura de Repetição while Estrutura que permite a repetição de um conjunto de comandos. Até o momento vimos o while: while
Leia maisProcessamento de Transações. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri
Processamento de Transações Banco de Dados Introdução Ambiente multiusuário vários usuários utilizam o mesmo sistema ao mesmo tempo múltiplos programas (transações) compartilham a mesma CPU Forma de execução
Leia mais12 Indicador de Passagem
1 Indicador de Passagem Ronaldo F. Hashimoto, Carlos H. Morimoto e Leliane N. de Barros Indicador de Passagem é um padrão bastante utilizado em computação para identificar a ocorrência de um evento que
Leia maisGrafos. Notas. Notas. Notas. Notas. Caminhos mais curtos de única origem. Subestrutura ótima. Propriedades de caminhos mais curtos
Grafos Caminhos mais curtos de única origem Conteúdo Subestrutura ótima Inicialização Propriedades de caminhos mais curtos Algoritmos Algoritmo de Bellman-Ford Caminhos mais curtos de única origem em gaos
Leia maisa) Defina uma função que recebe como argumento um número natural n e devolve o número de divisores desse número.
IP, Resoluções comentadas, Semana 3 jrg, vs 002, Out-2012 a) Defina uma função que recebe como argumento um número natural n e devolve o número de divisores desse número. Para resolver o problema temos
Leia maisPCS-2529 Introdução aos Processadores. Prof. Dr. Paulo Sérgio Cugnasca
PCS-2529 Introdução aos Processadores Prof. Dr. Paulo Sérgio Cugnasca 1 2 Existem 4 esquemas diferentes de E/S possíveis, cada um se aplicando em uma determinada situação. E/S Programada. E/S Acionada
Leia maisUFRJ IM - DCC. Sistemas Operacionais I. Unidade IV Gerência de Recursos Entrada e Saída. 02/12/2014 Prof. Valeria M. Bastos
UFRJ IM - DCC Sistemas Operacionais I Unidade IV Gerência de Recursos Entrada e Saída 02/12/2014 Prof. Valeria M. Bastos 1 ORGANIZAÇÃO DA UNIDADE Gerência de Entrada e Saída Fundamentos Evolução Estrutura
Leia maisControle de Transação
Curso: Ciência da Computação Disciplina: Banco de Dados Campus Lages Controle de Transação Prof. Edjandir C. Costa edjandir.costa@ifsc.edu.br Agenda Conceitos de transação e sistema Propriedades desejáveis
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 maisProjeto e Análise de Algoritmos NP Completude Parte 2. Prof. Humberto Brandão
Projeto e Análise de Algoritmos NP Completude Parte 2 Prof. Humberto Brandão humberto@bcc.unifal-mg.edu.br Universidade Federal de Alfenas Departamento de Ciências Exatas versão da aula: 0.2 Última aula
Leia maisAlgoritmos I Aula 13 Linguagem de Programação Java
Algoritmos I Aula 13 Linguagem de Programação Java Professor: Max Pereira http://paginas.unisul.br/max.pereira Ciência da Computação IDE Eclipse IDE (Integrated development environment) Criar um projeto
Leia maisCAPÍTULO V. Estruturas de Repetição CAPÍTULO V ESTRUTURAS DE REPETIÇÃO. Estrutura de Repetição com Teste no Início: E QUA TO-FAÇA...
NBT110 Algoritmos e Estruturas de Dados Profa. Rosanna Mara Rocha Silveira Fevereiro/2013 - Versão 1.1 CAPÍTULO V ESTRUTURAS DE REPETIÇÃO 42 Em programação de computadores, é muito comum nos depararmos
Leia maisRedes de Petri. 1 Introdução. José de Oliveira Guimarães DC-UFSCar
Redes de Petri José de Oliveira Guimarães DC-UFSCar jose@dc.ufscar.br 1 Introdução Uma rede de petri (RP) é uma quádrupla (P, T, F, M 0 ) onde P é um conjunto de lugares, T um conjunto de transições, F
Leia mais5 Comando de Seleção Simples e Composta
5 Comando de Seleção Simples e Composta Ronaldo F. Hashimoto e Carlos H. Morimoto Essa aula introduz o comando de seleção, que permite ao seu programa tomar decisões sobre o fluxo do processamento, ou
Leia maisProgramação Concorrente
INE 5410 Programação Concorrente Professor: Lau Cheuk Lung (turma A) INE UFSC lau.lung@inf.ufsc.br Conteúdo Programático 1. 2. Programação Concorrente 3. Sincronização 1. Condição de corrida, região critica
Leia maisSistemas Operacionais
Sistemas Operacionais Aula 11 Sincronização de Processos Prof.: Edilberto M. Silva http://www.edilms.eti.br Baseado no material disponibilizado por: SO - Prof. Edilberto Silva Prof. José Juan Espantoso
Leia maisGERENCIAMENTO DE TAREFAS. Prof. Me. Hélio Esperidião
GERENCIAMENTO DE TAREFAS Prof. Me. Hélio Esperidião O CONCEITO DE TAREFA Uma tarefa pode ser definida como a execução de um fluxo sequencial de instruções para atender uma finalidade específica. Realizar
Leia maisAnálise e Projeto Orientados a Objetos Aula III Concepção Visão Geral do Sistema. Prof. Bruno E. G. Gomes IFRN
Análise e Projeto Orientados a Objetos Aula III Concepção Visão Geral do Sistema Prof. Bruno E. G. Gomes IFRN 1 Introdução Fase de concepção do UP Analista vai em busca das primeiras informações sobre
Leia maisControle de Fluxo. Laços e Desvios incondicionais
Controle de Fluxo Laços e Desvios incondicionais Laços Em C, há três comandos de ITERAÇÃO ou LAÇOS: for while do... while Estes permitem que um conjunto de instruções seja executado até que ocorra uma
Leia maisExpressões e enunciados
Lógica para Ciência da Computação I Lógica Matemática Texto 2 Expressões e enunciados Sumário 1 Expressões e enunciados 2 1.1 Observações................................ 2 1.2 Exercício resolvido............................
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 maisCapítulo 2. Orientação a Objetos
Capítulo 2 Orientação a Objetos Princípios da Orientação a Objetos Os princípios da orientação a objetos afetam todo o processo de desenvolvimento de software: Seres humanos pensam em termos de substantivos
Leia mais