Curso de Programação Distribuída e Paralela 29/09/2008. Informática UFRGS. Sistemas Operacionais II (C. Geyer) Sincronização 1. Pg.

Documentos relacionados
Conceito Básicos de Programação com Objetos Distribuídos. Programação com Objetos Distribuídos (C. Geyer) Conceitos de POD 1

Remote Procedure Call. Programação distribuída e paralela (C. Geyer) RPC 1

Programação distribuída e paralela (C. Geyer) RPC 1

Sistemas Distribuídos

Sistemas Operacionais. Sincronização: Semáforos Problema dos Leitores/Escritores

CURSO DE TECN OLOGI A DO VÁCUO

Banco de Dados I. Prof. Edson Thizon

Informática I. Aula Aula 19-20/06/06 1

SISTEMAS DISTRIBUÍDOS

Conceitos básicos sobre computadores

Roteiro... Sistemas Distribuídos Aula 4. Troca de mensagens. Comunicação entre processos. Conceitos de SD, vantagens e desvantagens

CURSO DE ENGENHARIA DE COMPUTAÇÃO Renovação de Reconhecimento pela Portaria n 123 de 09/07/12 DOU de 10/07/12 PLANO DE CURSO

ORGANIZAÇÃO CURRICULAR

METODOLOGIA DE PROJETO

Hardware: Componentes Básicos. Sistema de Computador Pessoal. Anatomia de um Teclado. Estrutura do Computador. Arquitetura e Organização

SISTEMAS OPERACIONAIS. 3ª. Lista de Exercícios

Este é um manual de procedimentos básicos padronizados para os Formulários on-line da Coleta Seletiva.

Técnico em Radiologia. Prof.: Edson Wanderley

Arquitetura de Computadores Sistemas Operacionais II

Lógica de Programação. Profas. Simone Campos Camargo e Janete Ferreira Biazotto

COMUNICAÇÃO. É a capacidade de transmitir uma informação com certeza de que o outro lado entenda a mensagem.

Sistemas Distribuídos

O Sistema de Computação

Engenharia de Software II

Instalação do Portal PMS Ambiente : Controladoria Data da publicação : 18/11/09 Países : Brasil Autor Wilker Valladares

Microprocessadores. Memórias

Experiência 04: Comandos para testes e identificação do computador na rede.

Capítulo 8 Arquitetura de Computadores Paralelos

Os salários de 15 áreas de TI nas cinco regiões do Brasil

Programação Concorrente Processos e Threads

Nilson do Rosário Costa 1, Ana Paula Coelho 2, Maria Thereza Fortes 3 e Vanina Matos 4

Sistemas Operacionais I Parte III Estrutura dos SOs. Prof. Gregorio Perez gregorio@uninove.br Roteiro. Componentes do Sistema

Professor Léo Matos TI para Concursos

UNIVERSIDADE DO ESTADO DE SANTA CATARINA PLANO DE TRABALHO INDIVIDUAL ATIVIDADES EM DESENVOLVIMENTO ENSINO ORIENTAÇÃO

Análise e Projeto Orientado a Objetos. Nazareno Andrade Baseado no material dos profs. Hyggo Almeida e Jacques Sauvé

Fundamentos de Teste de Software

Comunicação entre Processos por Troca de Mensagens. Prof. Celso maciel da Costa

Curso de Formação de Oficiais Conhecimentos Específicos ENGENHARIA DE COMPUTAÇÃO CADERNO DE QUESTÕES

ARQUITETURA DE COMPUTADORES. Professor: Clayton Rodrigues da Siva

Sistema Operacional. Implementação de Processo e Threads. Prof. Dr. Márcio Andrey Teixeira Sistemas Operacionais

Processamento de Dados aplicado à Geociências. AULA 1: Introdução à Arquitetura de Computadores

IV Seminário sobre Segurança da Informação e Comunicações. IV Seminário sobre Segurança da Informação e Comunicações

Universidade Federal de Minas Gerais. Sistemas Operacionais. Aula 23. Sistemas Operacionais Distribuídos

Apresentação. Atuando em diversos ramos do direito, nosso Escritório tem como meta oferecer. O Escritório

Microcontroladores e Microprocessadores

Fundamentos de Programação. Diagrama de blocos

BCC402 Algoritmos e Programação Avançada. Prof. Marco Antonio M. Carvalho Prof. Túlio Ângelo M. Tóffolo 2011/1

Introdução à Informática

Processos e Threads (partes I e II)

William Stallings Arquitetura e Organização de Computadores 8 a Edição

10. CPU (Central Processor Unit) Conjunto das instruções Estrutura interna Formato das instruções...

Sistemas Operacionais. Rodrigo Rubira Branco

Descubra as novas funcionalidades com Office 365 My I-365, uma nova forma de colaborar Ipsos

INSS INFORMÁTICA INSS INFORMÁTICA INSS INFORMÁTICA INSS INFORMÁTICA ENCONTRO 2/7. PROF PAULO MAXIMO, MSc

Arquitetura e Organização de Computadores I

7 Processamento Paralelo

Experiência 01: PARTIDA DIRETA EM MOTORES TRIFÁSICOS

Sistemas Operacionais. Rodrigo Rubira Branco

Sistemas Operacionais Abertos. Prof. MSc. André Yoshimi Kusumoto

SISTEMA DE BANCO DE DADOS. Banco e Modelagem de dados

Introdução à Programação de Computadores Parte I

Arquitecturas de Software Enunciado de Projecto

Avaliando e Compreendendo o Desempenho. Capítulo 4

CONTEÚDOS PROGRAMÁTICOS

Threads. 8 de janeiro de 2015

O que é um banco de dados? Banco de Dados. Banco de dados

FORMULÁRIO PARA CRIAÇÃO DE DISCIPLINA

Fundamentos de Banco de Dados

Nivel de Linguagem de Montagem (Assembly)

As produções e interações ficarão registradas no Moodle.

INFORMÁTICA I 05/04/2008. Sistema Operacional. Prof. Cláudio Farias Rossoni

Leandro Soares de Sousa (DSc.) Página:

CARACTERÍSTICAS DO EMPREENDEDOR 1. BUSCA DE OPORTUNIDADES E INICIATIVAS

Capítulo 6. Projeto de arquitetura Pearson Pren0ce Hall. Todos os direitos reservados. 1. slide 1

FACULDADE MULTIVIX CURSO DE ENGENHARIA DE PRODUÇÃO 2º PERÍODO MARIANA DE OLIVEIRA BERGAMIN MONIQUE MATIELLO GOMES THANIELE ALMEIDA ALVES

T.I. para o DealerSuite: Servidores Versão: 1.1

INTRODUÇÃO À INFORMÁTICA: TERMINOLOGIA BÁSICA RAÍ ALVES TAMARINDO

Aula 03. Processadores. Prof. Ricardo Palma

Arquitetura de Sistemas Operativos

MANUAL DE CADASTRO DE PROJETOS DO ESCOLA DE FÁBRICA

Falta Erro Falha. Motivação. Teste de Software. Falha, Falta e Erro. Falha, Falta e Erro. Falha, Falta e Erro. Falha, Falta e Erro 6/6/11

DOCUMENTO DE REQUISITO DE SOFTWARE

Gerenciamento de Entrada e Saída. Ciclo 6 AT1. Prof. Hermes Senger

Computação Concorrente (MAB-117) Monitores

Programação Orientada a Objetos SANTOS, Rafael

Sistemas Operacionais 2014 Introdução. Alexandre Augusto Giron

Sistemas Operacionais. Prof. Pedro Luís Antonelli Anhanguera Educacional

Deadlocks. Sistemas Operacionais - Professor Machado

Visão Geral de Sistemas Operacionais

HARDWARE INFORMÁTICA. Prof.: MARCIO HOLLWEG

Tópicos Avançados em Banco de Dados Dependências sobre regime e controle de objetos em Banco de Dados. Prof. Hugo Souza

Organização e Arquitetura de Computadores. Ivan Saraiva Silva

Métricas de Software

Sistemas Distribuídos

Transcrição:

Sistemas Operacionais Professor Cláudio Geyer Instituto de - Sistemas Operacionais II (C. Geyer) Sincronização 1 Sistemas Operacionais Professor Cláudio Geyer Instituto de - Pg. 1 1

Tópicos ensinados no Curso Programação concorrente: especificação de concorrência, atomicidade; sincronização, exclusão mútua; semáforos e monitores; troca de mensagens: conceitos, exemplo difusão; dead-lock; Sistemas Operacionais II (C. Geyer) Sincronização 3 Tópicos ensinados no Curso Sistemas distribuídos: objetivos, conceitos, questões de projeto; modelo cliente/servidor; RPC; estudo de casos : servidor RPC de tempo ordem de eventos, relógio lógico, exclusão mútua; processos : threads, modelos, escalonamento; arquivos distribuídos : semântica e implementação; Sistemas Operacionais II (C. Geyer) Sincronização 4 Pg. 2 2

Pré-requisitos requisitos para compreensão do conteúdo : Noções de Sistemas Operacionais : Processos, escalonamento de processos, espera ativa. Conhecimento de estruturas básicas de programação : comandos : if, while, for, procedures, functions, etc ; tipos de variáveis : registro, ponteiro, etc ; manipulação de arquivos. Sistemas Operacionais II (C. Geyer) Sincronização 5 Índice explicativo de cada tópico Conceitos básicos de programação concorrente: SO x PC; PC; Programação Distribuída; Programação Paralela, Exemplos de PC; Vantagens, aplicações, abordagens operacional X axiomática. Expressão da concorrência: Grafos de processos; fork/join; parbegin/end; vetor de processos. Sincronização: Atomicidade definição por software e hardware; exemplo de não-atomicidade; notação do Andrews); Sistemas Operacionais II (C. Geyer) Sincronização 6 Pg. 3 3

Índice explicativo de cada tópico Sincronização: Exclusão mútua conceitos, requisitos, mutexbegin/end, implementações falsa, com alternância; implementação para 2 processos e por hardware. Semáforos conceitos, usos, implementação com filas e block/wakeup; problema do produtor/consumidor; problema dos leitores/escritores. Monitores conceitos e implementação; exemplo dos filósofos. Sistemas Operacionais II (C. Geyer) Sincronização 7 Índice explicativo de cada tópico Troca de Mensagens: Introdução a sistemas distribuídos, mapeamento, conceitos básicos; Assíncrona Conceitos e propriedades; Exemplo produtor/consumidor; Difusão com probe. Síncrona Conceitos e propriedades. RPC Conceitos e propriedades; Exemplo do servidor de tempo. Sistemas Operacionais II (C. Geyer) Sincronização 8 Pg. 4 4

Índice explicativo de cada tópico Sistemas Operacionais Distribuídos Conceitos e tipos; Questões de projeto; Modelo cliente/servidor; RPC Sistema de arquivos distribuídos: Threads conceitos e questões de projeto. Deadlock Problemas e soluções; Sistemas Operacionais II (C. Geyer) Sincronização 9 Bibliografia recomendada Andrews, G. Silberschatz, A. Tanenbaum, A. S. Tanenbaum, A. S. Couloris, G. Chow, R. Concurrent Programming: Principles and Practive. The Benjamim Cummings, 1991. Operating Systems Concepts. Addison-Wesley, 5º edição, 1992. Modern Operating Systems. Prentice-Hall, 1992. Distributed Operating Systems. Prentice-Hall, 1995. Distributed Systems : Concepts and Design. Addison-Wesley, 2º edição, 1994. Distributed OS and Algorithms. Addison-Wesley, 1997. Apostila do Professor Simão Toscani Sistemas Operacionais II (C. Geyer) Sincronização 10 Pg. 5 5

Ambiente e Linguagens Concorrentes Unix C ou C++ biblioteca de processos; biblioteca de sockets; biblioteca de threads; biblioteca de variáveis compartilhadas. Java, C#, Objetive C PVM, MPI, ATHAPASCAN SR, Concert C Sistemas Operacionais II (C. Geyer) Sincronização 11 Ambiente e Linguagens Concorrentes NT C ou C++ biblioteca POSIX; biblioteca NT; Sistemas Operacionais II (C. Geyer) Sincronização 12 Pg. 6 6

Sistema Operacional x PC Gerenciar recursos de forma de forma eficiente. Exemplo: através de I/O concorrente (duas ou mais aplicações concorrentes); escalonamento (time-sharing). Dentro de uma única máquina pode existir programação concorrente. Programa seqüencial é um código que especifica a execução seqüencial, uma lista de comandos. Programa concorrente pode ser visto como um programa composto de vários (> 1) programas seqüenciais, executados concorrentemente. Sistemas Operacionais II (C. Geyer) Sincronização 13 Programação Concorrente Conceito Programas com diversas partes em execução concorrente, em uma ou mais CPUs) Pode haver programação concorrente em Redes, Máquinas Paralelas ou em uma única máquina simples. Exemplos Podemos citar como exemplos de atividades concorrentes, onde mais de um evento está ocorrendo ao mesmo tempo: Aeroporto; Trânsito; Porto; Linha de montagem de uma fábrica. Sistemas Operacionais II (C. Geyer) Sincronização 14 Pg. 7 7

Programação Concorrente Tarefa (task) nome normalmente associado a uma parte concorrente independe do modelo de programação paradigma linguagem construção ou abstração usada para representá-la Sistemas Operacionais II (C. Geyer) Sincronização 15 Programação Concorrente Vantagens Expressão mais fácil de certos problemas (concorrentes); exemplos: simulação de sistemas naturais; jogos; Uso eficiente dos recursos de hardware; I/O concorrente a CPU Aumento do desempenho de alguns programas (paralelos); Usar todas as CPUs todo o tempo com trabalho útil. Sistemas Operacionais II (C. Geyer) Sincronização 16 Pg. 8 8

Programação Concorrente Problemas Sincronização: dependência temporal atividades onde uma tarefa necessita da conclusão da anterior não podem ser executadas concorrentemente. acesso concorrente a um recurso compartilhado Escalonamento pode gerar estados (do recurso) inconsistentes recursos: variáveis, arquivos,... garantir um bom uso dos recursos disputa de recursos do sistema, tais como cpu, memória, disco, impressora eventualmente a cargo do programador (e não do SO) Sistemas Operacionais II (C. Geyer) Sincronização 17 Programação Concorrente Exemplo de Programa Tendo a equação: (2*A)+((C-D)/3), algumas partes podem ser executadas em paralelo, como segue: 2*A + Início C-D 3 / Fim Sistemas Operacionais II (C. Geyer) Sincronização 18 Pg. 9 9

Programação Concorrente Aplicações típicas: Núcleo do Sistema Operacional; Núcleo do SGBD (vários clientes acessam o BD); Servidores em geral: multithreaded; Interfaces gráficas; Jogos; Simulação; Sistemas Operacionais II (C. Geyer) Sincronização 19 Programação Concorrente Aplicações típicas: Multiagentes; Aplicações para internet; Tolerância a Falhas; Alto desempenho ou programação paralela. Sistemas Operacionais II (C. Geyer) Sincronização 20 Pg. 10 10

Programação Distribuída Conceito Entende-se por programação distribuída (ou processamento distribuído) como sendo um programa concorrente executado sobre um sistema de hardware com memória distribuída. Um programa distribuído pode acessar a memória de vários computadores e não só de uma única máquina. Via protocolos especiais, por software Deve ser possível criar e gerenciar processos em outros computadores. Sistemas Operacionais II (C. Geyer) Sincronização 21 Programação Paralela Conceito Programação paralela pode ser vista como um programa concorrente (equivalente a um seqüencial) mas com o objetivo adicional da redução do tempo de resposta. Um programa paralelo pode compartilhar a mesma memória ( memória não distribuída ) e vários processadores. Sistemas Operacionais II (C. Geyer) Sincronização 22 Pg. 11 11

Principais Aspectos da PC Aspectos Expressão da concorrência Sincronização Comunicação Expressão da concorrência criação e controle das partes concorrentes Sincronização redução da concorrência necessária para produção de resultados corretos Sistemas Operacionais II (C. Geyer) Sincronização 23 Principais Aspectos da PC Comunicação troca de informações entre as partes concorrentes necessária para a produção de resultados finais, consistentes também chamada de IPC InterProcess Communication Sistemas Operacionais II (C. Geyer) Sincronização 24 Pg. 12 12

Tipos básicos de PC Em função da da arquitetura (hardware) memória compartilhada memória distribuída Sistemas Operacionais II (C. Geyer) Sincronização 25 Tipos básicos de PC PC em memória compartilhada sincronização explícita mais complexa exige primitivas e técnicas de sincronização comunicação implícita leitura e escrita de variáveis compartilhadas simples Sistemas Operacionais II (C. Geyer) Sincronização 26 Pg. 13 13

Tipos básicos de PC PC em memória distribuída comunicação explícita denominada troca de mensagens mais complexa exige primitivas e técnicas de comunicação sincronização implícita via semântica da comunicação simples, mas nem tanto Sistemas Operacionais II (C. Geyer) Sincronização 27 Exercícios com resposta : Desenhe um um grafo grafo como como o visto o anteriormente, visto anteriormente, paralelizando o máximo possível as instruções da equação ((A+B)*C)+(C+D*E). De exemplos de aplicações que necessitam de programação paralela para obterem bons resultados: Um programa pode ser classificado como paralelo e distribuído ao mesmo tempo? Justifique. Sistemas Operacionais II (C. Geyer) Sincronização 28 Pg. 14 14

Respostas : A+B * Início C D * E + + Fim Computação gráfica ( renderização, reconhecimento de padrões, criação de texturas, etc ) Problemas de otimização linear ( processamento dos ótimos locais em paralelo ) Cálculos vetoriais ( soma, subtração, multiplicação, divisão, concatenação de vetores ) Sistemas Operacionais II (C. Geyer) Sincronização 29 Respostas : Sim, uma das opções não exclui a outra. Um programa de rede pode ser distribuído ( memória diferente para cada nó de processamento) e também pode ser paralelo ( tarefas divididas pelas diversas máquinas da rede ) de forma a diminuir o tempo de resposta. Sistemas Operacionais II (C. Geyer) Sincronização 30 Pg. 15 15

Exercícios complementares : Os microprocessadores Pentium II da Intel são superescalares, ou seja, dividem o processamento de um programa em duas filas de execução, de forma que partes distintas de um programa são executadas em paralelo. Por que os programas executados no Pentium II não são considerados programas paralelos? Por que os programas de simulação são melhor implementados usando concorrência? Programas de navegação pela Internet ( Netscape, Internet Explore ) são concorrentes? Por quê? Sistemas Operacionais II (C. Geyer) Sincronização 31 Atividade em Grupo Pesquise as linguagens de programação que você usa e ou as linguagens de programação que estão em foco e descubra se elas possuem suporte para programação concorrente, tais como : Ambiente de programação adequado à concorrência ; Comandos específicos ; Bibliotecas ; Funções e Procedimentos ; Depois discuta com seus colegas o que você descobriu, mostrando as vantagens e desvantagens de cada linguagem. Sistemas Operacionais II (C. Geyer) Sincronização 32 Pg. 16 16

Conclusões Um programa concorrente é mais difícil de ser implementado, devido à inclusão de sincronização no acesso ao código e as variáveis. Algumas problemas e aplicações são concorrentes por definição e possuem um melhor resultado se implementados concorrentemente. Programação paralela é utilizada quando o principal objetivo é diminuir tempo de resposta. Programação distribuída deve levar em conta o tempo perdido com a comunicação das CPUs. o Sistemas Operacionais II (C. Geyer) Sincronização 33 Auto-avaliação : Responda as questões abaixo, sem rever os slides anteriores, para testar seus conhecimentos adquiridos até agora : Quais os pré-requisitos para aprender PC? Qual a linguagem básica para ilustração dos conceitos de PC? Quais ambientes são apropriados para PC? Qual a relação entre SO e PC? O que é um programa concorrente? Quais os 3 principais componentes da PC? Cite 3 exemplos de aplicações concorrentes : Cite 2 vantagens de programação concorrente : Sistemas Operacionais II (C. Geyer) Sincronização 34 Pg. 17 17

Auto-avaliação : Por que a a sincronização é importante é? Qual o conceito de programa paralelo e de programa distribuído? O que é uma tarefa? Quais os tipos principais de sincronização? Sistemas Operacionais II (C. Geyer) Sincronização 35 Auto-avaliação : Qual o o melhor livro livro para para PC? Qual o melhor para SOD? Qual o livro que contém ambos os tópicos, PC e SOD? Para PC, quais livros são suficientes para a disciplina? Sistemas Operacionais II (C. Geyer) Sincronização 36 Pg. 18 18

Auto-avaliação : Quais os os tipos tipos de PC de conforme PC conform hw? Em qual tipo a sincronização é complicada? Em qual tipo a comunicação é complicada? Se você conseguiu responder a estas perguntas, está apto a prosseguir no curso, senão releia os slides. Sistemas Operacionais II (C. Geyer) Sincronização 37 Auto-avaliação Principal PC? PD? PP? Aplicações da PC? Vantagens da PC? Desvantagens da PC? Principais componentes da PC? Sistemas Operacionais II (C. Geyer) Sincronização 38 Pg. 19 19

Auto-avaliação Principal Tipos de sincronização? Tipos de arquitetura x PC? Sistemas Operacionais II (C. Geyer) Sincronização 39 Auto-avaliação Principal Sincronização em memória compartilhada? Complexidade? Importância? Sincronização em memória distribuída? Idem Idem para comunicação? Sistemas Operacionais II (C. Geyer) Sincronização 40 Pg. 20 20

This document was created with Win2PDF available at http://www.win2pdf.com. The unregistered version of Win2PDF is for evaluation or non-commercial use only. This page will not be added after purchasing Win2PDF.