Modelo Conceptual para o Depuramento de Programas Distribuídos por Troca de Mensagens

Tamanho: px
Começar a partir da página:

Download "Modelo Conceptual para o Depuramento de Programas Distribuídos por Troca de Mensagens"

Transcrição

1 Modelo Conceptual para o Depuramento de Programas Distribuídos por Troca de Mensagens Ana Paula Boler Cláudio DI-FCUL TR July 2003 Departamento de Informática Faculdade de Ciências da Universidade de Lisboa Campo Grande, Lisboa Portugal Technical reports are available at The files are stored in PDF, with the report number as filename. Alternatively, reports are available by post from the above address.

2

3 MODELO CONCEPTUAL PARA O DEPURAMENTO DE PROGRAMAS DISTRIBUÍDOS POR TROCA DE MENSAGENS Ana Paula Boler Cláudio Dissertação submetida para obtenção do grau de DOUTOR EM INFORMÁTICA Orientador: João Duarte Cunha Júri: José Alberto Cardoso e Cunha António Augusto Sousa Helder Manuel Ferreira Coelho Paulo Jorge Esteves Veríssimo Dezembro de 2002

4

5 Resumo Esta dissertação apresenta um modelo conceptual de programas distribuídos por troca de mensagens que é usado como alicerce para o depuramento deste tipo de programas. O modelo é independente do sistema de troca de mensagens utilizado e incorpora diversas facilidades vocacionadas para o suporte ao depuramento: geração de um diagrama espaço-tempo que ilustra o desenrolar da execução em estudo, detecção de condições de concorrência, detecção de alguns tipos de predicados e cálculo de cones de causalidade. Concebido segundo a metodologia da orientação por objectos, o modelo é composto por dois grupos de classes: as classes do núcleo e as classes gráficas. No primeiro grupo encontram-se as classes que modelam as entidades envolvidas na execução. As classes do segundo grupo, as classes gráficas, são subclasses das anteriores e desempenham, adicionalmente, as tarefas inerentes à geração do diagrama espaço-tempo. Estas classes encapsulam todas as dependências do software gráfico utilizado. A ferramenta designada por MPVisualizer concretiza o modelo conceptual. Da ferramenta faz parte um mecanismo de reexecução que permite reproduzir comportamentos de programas potencialmente não deterministas. A reprodução de comportamentos é uma capacidade imprescindível ao depuramento cíclico, uma técnica comum no depuramento de programas sequenciais. PALAVRAS-CHAVE Depuramento, Causalidade, Predicados, Condições de concorrência, Diagrama espaço-tempo.

6

7 Abstract This dissertation presents a conceptual model of message-passing distributed programs that is used as a base for the debugging of this kind of programs. The model is independent from the message-passing software used and incorporates several facilities aimed at supporting debugging: generation of a space-time diagram which shows the progression of the execution being studied, detection of race conditions, detection of particular kinds of predicates and representation of causality cones. Conceived according to the object-oriented methodology, the model is composed of two groups of classes: kernel classes and graphical classes. The first group contains the classes which are models of the entities envolved in the execution. The classes in the second group, graphical classes, are subclasses of the previous ones and, additionaly, are responsible for drawing the space-time diagram. All the details that depend on the graphical software adopted are encapsulated in graphical classes. A tool called MPVisualizer implements the conceptual model. This tool contains a reexecution mechanism that allows the reproduction of behaviours exhibited in previous executions by programs that are potentially nondeterministic. The capability of reproducing behaviours is vital in cyclic debugging, a frequently used technique in the debugging of sequencial programs. KEYWORDS Debugging, Causality, Predicates, Race Conditions, Space-time diagram.

8

9 Agradecimentos Os meus primeiros agradecimentos vão para o Professor Doutor João Duarte Cunha, por quem tive o privilégio de ser orientada neste trabalho. Estou-lhe profundamente grata por ter aceite ser meu orientador e pelo muito que com ele aprendi ao longo da execução deste trabalho. Ao Professor Doutor Graça Martins, agradeço o impulso inicial que, entusiasticamente, deu a este trabalho e o interesse que sempre demonstrou no seu desenrolar. Manifesto a minha gratidão às duas instituições no âmbito das quais realizei este trabalho: a FCUL (Faculdade de Ciências da Universidade de Lisboa) e o LNEC (Laboratório Nacional de Engenharia Civil). Relativamente à FCUL, não quero deixar de expressar a minha gratidão ao Professor Doutor Pinto Paixão, anterior presidente do concelho directivo da FCUL, e aos vários presidentes do Departamento de Informática que, permitindo a regularização da minha situação contratual como docente desta instituição, me deram a oportunidade de levar a cabo este trabalho. À FCT (Fundação para a Ciência e Tecnologia) agradeço o suporte financeiro dado, quer ao projecto PMCT/C/TIT/455/90 que foi fundamental à execução deste trabalho, quer à minha deslocação ao INRIA (Institute de la Recherche en Informatique et Automatique) de Rennes. Na fase de concepção do referido projecto esteve envolvido, para além do orientador deste trabalho, o Professor Doutor José Legatheaux Martins a quem manifesto também os meus agradecimentos. Ao Professeur Michel Raynal e a toda a sua equipa agradeço o modo como me receberam no INRIA de Rennes, durante o período de tempo que aí permaneci. Ao Dr. Rui Tavares estou grata pelo trabalho de codificação relativo ao mecanismo de reexecução, uma das componentes do trabalho apresentado nesta dissertação.

10 Ao Dr. António Inês, do Centro de Informática do LNEC, e à equipa de administração de sistemas do DI, quer na sua composição actual, chefiada pelo Dr. Nuno Cruz, quer nas suas composições anteriores, agradeço todo o apoio técnico prestado sempre de forma pronta e eficiente. À Professora Doutora Isabel Nunes e ao Professor Doutor Luís Rodrigues agradeço as valiosas críticas e sugestões feitas às versões anteriores do texto desta dissertação. Ao Professor Doutor Paulo Veríssimo, ao Eng.º António Casimiro e ao Dr. Hugo Miranda agradeço a resposta rápida a vários pedidos de esclarecimento por mim formulados. Ao conjunto de pessoas que compõem o Departamento de Informática agradeço, de um modo geral, o bom ambiente de trabalho. Em particular, estou grata às colegas e amigas que comigo partilham ou partilharam gabinete, Dr.ª Beatriz Carmo, Dr.ª Dulce Domingos e Dr.ª Teresa Chambel. Com elas tenho esclarecido dúvidas, dividido entusiasmos, angústias, e alegrias. Aos meus amigos Isabel e José Carlos, à Maria e ao Carlos, manifesto a minha gratidão pelo interesse, o apoio e o incentivo sempre demonstrados. A concretização deste trabalho não teria sido possível sem a ajuda das pessoas que me são mais próximas: os meus pais e o Henrique, que constituem uma retaguarda segura e sempre pronta a dar-me apoio; os meus filhos, André e Margarida, que me têm proporcionado muitas alegrias. Eles são, no seu conjunto, o meu porto seguro de afectos.

11 Índice 1 INTRODUÇÃO OBJECTIVOS DO TRABALHO ORIGENS E DESENVOLVIMENTOS DO ESTUDO CONVENÇÕES DE ESCRITA ORGANIZAÇÃO E CONTEÚDO DO ESTUDO DEPURAMENTO DE PROGRAMAS DISTRIBUÍDOS INTRODUÇÃO DEPURAMENTO E DETERMINISMO OS CICLOS DO DEPURAMENTO MONITORIZAÇÃO Monitorização por software MODOS DE OPERAÇÃO DO DEPURAMENTO Depuramento durante uma execução livre Depuramento durante uma execução controlada Depuramento após a execução CONDIÇÕES DE CONCORRÊNCIA CONCLUSÃO DETECÇÃO DE PREDICADOS INTRODUÇÃO MODELO DE COMPUTAÇÃO DISTRIBUÍDA - CONCEITOS FUNDAMENTAIS Modelo de Computação Distribuída Relação de Causalidade e Caminho Causal Estado Global Coerente e Reticulado de Estados Globais Coerentes MECANISMOS DE TEMPO LÓGICO Relógios Lógicos de Lamport Vectores de Estampilhas Lógicas Matrizes de Estampilhas Lógicas ALGORITMO PARA OBTER ESTADOS GLOBAIS COERENTES ALGORITMOS DE DETECÇÃO DE PREDICADOS Detecção de Predicados Globais Quaisquer Detecção de Tipos Particulares de Predicados Globais PONTOS DE CONTROLO GLOBAIS COERENTES Condições Necessárias e Suficientes para a Coerência Algoritmos para Obter Pontos de Controlo Globais Coerentes PONTOS DE PARAGEM Proposta de Classificação...77

12 3.7.2 Algoritmos de Paragem CONCLUSÃO MODELO CONCEPTUAL PARA PROGRAMAS DISTRIBUÍDOS POR TROCA DE MENSAGENS INTRODUÇÃO MODELO DE COMPUTAÇÃO DISTRIBUÍDA MECANISMO DE REEXECUÇÃO MODELO CONCEPTUAL Classes do Núcleo Classe Manager Classe Collector Classe Process Classe TimeStamp Classe Message Classe C_event e suas subclasses Classes Gráficas CORTES GLOBAIS COERENTES DETECÇÃO DE CONDIÇÕES DE CONCORRÊNCIA DETECÇÃO DE PREDICADOS VISUALIZAÇÃO DE PROGRAMAS Visualização de software Diagramas Espaço-Tempo Visualização de Programas no MPVisualizer Âmbito Conteúdo Forma Método Interacção Eficácia Desenvolvimentos a Curto Prazo CONCLUSÃO...185

13 5 COMPARAÇÃO DE DEPURADORES PARALELOS INTRODUÇÃO NORMA PARA DEPURADORES PARALELOS COMPARAÇÃO DE FERRAMENTAS Integração num Ambiente de Desenvolvimento Programas Distribuídos Suportados Interface e Representação Gráfica Modos de Operação do Depuramento Utilização de um Depurador Sequencial Mecanismo de Detecção de Condições de Concorrência Definição e Controlo de Grupos de Processos Tabela Comparativa CONCLUSÃO CONCLUSÃO INTRODUÇÃO BALANÇO DO TRABALHO EFECTUADO TRABALHO FUTURO CONSIDERAÇÕES FINAIS GLOSSÁRIO BIBLIOGRAFIA...237

14 Índice de Figuras FIGURA 2.1- CICLOS DO DEPURAMENTO FIGURA 2.2- CONDIÇÃO DE CONCORRÊNCIA FIGURA 3.1- DIAGRAMA ESPAÇO-TEMPO DE UMA COMPUTAÇÃO DISTRIBUÍDA FIGURA 3.2- DIAGRAMA ESPAÇO-TEMPO EQUIVALENTE AO DA FIGURA FIGURA 3.3- CORTES GLOBAIS FIGURA 3.4- RETICULADO DE ESTADOS GLOBAIS COERENTES...47 FIGURA 3.5- RELÓGIOS LÓGICOS...53 FIGURA 3.6- VECTORES DE ESTAMPILHAS LÓGICAS FIGURA 3.7- MATRIZES DE ESTAMPILHAS LÓGICAS...59 FIGURA 3.8- PONTOS DE CONTROLO...68 FIGURA 3.9- CICLO-Z...70 FIGURA EFEITO DOMINÓ FIGURA MENSAGEM PERDIDA FIGURA PROPRIEDADE RDT FIGURA PONTO DE PARAGEM FIGURA 4.1-ESQUEMA DE FUNCIONAMENTO DO MPVISUALIZER...85 FIGURA 4.2- INTERFACE GRÁFICA DO MPVISUALIZER...86 FIGURA 4.3- DIAGRAMA DE CLASSES DO MODELO CONCEPTUAL NA NOTAÇÃO UML FIGURA 4.4- CONDIÇÃO DE CONCORRÊNCIA FALSA FIGURA 4.5- SITUAÇÃO 3 DA TABELA FIGURA 4.6- SITUAÇÃO 4 DA TABELA FIGURA 4.7- SITUAÇÃO 7 DA TABELA FIGURA 4.8- SITUAÇÃO 8 DA TABELA FIGURA 4.9- SITUAÇÃO 11 DA TABELA FIGURA SITUAÇÃO 12 DA TABELA FIGURA SITUAÇÃO 15 DA TABELA FIGURA SITUAÇÃO 16 DA TABELA FIGURA CONDIÇÃO DE CONCORRÊNCIA QUE ENVOLVE RECEPÇÕES NÃO ADJACENTES- PRIMEIRA RECEPÇÃO DO TIPO RECV(-1,T) FIGURA CONDIÇÃO DE CONCORRÊNCIA QUE ENVOLVE RECEPÇÕES NÃO ADJACENTES- PRIMEIRA RECEPÇÃO DO TIPO RECV(-1,-1) FIGURA CONDIÇÃO DE CONCORRÊNCIA NÃO DETECTÁVEL PELO MPVISUALIZER FIGURA DIAGRAMA ESPAÇO-TEMPO GERADO PELO MPVISUALIZER FIGURA JANELA DESCRITIVA DE PREDICADO LOCAL SOB OBSERVAÇÃO- MODO DE DETECÇÃO DE PREDICADOS ACTIVO...175

15 FIGURA JANELA DESCRITIVA DE PREDICADO LOCAL SOB OBSERVAÇÃO- MODO DE DETECÇÃO DE PREDICADOS INIBIDO FIGURA JANELAS INFORMATIVAS DE EVENTOS DE COMUNICAÇÃO FIGURA JANELA INFORMATIVA DE RECEPÇÃO NÃO BLOQUEANTE FIGURA JANELA INFORMATIVA DE RECEPÇÃO BLOQUEANTE FIGURA JANELA INFORMATIVA DE PREDICADO LOCAL FIGURA CONE DE CAUSALIDADE NUM DIAGRAMA ESPAÇO-TEMPO FIGURA JANELA INFORMATIVA DE PREDICADOS GLOBAIS FIGURA JANELAS INFORMATIVAS DE CONDIÇÃO DE CONCORRÊNCIA Índice de Tabelas TABELA 4.1- COMBINAÇÕES DOS ARGUMENTOS IDENTIFICADOR DO PROCESSO EMISSOR E ETIQUETA DA MENSAGEM ESPERADA EM DOIS EVENTOS DE RECEPÇÃO DE UM MESMO PROCESSO TABELA 4.2- JANELAS ADICIONAIS DO MPVISUALIZER E MODO DE AS VISUALIZAR TABELA 5.1- RESUMO DO ESTUDO COMPARATIVO ENTRE DEPURADORES PARALELOS

16

17 1 Introdução 1.1 Objectivos do trabalho Actualmente assiste-se a um crescente interesse na utilização de clusters de estações de trabalho e/ou computadores pessoais como forma de obter plataformas de computação paralela de baixo custo, ou mesmo com custos marginais quando se recorre a máquinas já existentes tirando proveito dos intervalos de tempo, significativamente longos, em que os seus processadores se encontram desocupados. Trata-se de uma alternativa viável e consideravelmente mais económica que o recurso a supercomputadores ou computadores com múltiplos processadores. O surgimento destas novas plataformas de trabalho, compostas por máquinas potencialmente heterogéneas ligadas em rede, criou novas necessidades aplicacionais em áreas tão diversas como, citando apenas um subconjunto, protocolos de transporte na rede, algoritmos de scheduling, novos paradigmas e metodologias de programação e ferramentas de desenvolvimento de programas. Neste último grupo encontramos as ferramentas de depuramento. Esta dissertação debruça-se sobre o depuramento de programas distribuídos por troca de mensagens. É proposto um modelo conceptual para programas distribuídos por troca de mensagens que tem por objectivo constituir um alicerce sólido para o estudo deste tipo de programas. O modelo pode ser combinado, a montante, com diversas bibliotecas de troca de mensagens e, a jusante, com variadas bibliotecas gráficas. A necessidade de recorrer a bibliotecas gráficas prende-se com o facto de se ter considerado fundamental a existência de uma interface gráfica capaz de produzir representações pictóricas da execução dos programas em estudo. O modelo conceptual proposto, desenvolvido segundo o paradigma da orientação por objectos, baseia-se no modelo de computação distribuída de Babaoğlu e Marzullo [Babaoğlu93] e respeita a relação de ordem causal definida por Lamport [Lamport78]. O tipo de representação pictórica adoptado foi o diagrama espaço-tempo. Por manipulação directa dos símbolos do diagrama produzido pode obter-se informação 1

18 detalhada sobre as entidades do modelo, os eventos observáveis, os processos e as mensagens, ou desencadear acções relacionadas com capacidades incorporadas no modelo conceptual proposto. Estas capacidades, todas de grande importância para o depuramento de programas distribuídos por troca de mensagens, são: a detecção de condições de concorrência, a detecção de predicados e o cálculo de cortes globais coerentes. O protótipo MPVisualizer concretiza o modelo conceptual. Neste protótipo foi incorporado um mecanismo de reexecução que permite reproduzir comportamentos e dar suporte ao depuramento cíclico, uma técnica muito comum no depuramento de programas sequenciais. 1.2 Origens e Desenvolvimentos do Estudo O nosso interesse em observar programas distribuídos teve a sua origem na utilização de um sistema de visualização de dados científicos, o ape [ape90], que suportava a execução de módulos de cálculo em modo distribuído. No decorrer da utilização deste produto foi sentida a necessidade de compreender o desenrolar da execução distribuída de diferentes módulos do programa o que motivou o projecto de conceber uma ferramenta para monitorizar programas desenvolvidos no ambiente ape cujos módulos estivessem em execução numa ou em várias máquinas ligadas em rede [Cláudio92a]. O interesse crescente em tirar partido do paralelismo para obter um aumento de desempenho, nomeadamente na geração de imagens, levou-nos à utilização do PVM. Este produto, de domínio público, era adequado a uma plataforma então disponível no LNEC: um cluster de estações de trabalho. Utilizando o PVM nesta plataforma, foram efectuadas duas experiências distintas. Uma das experiências consistiu na paralelização do algoritmo de Ray-Tracing para geração de imagens realistas e foi efectuado por um grupo de alunos da disciplina de Computação Gráfica do Departamento de Informática. Neste trabalho foi observada uma redução do tempo de execução da versão paralela relativamente à versão sequencial próxima do valor ideal para o número de processadores usados. Este facto era esperado já que o referido algoritmo é um dos exemplos apontado com frequência como sendo naturalmente paralelo. 2

19 A segunda experiência teve por objectivo obter medidas concretas de comparação de desempenho entre uma versão sequencial e uma versão distribuída de um mesmo algoritmo. Usando a biblioteca PVM, codificou-se um programa distribuído para aplicação do método de Gauss para resolução de sistemas de equações lineares [Cláudio93a]. Neste trabalho foram efectuadas medidas de desempenho utilizando uma rede Ethernet e uma ligação SOCC (Serial Optical Channel Converter); os resultados então obtidos apontavam para o facto da latência da rede ser o principal entrave ao aumento de desempenho do programa distribuído. Outras experiências efectuadas por diversos investigadores levavam a uma conclusão idêntica. Ao desenvolver os anteriores programas distribuídos usando as rotinas de comunicação do PVM foi sentida na prática a falta de uma ferramenta de depuramento que permitisse ter uma visão e um controlo globais destes programas. O interesse entretanto surgido pelo depuramento de programas distribuídos pôde ser materializado no âmbito de um projecto patrocinado pela JNICT (Junta Nacional de Investigação Científica e Tecnológica, actual Fundação para a Ciência e Tecnologia) no âmbito do Programa Mobilizador de Ciência e Tecnologia (projecto PMCT/C/TIT/455/90). Com o título Utilização da Visualização Gráfica no Desenvolvimento de Aplicações Distribuídas, este projecto teve como entidades proponentes o LNEC (Laboratório Nacional de Engenharia Civil) e o DI-FCUL (Departamento de Informática da Faculdade de Ciências da Universidade de Lisboa). No âmbito do projecto foram elaborados três relatórios de progresso [Cláudio92b], [Cláudio93b] e [Cláudio94]. A primeira proposta para o modelo conceptual foi apresentada em [Cláudio94]. Neste relatório podem ser também encontradas algumas considerações sobre as representações pictóricas a utilizar na representação gráfica. Em [Cláudio95] apresenta-se o mecanismo de reexecução implementado; no relatório técnico [Cláudio99b] são fornecidos os detalhes sobre esta implementação. Em [Cláudio98] discute-se quer o modo escolhido para incorporar no modelo conceptual a capacidade de detecção de predicados, quer a adopção do diagrama espaço-tempo. Um novo modelo conceptual, adaptação do anteriormente proposto, é 3

20 apresentado em [Cláudio99a]; este modelo tem capacidade para detectar alguns tipos de condições de concorrência. O modelo descrito em [Cláudio00] é um refinamento do anterior e encontra-se muito próximo do modelo conceptual apresentado nesta dissertação. Nesta versão haviam sido incorporados melhoramentos ao mecanismo de detecção de condições de concorrência. Subsequentemente, procedeu-se ainda a pequenas alterações no diagrama de classes do modelo conceptual e a melhoramentos significativos no mecanismo de detecção de condições de concorrência. Tirando partido do mecanismo de tempo lógico já incorporado, acrescentou-se a capacidade de cálculo de estados globais coerentes e melhorou-se o mecanismo de detecção de predicados, tornando possível a detecção da conjunção e disjunção de predicados locais. A interface gráfica foi adequada a estas novas funcionalidades oferecidas ao utilizador. 1.3 Convenções de escrita Na escrita da dissertação foram adoptadas algumas convenções com o intuito de tornar a sua leitura mais fácil. As traduções de termos ou expressões originalmente em língua inglesa, na sua primeira ocorrência no texto, surgem seguidas pela designação original grafada em itálico e entre parêntesis. O glossário incluído nesta dissertação contém a lista dos termos e expressões originais e as respectivas traduções. Optou-se por não traduzir alguns termos ingleses de utilização generalizada como, por exemplo, scheduling, bug, hardware e software. Também nestes casos se adopta o grafismo em itálico. São igualmente grafadas em itálico todas as expressões latinas como a priori ou post-mortem. As aspas são usadas para destacar uma palavra ou um conjunto de palavras no texto. Por exemplo, as designações de conceitos que vão sendo introduzidos ao longo do capítulo que descreve o trabalho efectuado surgem sempre entre aspas na sua primeira ocorrência no texto. 4

21 Foram adoptadas duas fontes distintas, como se ilustra neste parágrafo, uma para o texto corrente, outra para designações ou expressões matemáticas, extractos de código, nomes de classes, de atributos ou de métodos. 1.4 Organização e Conteúdo do Estudo A dissertação é constituída pela presente introdução a que se seguem cinco capítulos: o segundo e o terceiro constituem, no seu conjunto, um estado da arte, o quarto capítulo descreve o trabalho efectuado, no quinto capítulo procede-se a um estudo comparativo do protótipo desenvolvido com diversos depuradores paralelos e, por fim, o sexto capítulo é dedicado às conclusões e ao trabalho futuro. Nos parágrafos seguintes apresenta-se uma descrição sumária de cada um destes capítulos. Segundo capítulo O capítulo dois debruça-se sobre o depuramento de programas distribuídos de um modo geral. Seguindo Meyer, decompõe-se a designação genérica mas imprecisa de bug nos conceitos de erro, defeito e falha [Meyer97]. Apontam-se os dois factores fundamentais que contribuem para a complexidade do depuramento de programas distribuídos: o número habitualmente grande de entidades envolvidas na execução destes programas e o não determinismo. Este último é causado potencialmente pelas denominadas condições de concorrência. Observa-se que o depuramento cíclico, uma técnica comum no depuramento de programas sequenciais, só é aplicável a programas distribuídos desde que exista como suporte um método que permita repetir comportamentos. Refere-se a importância que a aplicação de métodos formais pode ter, quer na verificação da correcção do programa, quer na geração de cenários de teste. Analisam-se as duas fases do depuramento cíclico: a localização de um defeito e a eliminação do mesmo. Referem-se os vários processos de monitorização de programas distribuídos dando especial destaque aos monitores por software e ao inerente efeito intrusivo sobre a execução dos programas monitorizados. Discutem-se os três modos de operação do depuramento: no decurso de uma execução livre do programa em estudo, ou de uma execução controlada ou ainda com base no registo de uma execução anterior (modo post-mortem). Finalmente, referem-se trabalhos sobre detecção e classificação de condições de concorrência. 5

22 Terceiro capítulo O terceiro capítulo tem como tema principal a detecção de predicados, tarefa que está habitualmente associada à inserção de pontos de paragem (breakpoints) mas que pode ser usada de modo mais abrangente para exprimir comportamentos esperados ou erróneos por parte do programa em estudo. O capítulo começa por descrever um modelo, conceitos e resultados fundamentais ao enquadramento da detecção de predicados: o modelo de computação distribuída por troca de mensagens proposto por Babaoğlu e Marzullo [Babaoğlu93], a relação de causalidade definida por Lamport [Lamport78] para os eventos desta computação, os conceitos de estado global coerente e de reticulado de estados globais coerentes. Descreve-se o funcionamento de três mecanismos de tempo lógico: os relógios lógicos de Lamport, os vectores de estampilhas lógicas e as matrizes de estampilhas lógicas. Os vectores de estampilhas lógicas merecem especial destaque porque gozam de um conjunto de propriedades importantes que são enumeradas. A descrição do algoritmo de Chandy e Lamport [Chandy85] para obtenção de estados globais coerentes antecede a dos algoritmos de detecção de predicados globais. Neste grupo de algoritmos estuda-se a abordagem de Cooper e Marzullo [Cooper91], adequada à detecção de qualquer predicado global, mas de custos demasiados pesados em termos de cálculo, e resume-se um conjunto significativo de trabalhos dedicados à detecção de tipos particulares de predicados globais. Por último, referem-se resultados importantes sobre pontos de controlo (checkpoints) e pontos de paragem e apresenta-se uma súmula de algoritmos dedicados a estes conceitos. Quarto capítulo No quarto capítulo apresenta-se o trabalho efectuado. Nele se descreve, quer o modelo conceptual para programas distribuídos por troca de mensagens que incorpora importantes capacidades para o depuramento deste tipo de programas, quer a ferramenta MPVisualizer que concretiza o modelo conceptual. São descritas as três componentes do MPVisualizer: o mecanismo de reexecução, a interface gráfica e a aplicação visualizadora. 6

23 Introduz-se um modelo de execução de programas distribuídos por troca de mensagens que se baseia no modelo de Babaoğlu e Marzullo, descrito no capítulo dois, e a partir do qual se concebeu o modelo conceptual proposto. São referidos os aspectos mais relevantes do mecanismo de reexecução implementado que é uma adaptação do algoritmo Instant Replay, proposto por Leblanc e Mellor-Crummey [Leblanc87], destinado a programas distribuídos por partilha de memória. Descreve-se o modelo conceptual que foi concebido de acordo com o paradigma da orientação por objectos: apresenta-se a hierarquia de classes do modelo e descrevem-se os dois grupos de classes que o compõem, as classes do núcleo e as classes gráficas. Discute-se o método incorporado no modelo conceptual que se destina ao cálculo de cortes globais coerentes. Prova-se que um corte obtido segundo este método corresponde ao cone de causalidade de um determinado evento. São apresentados os mecanismo de detecção de condições de concorrência e de detecção de predicados locais e globais. O mecanismo de detecção de condições de concorrência baseia-se num estudo exaustivo das várias situações em que duas recepções de mensagem num mesmo processo podem estar envolvidas numa condição de concorrência. O mecanismo de detecção de predicados locais, obriga a uma intervenção por parte do utilizador a qual é explicada e ilustrada com um exemplo. Em contrapartida, a detecção dos dois predicados locais que são a disjunção e a conjunção de predicados locais é automática, não requerendo a intervenção do utilizador. Tendo em conta que o MPVisualizer pode ser considerado uma ferramenta de visualização de programas, procede-se à sua descrição sistemática utilizando uma taxonomia vocacionada para este tipo de ferramentas. No contexto desta descrição estão incluídos os aspectos relativos à interface gráfica da ferramenta. Os desenvolvimentos futuros a efectuar, quer sobre o modelo, quer sobre o MPVisualizer são dispostos em dois patamares de dificuldade. Neste capítulo descrevem-se os desenvolvimentos mais simples, os do patamar inferior, previstos para o curto prazo. Os desenvolvimentos do segundo patamar, previstos para o médio prazo, são discutidos no capítulo seis. 7

24 Quinto capítulo No quinto capítulo procede-se a um estudo comparativo entre o MPVisualizer e diversos depuradores paralelos tendo por base uma proposta de grelha de sete pontos. Designam-se por depuradores paralelos as ferramentas de depuramento destinadas a programas paralelos ou distribuídos. Para a comparação escolheu-se um conjunto significativo de depuradores paralelos, de entre os mais citados nas publicações científicas da especialidade. Do estudo comparativo pode concluir-se que a ferramenta que concretiza o modelo conceptual proposto neste trabalho, apresenta características que permitem considerá-la como uma contribuição positiva para o depuramento de programas distribuídos baseados em troca de mensagens. Sexto capítulo O último capítulo da dissertação é dedicado às conclusões e desenvolvimentos futuros. Nele se faz o balanço do trabalho apresentado destacando os seus aspectos positivos e negativos. Apresentam-se os desenvolvimentos incluídos no segundo patamar de dificuldade, destinados a eliminar os aspectos negativos e a introduzir melhoramentos considerados importantes. 8

25 2 Depuramento de Programas Distribuídos 2.1 Introdução A palavra depuramento é a tradução da palavra inglesa debugging, usada para designar o processo de eliminação dos bugs de um programa. Meyer citando Dijkstra afirma que a designação bug sugere indevidamente que as incorrecções de um programa não são responsabilidade de quem o desenvolve e codifica, mas sim de uma entidade externa [Meyer97]. Embora seja universalmente utilizada, a palavra não tem um significado exacto. No contexto do desenvolvimento de software, segundo Meyer, a palavra bug pode ser aplicada para designar incorrecções em três etapas distintas de desenvolvimento do programa: a concepção, a codificação e a execução. Deste modo, pode corresponder, respectivamente, a um erro (error), um defeito (defect) ou uma falha (fault): um erro é uma decisão incorrecta tomada durante a concepção do programa; um defeito é uma propriedade do programa que pode fazer com que o comportamento deste se afaste do comportamento esperado; uma falha é a manifestação de um defeito durante uma execução concreta do programa [Meyer97]. Estes três conceitos constituem uma cadeia causal: a causa de uma falha é sempre um defeito e a causa deste pode ser um erro ou uma deficiência de codificação. Contudo, os erros e os defeitos nem sempre se manifestam numa falha e, em sucessivas execuções, um defeito pode não produzir sempre a mesma falha, o que claramente dificulta o depuramento. A maior parte das vezes a palavra bug é aplicada com o significado de defeito. É fundamental referir que num contexto distinto, o da confiabilidade no funcionamento dos sistemas computacionais, usa-se uma outra cadeia causal cujas designações estão perfeitamente consagradas e que, numa primeira análise, parecem ser sinónimas das anteriores. Segundo Laprie, a confiabilidade de um sistema define-se como o conjunto de propriedades do mesmo que permite que se tenha, justificadamente, confiança no seu funcionamento [Laprie92]. Os impedimentos à confiabilidade são as faltas (faults), os 9

APLICAÇÕES EM SISTEMAS DISTRIBUÍDOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com

APLICAÇÕES EM SISTEMAS DISTRIBUÍDOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com - Aula 6 - ALGORÍTIMOS PARALELOS MPI - Parallel Virtual Machine e PVM - Parallel Virtual Machine 1. INTRODUÇÃO Inicialmente é necessário conceber alguns conceitos para entendimento dos algoritmos paralelos:

Leia mais

4.2. UML Diagramas de classes

4.2. UML Diagramas de classes Engenharia de Software 4.2. UML Diagramas de classes Nuno Miguel Gil Fonseca nuno.fonseca@estgoh.ipc.pt Um diagrama de classes serve para modelar o vocabulário de um sistema Construído e refinado ao longo

Leia mais

Informática II Cap. 3

Informática II Cap. 3 Cap. 3 1 Tradicionalmente, programar significava apenas a escrita de um programa, que resolvesse o problema pretendido de uma forma aparentemente correcta. Problema Problema Programa Programa Desvantagens:

Leia mais

Instituto Superior Politécnico de VISEU. Escola Superior de Tecnologia

Instituto Superior Politécnico de VISEU. Escola Superior de Tecnologia 1 Tradicionalmente, programar significava apenas a escrita de um programa, que resolvesse o problema pretendido de uma forma aparentemente correcta. Problema Problema Programa Programa Desvantagens: Programas

Leia mais

Curso Técnico Superior Profissional em Desenvolvimento Web

Curso Técnico Superior Profissional em Desenvolvimento Web Curso Técnico Superior Profissional em Desenvolvimento Web PROVA DE AVALIAÇÃO DE CAPACIDADE REFERENCIAL DE CONHECIMENTOS E APTIDÕES Áreas relevantes para o curso de acordo com o n.º 4 do art.º 11.º do

Leia mais

Análise de Sistemas. Conceito de análise de sistemas

Análise de Sistemas. Conceito de análise de sistemas Análise de Sistemas Conceito de análise de sistemas Sistema: Conjunto de partes organizadas (estruturadas) que concorrem para atingir um (ou mais) objectivos. Sistema de informação (SI): sub-sistema de

Leia mais

Departamento de Engenharia Informática DISTRIBUTED PROBLEM SOLVING

Departamento de Engenharia Informática DISTRIBUTED PROBLEM SOLVING Departamento de Engenharia Informática DISTRIBUTED PROBLEM SOLVING 1000833 Henrique de Meireles Morais Maio de 2008 Disciplina: Sistemas Baseados em Agentes Professor: António Pinto de Sousa e Silva Mestrado

Leia mais

Utilização de DGPS para Monitorização de Frotas em Ambiente Urbano

Utilização de DGPS para Monitorização de Frotas em Ambiente Urbano Utilização de DGPS para Monitorização de Frotas em Ambiente Urbano Telmo Cunha (1,2), Phillip Tomé (1), Sérgio Cunha (2), Jaime Cardoso (2) e Luisa Bastos (1) (1) Observatório Astronómico da Universidade

Leia mais

PROJECTO DE NORMA REGULAMENTAR

PROJECTO DE NORMA REGULAMENTAR PROJECTO DE NORMA REGULAMENTAR Princípios aplicáveis ao desenvolvimento dos Sistemas de Gestão de Riscos e de Controlo Interno das Empresas de Seguros As melhores práticas internacionais na regulamentação

Leia mais

NOÇÕES ELEMENTARES DE BASES DE DADOS

NOÇÕES ELEMENTARES DE BASES DE DADOS 1 NOÇÕES ELEMENTARES DE BASES DE DADOS Este primeiro capítulo aborda conceitos elementares relacionados com bases de dados. Os conceitos abordados neste capítulo são necessários para trabalhar adequadamente

Leia mais

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia.

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia. 1 Introdução aos Sistemas de Informação 2002 Aula 4 - Desenvolvimento de software e seus paradigmas Paradigmas de Desenvolvimento de Software Pode-se considerar 3 tipos de paradigmas que norteiam a atividade

Leia mais

Engenharia de Software

Engenharia de Software CENTRO UNIVERSITÁRIO NOVE DE JULHO Profº. Edson T. França edson.franca@uninove.br Software Sistemas Conjunto de elementos, entre os quais haja alguma relação Disposição das partes ou dos elementos de um

Leia mais

Metodologias de Desenvolvimento de Sistemas. Analise de Sistemas I UNIPAC Rodrigo Videschi

Metodologias de Desenvolvimento de Sistemas. Analise de Sistemas I UNIPAC Rodrigo Videschi Metodologias de Desenvolvimento de Sistemas Analise de Sistemas I UNIPAC Rodrigo Videschi Histórico Uso de Metodologias Histórico Uso de Metodologias Era da Pré-Metodologia 1960-1970 Era da Metodologia

Leia mais

Modelo Cascata ou Clássico

Modelo Cascata ou Clássico Modelo Cascata ou Clássico INTRODUÇÃO O modelo clássico ou cascata, que também é conhecido por abordagem top-down, foi proposto por Royce em 1970. Até meados da década de 1980 foi o único modelo com aceitação

Leia mais

Capítulo 1. Linguagens e processadores

Capítulo 1. Linguagens e processadores Capítulo 1. 1. Linguagens 1.1. Definição Definição : Uma linguagem L sobre um alfabeto, também designado com frequência por vocabulário, V, é um conjunto de frases, em que cada frase é uma sequência de

Leia mais

Gestão de Configurações II

Gestão de Configurações II Gestão de Configurações II Bibliografia Livro: Software Configuration Management Patterns: Effective Teamwork, Practical Integration Gestão de Projecto 14 Padrões de Gestão Os padrões de gestão de configurações

Leia mais

Estrutura da Norma. 0 Introdução 0.1 Generalidades. ISO 9001:2001 Sistemas de Gestão da Qualidade Requisitos. Gestão da Qualidade 2005

Estrutura da Norma. 0 Introdução 0.1 Generalidades. ISO 9001:2001 Sistemas de Gestão da Qualidade Requisitos. Gestão da Qualidade 2005 ISO 9001:2001 Sistemas de Gestão da Qualidade Requisitos Gestão da Qualidade 2005 Estrutura da Norma 0. Introdução 1. Campo de Aplicação 2. Referência Normativa 3. Termos e Definições 4. Sistema de Gestão

Leia mais

Um compilador é um programa que lê um programa escrito numa dada linguagem, a linguagem objecto (fonte), e a traduz num programa equivalente

Um compilador é um programa que lê um programa escrito numa dada linguagem, a linguagem objecto (fonte), e a traduz num programa equivalente Capítulo 1 Introdução Um compilador é um que lê um escrito numa dada linguagem, a linguagem objecto (fonte), e a traduz num equivalente numa outra linguagem, a linguagem destino Como parte importante neste

Leia mais

Tolerância a Faltas. 8/28/2003 José Alves Marques. Sistema Computacional

Tolerância a Faltas. 8/28/2003 José Alves Marques. Sistema Computacional Tolerância a Faltas Sistema Computacional Sistema computacional: Formado por um conjunto de componentes internas Contém um estado interno Está sujeito a um conjunto de entradas, ou estímulos externos Tem

Leia mais

Um sistema SMS 1 simplificado

Um sistema SMS 1 simplificado 1 Introdução Um sistema SMS 1 simplificado Projecto de Redes de Computadores I - 2007/2008 LEIC IST, Tagus Park 10 de Setembro de 2007 Pretende-se com este projecto que os alunos implementem um sistema

Leia mais

Ferramenta computacional para implementação de redes neuronais optimização das capacidades gráficas

Ferramenta computacional para implementação de redes neuronais optimização das capacidades gráficas INEB- PSI Technical Report 2007-2 Ferramenta computacional para implementação de redes neuronais optimização das capacidades gráficas Alexandra Oliveira aao@fe.up.pt Professor Joaquim Marques de Sá December

Leia mais

Centro Atlântico, Lda., 2011 Ap. 413 4764-901 V. N. Famalicão, Portugal Tel. 808 20 22 21. geral@centroatlantico.pt www.centroatlantico.

Centro Atlântico, Lda., 2011 Ap. 413 4764-901 V. N. Famalicão, Portugal Tel. 808 20 22 21. geral@centroatlantico.pt www.centroatlantico. Reservados todos os direitos por Centro Atlântico, Lda. Qualquer reprodução, incluindo fotocópia, só pode ser feita com autorização expressa dos editores da obra. Microsoft Excel 2010 Colecção: Software

Leia mais

Curriculum DeGóis Guia de preenchimento do Curriculum Vitae (Informação mínima necessária)

Curriculum DeGóis Guia de preenchimento do Curriculum Vitae (Informação mínima necessária) Curriculum DeGóis Guia de preenchimento do Curriculum Vitae (Informação mínima necessária) /curriculum Julho de 2008 Versão 1.1 1 Introdução O objectivo deste guia é auxiliar o utilizador da Plataforma

Leia mais

M323 AUTOMAÇÃO TRABALHO LABORATORIAL Nº 7

M323 AUTOMAÇÃO TRABALHO LABORATORIAL Nº 7 ESCOLA SUPERIOR NÁUTICA INFANTE D. HENRIQUE DEPARTAMENTO DE ENGENHARIA MARÍTIMA M323 AUTOMAÇÃO TRABALHO LABORATORIAL Nº 7 INTRODUÇÃO À PROGRAMAÇÃO DE AUTÓMATOS INDUSTRIAIS Por: Prof. Luis Filipe Baptista

Leia mais

Lisboa, 18 de Janeiro de 2004

Lisboa, 18 de Janeiro de 2004 Lisboa, 18 de Janeiro de 2004 Realizado por: o Bruno Martins Nº 17206 o Cátia Chasqueira Nº 17211 o João Almeida Nº 17230 1 Índice 1 Índice de Figuras... 3 2 Versões... 4 3 Introdução... 5 3.1 Finalidade...

Leia mais

Programação I. Departamento de Engenharia Rural Centro de Ciências Agrárias

Programação I. Departamento de Engenharia Rural Centro de Ciências Agrárias Departamento de Engenharia Rural Centro de Ciências Agrárias Programação I Prof. Bruno Vilela Oliveira bruno@cca.ufes.br http://www.brunovilela.webnode.com.br Programas e Linguagens Para executar uma tarefa

Leia mais

SISTEMAS DE GESTÃO DA QUALIDADE

SISTEMAS DE GESTÃO DA QUALIDADE SISTEMAS DE GESTÃO DA QUALIDADE Objectivos do Curso. No final deste os alunos deverão: Identificar os principais objectivos associados à implementação de Sistemas de Gestão da Qualidade (SGQ) Compreender

Leia mais

Enunciado de apresentação do projecto

Enunciado de apresentação do projecto Engenharia de Software Sistemas Distribuídos 2 o Semestre de 2009/2010 Enunciado de apresentação do projecto FEARSe Índice 1 Introdução... 2 2 Cenário de Enquadramento... 2 2.1 Requisitos funcionais...

Leia mais

Algoritmos: Lógica para desenvolvimento de programação de computadores. Autor: José Augusto Manzano. Capítulo 1 Abordagem Contextual

Algoritmos: Lógica para desenvolvimento de programação de computadores. Autor: José Augusto Manzano. Capítulo 1 Abordagem Contextual Algoritmos: Lógica para desenvolvimento de programação de computadores Autor: José Augusto Manzano Capítulo 1 Abordagem Contextual 1.1. Definições Básicas Raciocínio lógico depende de vários fatores para

Leia mais

Engenharia de Software

Engenharia de Software Engenharia de Software Desenho de Software Departamento de Matemática Universidade dos Açores Hélia Guerra helia@uac.pt desenho Desenho (dicionário Priberam on-line) do Lat.! designu s. m., arte de representar

Leia mais

Estrutura da Norma. 0 Introdução 0.1 Generalidades. ISO 9001:2008 Sistemas de Gestão da Qualidade Requisitos

Estrutura da Norma. 0 Introdução 0.1 Generalidades. ISO 9001:2008 Sistemas de Gestão da Qualidade Requisitos ISO 9001:2008 Sistemas de Gestão da Qualidade Requisitos Gestão da Qualidade e Auditorias (Mestrado em Engenharia Alimentar) Gestão da Qualidade (Mestrado em Biocombustívies) ESAC/João Noronha Novembro

Leia mais

A UTILIZAÇÃO DE MODELOS MATEMÁTICOS PARA A ESTIMAÇÃO DA PROCURA DE TRANSPORTES. José M. Viegas (Março 2000)

A UTILIZAÇÃO DE MODELOS MATEMÁTICOS PARA A ESTIMAÇÃO DA PROCURA DE TRANSPORTES. José M. Viegas (Março 2000) A UTILIZAÇÃO DE MODELOS MATEMÁTICOS PARA A ESTIMAÇÃO DA PROCURA DE TRANSPORTES José M. Viegas (Março 2000) I - A NECESSIDADE DO RECURSO AOS MODELOS MATEMÁTICOS PARA A ESTIMAÇÃO DA PROCURA DE TRANSPORTES

Leia mais

Uma Base de Dados é uma colecção de dados partilhados, interrelacionados e usados para múltiplos objectivos.

Uma Base de Dados é uma colecção de dados partilhados, interrelacionados e usados para múltiplos objectivos. 1. Introdução aos Sistemas de Bases de Dados Uma Base de Dados é uma colecção de dados partilhados, interrelacionados e usados para múltiplos objectivos. O conceito de base de dados faz hoje parte do nosso

Leia mais

UML (Unified Modelling Language) Diagrama de Classes

UML (Unified Modelling Language) Diagrama de Classes UML (Unified Modelling Language) Diagrama de Classes I Classes... 2 II Relações... 3 II. Associações... 3 II.2 Generalização... 9 III Exemplos de Modelos... III. Tabelas de IRS... III.2 Exames...3 III.3

Leia mais

Projecto de Programação MEEC - 2010/2011-1ºSemestre. Mestrado Integrado em Engenharia Electrotécnica e de Computadores

Projecto de Programação MEEC - 2010/2011-1ºSemestre. Mestrado Integrado em Engenharia Electrotécnica e de Computadores Mestrado Integrado em Engenharia Electrotécnica e de Computadores Programação 2010/2011 Enunciado do projecto O projecto a desenvolver pelos alunos consistirá numa sistema de monitorização do estado de

Leia mais

Juciara Nepomuceno de Souza Rafael Garcia Miani. Teste de Software

Juciara Nepomuceno de Souza Rafael Garcia Miani. Teste de Software Juciara Nepomuceno de Souza Rafael Garcia Miani Teste de Software Técnicas de Teste de Software Testabilidade Operabilidade; Observabilidade; Controlabilidade; Decomponibilidade; Simplicidade; Estabilidade;

Leia mais

Unidade de Controlo. Unidade Aritmética e Lógica

Unidade de Controlo. Unidade Aritmética e Lógica Métodos de Programação I Departamento de Matemática, FCTUC 8 Modelo de Organização de um Computador Digital - Modelo de Von Neumann Neste modelo esquemático de organização de um computador digital tradicional

Leia mais

TIC Unidade 2 Base de Dados. Informação é todo o conjunto de dados devidamente ordenados e organizados de forma a terem significado.

TIC Unidade 2 Base de Dados. Informação é todo o conjunto de dados devidamente ordenados e organizados de forma a terem significado. Conceitos relativos à Informação 1. Informação O que á a informação? Informação é todo o conjunto de dados devidamente ordenados e organizados de forma a terem significado. 2. Dados Em informática designa-se

Leia mais

1.1 A abordagem seguida no livro

1.1 A abordagem seguida no livro 1- Introdução A área de administração de sistemas e redes assume cada vez mais um papel fundamental no âmbito das tecnologias da informação. Trata-se, na realidade, de uma área bastante exigente do ponto

Leia mais

Engenharia de Software LEIC/LERC, 3 o Ano, 2 o Semestre, Ano lectivo de 2009/2010

Engenharia de Software LEIC/LERC, 3 o Ano, 2 o Semestre, Ano lectivo de 2009/2010 UNIVERSIDADE TÉCNICA DE LISBOA INSTITUTO SUPERIOR TÉCNICO Engenharia de Software LEIC/LERC, 3 o Ano, 2 o Semestre, Ano lectivo de 2009/2010 Segundo Exame 16 de Julho de 2010, 9:00H 11:30H (Versão A) Nome:

Leia mais

9 Fiabilidade, testes e tolerância a falhas

9 Fiabilidade, testes e tolerância a falhas 9 Fiabilidade, testes e tolerância a falhas Um sistema fiável é o resultado de um processo sólido de desenho, boa engenharia, e um processo sólido de testes. Neste capítulo vamos discutir fiabilidade,

Leia mais

Aplicações Informáticas B

Aplicações Informáticas B Prova de Exame Nacional de Aplicações Informáticas B Prova 703 2008 12.º Ano de Escolaridade Decreto-Lei n.º 74/2004, de 26 de Março Para: Direcção-Geral de Inovação e de Desenvolvimento Curricular Inspecção-Geral

Leia mais

TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO. SISTEMAS DE GESTÃO DE BASE DE DADOS Microsoft Access TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO

TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO. SISTEMAS DE GESTÃO DE BASE DE DADOS Microsoft Access TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO Microsoft Access TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO CONCEITOS BÁSICOS 1 Necessidade das base de dados Permite guardar dados dos mais variados tipos; Permite

Leia mais

Linguateca e Processamento de Linguagem Natural na Área da Saúde: Alguns Comentários e Sugestões

Linguateca e Processamento de Linguagem Natural na Área da Saúde: Alguns Comentários e Sugestões Capítulo 7 Linguateca e Processamento de Linguagem Natural na Área da Saúde: Alguns Comentários e Sugestões Liliana Ferreira, António Teixeira e João Paulo da Silva Cunha Luís Costa, Diana Santos e Nuno

Leia mais

Normas para apresentação de dissertações

Normas para apresentação de dissertações Normas para apresentação de dissertações Bases Essenciais Manuel A. Matos Resumo: Neste documento descrevem-se os aspectos essenciais a ter em conta na apresentação de dissertações ou documentos similares,

Leia mais

DOCUMENTO IDENTIFICAÇÃO - BI nº Passaporte nº Duração de 1H30. Leia com atenção as seguinte instruções:

DOCUMENTO IDENTIFICAÇÃO - BI nº Passaporte nº Duração de 1H30. Leia com atenção as seguinte instruções: Leia com atenção as seguinte instruções: As questões de múltipla escolha têm uma cotação de 0,1 cada. Caso queira alterar a sua resposta, risque a anterior e assinale a sua opção final com um círculo e

Leia mais

Como elaborar um Plano de Negócios de Sucesso

Como elaborar um Plano de Negócios de Sucesso Como elaborar um Plano de Negócios de Sucesso Pedro João 28 de Abril 2011 Fundação António Cupertino de Miranda Introdução ao Plano de Negócios Modelo de Negócio Análise Financeira Estrutura do Plano de

Leia mais

Sistemas Operativos - 2005/2006. Trabalho Prático v1.0

Sistemas Operativos - 2005/2006. Trabalho Prático v1.0 Instituto Politécnico de Viseu Escola Superior de Tecnologia de Viseu Engenharia de Sistemas e Informática Sistemas Operativos - 2005/2006 Trabalho Prático v1.0 Introdução O presente trabalho prático visa

Leia mais

Algoritmia e Estruturas de Dados

Algoritmia e Estruturas de Dados JOSÉ BRAGA DE VASCONCELOS JOÃO VIDAL DE CARVALHO Algoritmia e Estruturas de Dados Programação nas linguagens C e JAVA Portugal/2005 Reservados todos os direitos por Centro Atlântico, Lda. Qualquer reprodução,

Leia mais

Manual do Utilizador

Manual do Utilizador Faculdade de Ciências e Tecnologia da Universidade de Coimbra Departamento de Engenharia Electrotécnica e Computadores Software de Localização GSM para o modem Siemens MC35i Manual do Utilizador Índice

Leia mais

UNIVERSIDADE TÉCNICA DE LISBOA INSTITUTO SUPERIOR TÉCNICO. Licenciatura em Engenharia Informática e Computadores Alameda e Taguspark

UNIVERSIDADE TÉCNICA DE LISBOA INSTITUTO SUPERIOR TÉCNICO. Licenciatura em Engenharia Informática e Computadores Alameda e Taguspark UNIVERSIDADE TÉCNICA DE LISBOA INSTITUTO SUPERIOR TÉCNICO Licenciatura em Engenharia Informática e Computadores Alameda e Taguspark Sistemas Distribuídos e Engenharia de Software Projecto de 2010/2011

Leia mais

ENIAC. Introdução aos Computadores e à Programação (Noções Básicas)

ENIAC. Introdução aos Computadores e à Programação (Noções Básicas) ENIAC Introdução aos Computadores e à ção (Noções Básicas) Introdução aos Computadores e à ção (Noções Básicas) 1 Introdução aos Computadores e à ção (Noções Básicas) 2 O transistor foi inventado em 1947

Leia mais

Pong a quatro jogadores, distribuído e tolerante a faltas

Pong a quatro jogadores, distribuído e tolerante a faltas Pong a quatro jogadores, distribuído e tolerante a faltas José Mocito i28289@alunos.di.fc.ul.pt Liliana Rosa i28351@alunos.di.fc.ul.pt Grupo 07 Nuno Almeida i27841@alunos.di.fc.ul.pt Abstract O Pong a

Leia mais

Disciplina: TRANSPORTES. Sessão 8: O Modelo de 4 passos (1ª parte):

Disciplina: TRANSPORTES. Sessão 8: O Modelo de 4 passos (1ª parte): MESTRADO INTEGRADO DE ENGENHARIA CIVIL Disciplina: TRANSPORTES Prof. Responsável: José Manuel Viegas Sessão 8: O Modelo de 4 passos (1ª parte): Geração e 2010 / 2011 1/17 MODELOS GLOBAIS (I) Para além

Leia mais

- Aula 1 - ARQUITETURA DE COMPUTADORES

- Aula 1 - ARQUITETURA DE COMPUTADORES - Aula 1 - ARQUITETURA DE COMPUTADORES Em arquitetura de computadores serão estudados aspectos da estrutura e do funcionamento dos computadores. O objetivo é apresentar de forma clara e abrangente a natureza

Leia mais

Módulo de Administração de Utilizadores

Módulo de Administração de Utilizadores base Módulo de Administração de Utilizadores Versão 2.0 Manual do utilizador Janeiro 2002 Ficha técnica Título BIBLIObase : Módulo de Administração de Utilizadores: versão 2.0 : manual do utilizador Autores

Leia mais

De Arte a Ciência: Regras para o Desenho de Software

De Arte a Ciência: Regras para o Desenho de Software De Arte a Ciência: Regras para o Desenho de Software Neste artigo é apresentado um conjunto de regras de desenho um padrão de desenho universal associado ao princípio fundamental e aos requisitos axiomáticos.

Leia mais

SISTEMAS DE INFORMAÇÃO PARA GESTÃO

SISTEMAS DE INFORMAÇÃO PARA GESTÃO 07-05-2013 1 SISTEMAS DE INFORMAÇÃO PARA GESTÃO Aula I Docente: Eng. Hercílio Duarte 07-05-2013 2 Objectivo Sistemas Modelos Dados Vs. Informação Introdução aos sistemas de Informação 07-05-2013 3 Introdução

Leia mais

Programação 2ºSemestre MEEC - 2010/2011. Programação 2º Semestre 2010/2011 Enunciado do projecto

Programação 2ºSemestre MEEC - 2010/2011. Programação 2º Semestre 2010/2011 Enunciado do projecto Mestrado Integrado em Engenharia Electrotécnica e de Computadores Programação 2º Semestre 2010/2011 Enunciado do projecto O projecto a desenvolver pelos alunos consistirá numa sistema de monitorização,

Leia mais

ORGANIZAÇÃO CURRICULAR

ORGANIZAÇÃO CURRICULAR ORGANIZAÇÃO CURRICULAR O curso Técnico em Informática, em Nível Médio Subseqüente, será organizado de forma semestral, com aulas presenciais, compostos por disciplinas, com conteúdos estabelecidos, tendo

Leia mais

Sistemas Paralelos e Distribuídos. Prof. Jorge Dantas de Melo Depto. Eng. Comp. e Automação CT - UFRN

Sistemas Paralelos e Distribuídos. Prof. Jorge Dantas de Melo Depto. Eng. Comp. e Automação CT - UFRN Sistemas Paralelos e Distribuídos Prof. Jorge Dantas de Melo Depto. Eng. Comp. e Automação CT - UFRN Conceitos preliminares Paralelismo refere-se a ocorrência simultânea de eventos em um computador Processamento

Leia mais

Manutenção em tempos de crise económica Importância da Gestão da Manutenção

Manutenção em tempos de crise económica Importância da Gestão da Manutenção Manutenção em tempos de crise económica Importância da Gestão da Manutenção Por: Patrícia Isabel Correia* A ausência de um Sistema de Gestão de Manutenção provocou, ao longo de muitos anos, a deterioração

Leia mais

Algoritmos e Programação (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br

Algoritmos e Programação (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br Introdução O computador como ferramenta indispensável: Faz parte das nossas vidas; Por si só não faz nada de útil; Grande capacidade de resolução

Leia mais

Introdução à Programação de Computadores

Introdução à Programação de Computadores 1. Objetivos Introdução à Programação de Computadores Nesta seção, vamos discutir os componentes básicos de um computador, tanto em relação a hardware como a software. Também veremos uma pequena introdução

Leia mais

3 ao Quadrado - Agenda Web

3 ao Quadrado - Agenda Web 3 ao Quadrado - Agenda Web Relatório de Gestão de Projectos de Software - Grupo A - LEIC 2001/2002 http://gnomo.fe.up.pt/gps01a João Montenegro - ei97023@fe.up.pt André Teixeira - ei97024@fe.up.pt Carlos

Leia mais

EMENTAS DO CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

EMENTAS DO CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS EMENTAS DO CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS INTRODUÇÃO À COMPUTAÇÃO 60 h 1º Evolução histórica dos computadores. Aspectos de hardware: conceitos básicos de CPU, memórias,

Leia mais

CAD Trabalho III. PThreads e OpenMP. Pedro Carvalho de Oliveira Rui André Ponte Costa

CAD Trabalho III. PThreads e OpenMP. Pedro Carvalho de Oliveira Rui André Ponte Costa Universidade de Coimbra Faculdade de Ciências e Tecnologia Departamento de Engenharia Informática CAD Trabalho III PThreads e OpenMP Pedro Carvalho de Oliveira Rui André Ponte Costa Maio 2008 Resumo Neste

Leia mais

12 EXCEL MACROS E APLICAÇÕES

12 EXCEL MACROS E APLICAÇÕES INTRODUÇÃO O principal objetivo deste livro é auxiliar o leitor na sua aprendizagem sobre os recursos avançados do Excel em especial na interligação com o Visual Basic for Applications (VBA). Pretende-se

Leia mais

Sistema de Monitorização e Alarme (1 a -parte)

Sistema de Monitorização e Alarme (1 a -parte) 1 o -Trabalho de Laboratório - PIC Sistemas Computacionais Embebidos IST - 2014/2015 Sistema de Monitorização e Alarme (1 a -parte) 1 Introdução Alguns sistemas embebidos são desenvolvidos sobre plataformas

Leia mais

7 Conclusões. 7.1 Retrospectiva do trabalho desenvolvido. Capítulo VII

7 Conclusões. 7.1 Retrospectiva do trabalho desenvolvido. Capítulo VII Capítulo VII 7 Conclusões Este capítulo tem como propósito apresentar, por um lado, uma retrospectiva do trabalho desenvolvido e, por outro, perspectivar o trabalho futuro com vista a implementar um conjunto

Leia mais

Capítulo 1. Introdução. 1.1 Linguagens. OBJETIVOS DO CAPÍTULO Ao final deste capítulo você deverá ser capaz de:

Capítulo 1. Introdução. 1.1 Linguagens. OBJETIVOS DO CAPÍTULO Ao final deste capítulo você deverá ser capaz de: i Sumário 1 Introdução 1 1.1 Linguagens....................................... 1 1.2 O que é um Compilador?................................ 2 1.3 Processadores de Programas: Compiladores, Interpretadores

Leia mais

Sistema de Monitorização com Múltiplos Alarmes (1 a -parte)

Sistema de Monitorização com Múltiplos Alarmes (1 a -parte) 1 o -Trabalho de Laboratório - PIC Sistemas Computacionais IST - 2005/2006 Sistema de Monitorização com Múltiplos Alarmes (1 a -parte) 1 Introdução Alguns sistemas embebidos são desenvolvidos sobre plataformas

Leia mais

Processo de análise estruturada - Abordagem clássica

Processo de análise estruturada - Abordagem clássica Processo de análise estruturada - Abordagem clássica Desenvolver modelo físico actual Modelo físico actual Modelos a desenvolver tendo em conta a abordagem clássica Desenvolver modelo lógico actual Modelo

Leia mais

Sistemas Digitais I LESI :: 2º ano. Questões Práticas de Sistemas Sequenciais

Sistemas Digitais I LESI :: 2º ano. Questões Práticas de Sistemas Sequenciais Sistemas Digitais I LESI :: 2º ano Questões Práticas de Sistemas Sequenciais António Joaquim Esteves João Miguel Fernandes www.di.uminho.pt/~aje Bibliografia: secções 8.3.1, 8.4 (parte), 8.5 (parte), DDPP,

Leia mais

Figura 1 - O computador

Figura 1 - O computador Organização e arquitectura dum computador Índice Índice... 2 1. Introdução... 3 2. Representação da informação no computador... 4 3. Funcionamento básico dum computador... 5 4. Estrutura do processador...

Leia mais

O Simulador Lógico Logisim

O Simulador Lógico Logisim O Simulador Lógico Logisim Licenciatura em Engenharia Informática e de Computadores Departamento de Engenharia Informática Instituto Superior Técnico Lisboa, Julho de 2014 Índice 1 Introdução... 3 2...

Leia mais

COTAÇÕES. 2... 88 pontos 2.1... 16 pontos 2.2. 2.2.1... 16 pontos 2.2.2... 24 pontos 2.3. 3... 24 pontos. 4... 16 pontos

COTAÇÕES. 2... 88 pontos 2.1... 16 pontos 2.2. 2.2.1... 16 pontos 2.2.2... 24 pontos 2.3. 3... 24 pontos. 4... 16 pontos Teste Intermédio Física e Química A Teste Intermédio Física e Química A Duração do Teste: 90 minutos 16.01.2008 11.º ou 12.º Anos de Escolaridade Decreto-Lei n.º 74/2004, de 26 de Março COTAÇÕES 1....

Leia mais

ORIENTAÇÃO SOBRE PRINCÍPIOS DE AUDITORIA NP EN ISO 19011:2003. Celeste Bento João Carlos Dória Novembro de 2008

ORIENTAÇÃO SOBRE PRINCÍPIOS DE AUDITORIA NP EN ISO 19011:2003. Celeste Bento João Carlos Dória Novembro de 2008 ORIENTAÇÃO SOBRE PRINCÍPIOS DE AUDITORIA NP EN ISO 19011:2003 Celeste Bento João Carlos Dória Novembro de 2008 1 SISTEMÁTICA DE AUDITORIA - 1 1 - Início da 4 - Execução da 2 - Condução da revisão dos documentos

Leia mais

Computabilidade 2012/2013. Sabine Broda Departamento de Ciência de Computadores Faculdade de Ciências da Universidade do Porto

Computabilidade 2012/2013. Sabine Broda Departamento de Ciência de Computadores Faculdade de Ciências da Universidade do Porto Computabilidade 2012/2013 Sabine Broda Departamento de Ciência de Computadores Faculdade de Ciências da Universidade do Porto Capítulo 1 Computabilidade 1.1 A noção de computabilidade Um processo de computação

Leia mais

Arquitetura de Sistemas Operativos

Arquitetura de Sistemas Operativos Arquitetura de Sistemas Operativos Sistemas Operativos 2011/2012 1 Modelos de Interacção entre Processos Produtor e Consumidor Os dados transmitidos entre as aplicações são geralmente opacos para o sistema

Leia mais

Verificação e Validação

Verificação e Validação Verificação e Validação Patrícia Macedo Joaquim Filipe João Ascenso 2005/2006 EST, Setúbal Verificação e Validação Verificação Garante que o software cumpre as especificações Consistência interna Estamos

Leia mais

Engenharia de Software

Engenharia de Software Engenharia de Software 2º Semestre de 2006/2007 Terceiro enunciado detalhado do projecto: Portal OurDocs ic-es+alameda@mega.ist.utl.pt ic-es+tagus@mega.ist.utl.pt 1. Introdução O terceiro enunciado do

Leia mais

Concepção e Desenvolvimento de Interfaces para o Motor de Busca Geográfico GeoTumba!

Concepção e Desenvolvimento de Interfaces para o Motor de Busca Geográfico GeoTumba! Concepção e Desenvolvimento de Interfaces para o Motor de Busca Geográfico GeoTumba! Sérgio Freitas, Ana Paula Afonso, Mário Silva Faculdade de Ciências da Universidade de Lisboa Departamento de Informática

Leia mais

Guia do Mestrado em Informática Sistemas e Redes & Ciência de Computadores

Guia do Mestrado em Informática Sistemas e Redes & Ciência de Computadores Guia do Mestrado em Informática Sistemas e Redes & Ciência de Computadores Faculdade de Ciências, Universidade do Porto Faculdade de Ciências da Universidade do Porto 2006-2008 http://www.dcc.fc.up.pt/mi

Leia mais

Logística e Gestão da Distribuição

Logística e Gestão da Distribuição Logística e Gestão da Distribuição Depositos e política de localização (Porto, 1995) Luís Manuel Borges Gouveia 1 1 Depositos e politica de localização necessidade de considerar qual o papel dos depositos

Leia mais

PROJETO LÓGICO DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br

PROJETO LÓGICO DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br - Aula 6 - ARQUITETURAS AVANÇADAS DE COMPUTADORES 1. INTRODUÇÃO As arquiteturas dos processadores têm evoluído ao longo dos anos, e junto com ela o conceito de arquitetura avançada tem se modificado. Nos

Leia mais

4 Computação Paralela 4.1. Introdução

4 Computação Paralela 4.1. Introdução 4 Computação Paralela 4.1. Introdução Nos últimos anos observa-se uma tendência cada vez maior do aumento da demanda computacional na resolução de grandes problemas. Exemplos de aplicações que exigem alto

Leia mais

OS SISTEMAS GEOGRÁFICA DE INFORMAÇÃO NOS NEGÓCIOS INFRA-ESTRUTURA DE INFORMAÇÃO PARA A TERCEIRA GERAÇÃO DE APLICAÇÕES NO INÍCIO DO TERCEIRO MILÉNIO

OS SISTEMAS GEOGRÁFICA DE INFORMAÇÃO NOS NEGÓCIOS INFRA-ESTRUTURA DE INFORMAÇÃO PARA A TERCEIRA GERAÇÃO DE APLICAÇÕES NO INÍCIO DO TERCEIRO MILÉNIO 22 B&S DOSSIER SIG Por Marco Painho, Professor Associado, Director do Instituto Superior de Estatística e Gestão de Informação da Universidade Nova de Lisboa. OS SISTEMAS DE INFORMAÇÃO GEOGRÁFICA NOS NEGÓCIOS

Leia mais

3. Comunicação em Sistemas Distribuídos

3. Comunicação em Sistemas Distribuídos 3. Comunicação em 3.1.Troca de mensagens As mensagens são objetos de dados cuja estrutura e aplicação são definidas pelas próprias aplicações que a usarão. Sendo a troca de mensagens feita através de primitivas

Leia mais

GereComSaber. Disciplina de Desenvolvimento de Sistemas de Software. Sistema de Gestão de Serviços em Condomínios

GereComSaber. Disciplina de Desenvolvimento de Sistemas de Software. Sistema de Gestão de Serviços em Condomínios Universidade do Minho Conselho de Cursos de Engenharia Licenciatura em Engenharia Informática 3ºAno Disciplina de Desenvolvimento de Sistemas de Software Ano Lectivo de 2009/2010 GereComSaber Sistema de

Leia mais

Dicionário de Dados (DD)

Dicionário de Dados (DD) Dicionário de Dados (DD) O dicionário de dados consiste numa lista organizada de todos os elementos de dados que são pertinentes para o sistema. Sem o dicionário de dados o modelo não pode ser considerado

Leia mais

A partir da analise dos cursos de Informática destinados ài formação profissional de técnicos

A partir da analise dos cursos de Informática destinados ài formação profissional de técnicos Resumo A partir da analise dos cursos de Informática destinados ài formação profissional de técnicos e utilizadores apresenta-se uma metodologia de concepção de cursos, que poderia ser utilizada pelos

Leia mais

MANUAL DA QUALIDADE. Câmara Municipal do Funchal. Divisão de Atendimento e Informação

MANUAL DA QUALIDADE. Câmara Municipal do Funchal. Divisão de Atendimento e Informação Câmara Municipal do Funchal Divisão de Atendimento e Informação INDICE Promulgação Âmbito Exclusões Hierarquia da documentação do Sistema de Gestão da Qualidade Política da Qualidade Missão e Visão Apresentação

Leia mais

Universidade Federal de Uberlândia Faculdade de Computação. Conceitos básicos de algoritmos

Universidade Federal de Uberlândia Faculdade de Computação. Conceitos básicos de algoritmos Universidade Federal de Uberlândia Faculdade de Computação Conceitos básicos de algoritmos Prof. Renato Pimentel 1 Computação Dados Informações vindas de usuários ou de outras máquinas; Processamento transformação

Leia mais

Tolerância a Faltas. Índice. Terminologia. Replicação Passiva e activa Modelo Transaccional Transacções distribuídas

Tolerância a Faltas. Índice. Terminologia. Replicação Passiva e activa Modelo Transaccional Transacções distribuídas Tolerância a Faltas Índice Terminologia Falta, erro, falha Fiabilidade, disponibilidade Replicação Passiva e activa Modelo Transaccional Transacções distribuídas Sistema Computacional Sistema computacional:

Leia mais

XXVIII. Qualidade do Novo Edifício Hospitalar ÍNDICE

XXVIII. Qualidade do Novo Edifício Hospitalar ÍNDICE XXVIII Qualidade do Novo Edifício Hospitalar ÍNDICE 1. Sistema de gestão de qualidade... 2 1.1 Objectivos do sistema... 2 1.2 Estrutura organizativa... 4 1.2.1 Organização interna... 4 1.2.2 Estrutura

Leia mais

Megagest. Trabalho Final de Curso 1999/2000. (Relatório Final) Licenciatura em Engenharia Informática e de Computadores. 18 de julho de 2007

Megagest. Trabalho Final de Curso 1999/2000. (Relatório Final) Licenciatura em Engenharia Informática e de Computadores. 18 de julho de 2007 Licenciatura em Engenharia Informática e de Computadores Trabalho Final de Curso 1999/2000 Megagest () 18 de julho de 2007 Coordenador: Prof. Pedro Antunes Alunos: Rui Ferreira nº 42713 Salim Giva nº 41436

Leia mais

VRM Monitor. Ajuda Online

VRM Monitor. Ajuda Online VRM Monitor pt Ajuda Online VRM Monitor Índice pt 3 Índice 1 Introdução 3 2 Vista geral do sistema 3 3 Getting started 4 3.1 Iniciar o VRM Monitor 4 3.2 Iniciar o Configuration Manager 4 4 Configurar

Leia mais

Volta a Portugal. Relatório. Algoritmos e Estruturas de Dados 2º ano do Mestrado Integrado em Engenharia Informática e Computação

Volta a Portugal. Relatório. Algoritmos e Estruturas de Dados 2º ano do Mestrado Integrado em Engenharia Informática e Computação Volta a Portugal Relatório Algoritmos e Estruturas de Dados 2º ano do Mestrado Integrado em Engenharia Informática e Computação Elementos do Grupo: João Carlos Figueiredo Rodrigues Prudêncio 070509111

Leia mais

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini E-mail: prof.andre.luis.belini@gmail.com /

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini E-mail: prof.andre.luis.belini@gmail.com / Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini E-mail: prof.andre.luis.belini@gmail.com / andre.belini@ifsp.edu.br MATÉRIA: ICO Aula N : 09 Tema: Unidade Central de

Leia mais