Programação Concorrente

Documentos relacionados
Programação Paralela e Distribuída

INE 5645 Programação Paralela e Distribuída

Bancos de Dados Distribuídos. Bancos de Dados Distribuídos. Conteúdo. Motivação. Motivação. Introdução aos BDs Distribuídos.

Aula 2: Tipos de Sistemas Operacionais. Instituto Federal da Bahia Campus Salvador INF009 - Sistemas Operacionais Profª Flávia Maristela

Tecnólogo em Análise e Desenvolvimento de Sistemas. Sistemas Operacionais (SOP A2)

Curso: Redes de Computadores

Sistemas Operacionais. Visão Geral

AULA 06: PROGRAMAÇÃO EM MÁQUINAS PARALELAS

Sistema Distribuído. Sistema Distribuído. Aplicações Distribuídas. Conceitos Básicos

Tipos de Sistemas Operacionais

Sistemas Multiprogramáveis/Multitarefa

Introdução à Ciência da Computação

Arquitetura de Computadores. Processamento Paralelo

Introdução aos Sistemas Operacionais

Introdução a Sistemas Operacionais. Adão de Melo Neto

Sistemas Distribuídos

Matéria: Sistema Computacional - SC. Prof.: Esp.: Patrícia Dias da Silva Peixoto

SISTEMAS DISTRIBUÍDOS

Apresentação. Ementa da Disciplina. Objetivo da Disciplina. DCA-108 Sistemas Operacionais. Referências Bibliográfica. Referências Bibliográfica

Sistemas Operacionais. Tipos de SO

AULA 03: PROCESSAMENTO PARALELO: MULTIPROCESSADORES

TIPOS DE SISTEMAS OPERACIONAIS. Ademar Alves Trindade

Processos ca 3 pítulo

Sistemas Distribuídos. Plano de Curso. Plano de Curso 04/03/12 ! EMENTA:

Componente de aplicação. Figura 1 - Elementos funcionais de uma aplicação sendo executados de forma distribuída

30/5/2011. Sistemas computacionais para processamento paralelo e distribuído

Sistemas Operacionais. Prof. Fabio Augusto Oliveira

Arquitetura de Computadores Paralelos. Introdução Conceitos Básicos Ambientes de Programação Modelos de Programação Paralela

Sistemas Distribuídos

Sistemas Distribuídos

1 Porque o estado de um processo deve ser salvo quando ele deixa a CPU?

Características de Sistemas Distribuídos

Ferramentas para Programação em Processadores Multi-Core

Thread. Thread. Sistemas Operacionais. Leonard B. Moreira. UNIVERSIDADE ESTÁCIO DE SÁ fevereiro, / 41

Universidade Federal do Rio de Janeiro Informática DCC/IM. Arquitetura de Computadores II. Arquiteturas MIMD. Arquiteturas MIMD

Conceitos de Sistemas Distribuídos

Sistemas Distribuídos Aula 3

Organização e Arquitetura de Computadores I

INFORMÁTICA: Informação automática

Threads. Sistemas Operacionais. Charles Tim Batista Garrocho. Instituto Federal de São Paulo IFSP Campus Campos do Jordão. charles.garrocho.

Características de Sistemas Distribuídos

SISTEMAS OPERACIONAIS

ARQUITETURA DE SISTEMAS OPERACIONAIS. VISÃO GERAL DE UM SISTEMA OPERACIONAL Prof. André Luís Alves E. M. DR. LEANDRO FRANCESCHINI

Capítulo 2 Processos e Threads

Sistemas de Informação. Sistemas Operacionais

Programação concorrente (processos e threads)

Sistemas Operacionais (SO)

Exercícios Cap I. 1.1, 1.2, 1.3 (somente letras (a), (b) e (c)) , 1.8 e 1.12 IC - UFF

Universidade Estadual de Mato Grosso do Sul UEMS Curso de Ciência da Computação Disciplina de Algoritmos Paralelos e Distribuídos

Sistemas Operacionais - Aula 02

Sistemas Distribuídos

Sistemas Distribuídos

Sistema de Software Distribuído

CP Introdução à Informática Prof. Msc. Carlos de Salles

Computação Distribuída

Sistemas Operacionais Aula 3

Fundamentos de Sistemas Operacionais

Sistemas Operacionais: Sincronização entre processos

Fundamentos de Sistemas Operacionais

Caracterização de Sistemas Distribuídos

Introdução à Computação: Sistemas de Computação

Parte I Multiprocessamento

Redes de Computadores. Fundamentos de Sistemas Operacionais - 2º Período

Resumo: Sistemas Operacionais Abertos

Atividades Práticas no Ensino Introdutório de Sistemas Operac

Arquiteturas Paralelas

Sistemas Operacionais

1- Confiabilidade ( 2 ) Proteção contra perdas e estragos. 2- Integridade ( 3 ) Proteção contra interferência de cortes de funcionamento

Aula 6: Comunicação entre processos. Instituto Federal da Bahia INF009 - Sistemas Operacionais Profª Flávia Maristela

Introdução aos Sistemas Distribuídos

Desenvolvimento de Aplicações Distribuídas

Sistemas distribuídos. Prof. Emiliano Monteiro

AULA Nº 08 SISTEMAS OPERACIONAIS. Threads

Fundamentos de Sistemas Operacionais. Threads. Prof. Edwar Saliba Júnior Março de Unidade Threads

Transcrição:

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 e exclusão mútua 2. Monitores, Locks e semáforos 3. Troca de mensagens 4. Justiça (como evitar starvation) 5. deadlocks Conteúdo Programático 1. Problemas clássicos de programação concorrente 1. Produtor/consumidor 2. Jantar dos filósofos 3. Barbeiro dorminhoco Recursos Computacionais n Software J2SE SDK n Página da disciplina http:// www.inf.ufsc.br/~lau.lung/ine5410 n Lista de e-mails ine5410-0538a@inf.ufsc.br Unidade 1 à Programação Concorrente n Programação Paralela e Concorrente n Vantagens e Dificuldades n Plataformas de Execução n Onde estamos no curso? Aplicações Computação Distribuída Prog. Concorrent Sistemas Operacionais Redes de Computadores 6 1

Poder de processamento das máquinas vem crescendo rapidamente Panorama Atual Programação Paralela e Distribuída Grande parte das máquinas interligada por redes de computadores Sistemas e aplicações estão cada vez mais complexos Funcionalidade, Interfaceamento gráfico, Comunicação, Maior carga, Maior número de usuários, Melhor tempo de resposta, Maior confiabilidade n Software é aplicado a um número cada vez maior de áreas da atividade humana; n Exigência de qualidade (confiabilidade) e desempenho são fatores cruciais; n Aplicações críticas, software para controle de: n Usina nuclear, termelétrica, geração e distribuição de energia; n Distribuição e controle da qualidade da agua; n Tráfego aéreo, marítimo, sistema de transporte ferroviário, metrôs; n Hospitalar, monitoramento de paciente; 7 8 n Em muitas áreas de aplicação, as características intrínsecas ao problema sendo tratado requer a utilização de mecanismos de programação que contemple aspectos como: n Paralelismo n Não determinismo n Comunicação n Sincronização 9 n O suporte ao paralelismo é necessário para aumentar o desempenho de um sistema e ao mesmo tempo permitir a implementação de soluções que só seriam possíveis a partir do paralelismo n Níveis n Processador n Arquitetura do sistema computacional n Sistemas Operacionais n Infra-estrutura computacional n Linguagens de programação 10 Programação Paralela n O que é? n Consiste em executar simultaneamente várias partes de uma mesma aplicação; n Eventos (tarefas) possuem independência entre eles: n Não existe uma ordenação entre eles na operação global do sistema; n Tornou-se possível a partir do desenvolvimento de sistemas operacionais multi-tarefa, multi-thread e paralelos; n Um sistema de computação paralelo é um computador com mais de um processador para processamento paralelo. Programação Paralela n Aplicações são executadas paralelamente: n Em um mesmo processador n Em uma máquina multiprocessada n Em um grupo de máquinas interligadas que se comporta como uma só máquina 11 12 2

Programação Concorrente n Execução concorrente está associada ao modelo de um servidor atendendo a vários clientes através de uma politica de escalonamento no tempo. n Em execução paralela é possível ter concorrência: modelo de vários servidores atendendo a vários clientes simultaneamente ao mesmo tempo. n Condições necessárias: n número de clientes > número de recursos n acesso simultâneo ao mesmo recurso n As linguagens de programação podem então ser classificadas como sequenciais, paralelas e concorrentes. 13 n Acoplamento n Sistemas paralelos são fortemente acoplados: compartilham hardware ou se comunicam através de um barramento de alta velocidade n Sistemas distribuídos são fracamente acoplados 14 n Previsibilidade n O comportamento de sistemas paralelos é mais previsível; já os sistemas distribuídos são mais imprevisíveis devido ao uso da rede (AP, Hub, Switch, Roteadores, Firewall, etc.) e a falhas. Cliente Internet 15 n Influência do Tempo n Sistemas distribuídos são bastante influenciados pelo tempo de comunicação pela rede; em geral não há uma referência de tempo global n Em sistemas paralelos o tempo de troca de mensagens pode ser desconsiderado n Controle n Em geral em sistemas paralelos se tem o controle de todos os recursos computacionais; já os sistemas distribuídos tendem a empregar também recursos de terceiros 16 Vantagens n Usam melhor o poder de processamento n Apresentam um melhor desempenho n Permitem compartilhar dados e recursos n Podem apresentar maior confiabilidade n Permitem reutilizar serviços já disponíveis n Atendem um maior número de usuários n 17 Dificuldades n Desenvolver, gerenciar e manter o sistema n Controlar o acesso concorrente a dados e a recursos compartilhados n Evitar que falhas de máquinas ou da rede comprometam o funcionamento do sistema n Garantir a segurança do sistema e o sigilo dos dados trocados entre máquinas n Lidar com a heterogeneidade do ambiente n 18 3

24/04/14 Platafomas de Execução Platafomas de Execução Um S.O. multitarefa permite simular o paralelismo em um único processador, alternando a execução de processos Um processador com núcleo múltiplo permite paralelismo real entre processos, executando múltiplas instruções por ciclo P1 P2 P6 P5 P3 P4 Escalonador N1 Plataformas de Execução Plataformas de Execução Uma Placa-Mãe Multiprocessador permite que cada processador execute um processo Um Cluster é uma solução de baixo custo para processamento de alto desempenho Suportes para Computação Paralela e Concorrente devem fornecer: Suporte para Computação Paralela Sistemas Operacionais Multi-Tarefa: permitem a troca de contexto entre processos / threads. Ex.: Windows, Linux, Solaris, HP-UX, AIX, etc. Linguagens Multi-Tarefa: permitem escrever programas paralelos. Ex.: Pascal FC, Java, etc. Sistemas Operacionais Paralelos: permitem usar vários processadores em uma máquina. Ex.: Linux, Solaris, Windows, etc. Suportes para Programação Paralela: permitem criar uma máquina paralela virtual. Ex.: PVM Mecanismos para execução paralela de programas Mecanismos para controle de concorrência Mecanismos para comunicação entre processos/threads paralelos Ferramentas e mecanismos para desenvolvimento, testes, gerenciamento, controle, segurança, tolerância a faltas, etc. 23 24 4

n Sist. Operacionais / Linguagens Multi-tarefa n Sistemas Operacionais Paralelos Máquina P3 P2 P4 P1 P5 P6 Máquina paralela Sistema Operacional / Linguagem Multi-tarefa Escalonador Sistema Operacional Paralelo Processador N1 Processador 1 Processador N 25 26 n Suportes para Computação Paralela Máquina virtual paralela Linguagem / Suporte para Computação Paralela Sistema Operacional Hardware Sistema Operacional Hardware 27 5