Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini /

Documentos relacionados
Sistemas Embarcados (embutidos) Paulo C. Masiero

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini /

Sistemas Embutidos (embarcados) Paulo C. Masiero

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini /

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini /

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini /

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini /

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini /

Métodos de Sincronização

Técnicas Avançadas de Programação

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini /

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini /

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini /

Sistemas Operacionais Processos. Carlos Ferraz Jorge Cavalcanti Fonsêca

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini /

Sistemas Operacionais de Tempo Real. Prof. Andre Luis Meneses Silva

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini /

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini /

Gerência de Projetos e Qualidade de Software. Prof. Walter Gima

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini /

Processos O conceito de processos é fundamental para a implementação de um sistema multiprogramável. De uma maneira geral, um processo pode ser entend

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini /

15/03/2018. Professor Ariel da Silva Dias Introdução a Engenharia de Software. O mundo moderno poderia existir sem software?

Engenharia de Software e Gerência de Projetos Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios

Sistemas Operacionais

Sistema de entrada e saída (E/S)- Módulos de E/S; tipos de operações de E/S

Sistemas Operacionais

INF1013 MODELAGEM DE SOFTWARE

Caracterização. Sistemas de Tempo Real: Caracterização. Caracterização. Caracterização. Concepções Erradas. Mercados

Barramento. Prof. Leonardo Barreto Campos 1

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini /

Agendador. Agendador de Processos (Escalonador de Processos) Critérios de Agendamento. Agendador

Sistemas Operacionais. BSI / UAB 2013 Hélio Crestana Guardia

Organização e Arquitetura de Computadores I

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini /

Notas da Aula 11 - Fundamentos de Sistemas Operacionais

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini /

Fundamentos de Sistemas Operacionais

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini /

Conceitos Básicos dos Sistemas de Tempo Real

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini /

Modelagem de Sistemas de Tempo Real. Sérgio Campos

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini /

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini /

Processo. Gerência de Processos. Um programa em execução. Centro de Informática/UFPE :: Infraestrutura de Software

Escalonamento da CPU

Escalonamento da CPU

SISTEMAS OPERACIONAIS. TÁSSIO JOSÉ GONÇALVES GOMES

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

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini /

Processo. Gerência de Processos. Um programa em execução. Centro de Informática/UFPE :: Infraestrutura de Software

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini /

6 ESCALONAMENTO DE CPU

Engenharia de Software. Projeto de Arquitetura

SOP - TADS Threads. Revisão Ultima aula. Programa em execução Cada processo têm sua própria CPU

Estilos Arquiteturais

Técnico de Gestão e Programação de Sistemas Informáticos. Sistemas Operativos 10º ano

O Que Veremos. Introdução. Introdução. Definindo Desempenho. Definindo Desempenho. Avaliando e Compreendendo o Desempenho

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

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini /

Gerência do Processador. Adão de Melo Neto

Projeto de Sistemas de Tempo Real

Sistemas Operacionais

Notas da Aula 10 - Fundamentos de Sistemas Operacionais

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO O SISTEMA OPERACIONAL PROFESSOR CARLOS MUNIZ

Variância dos Tempos de Resposta

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini /

Análise e Projeto de Software

Análise e projeto de sistemas

Sistemas de Informação. Sistemas Operacionais

Universidade Federal de Campina Grande Unidade Acadêmica de Sistemas e Computação Curso de Bacharelado em Ciência da Computação.

Arquitetura de Sistemas Operacionais Francis Berenger Machado / Luiz Paulo Maia (Material Adaptado)

SOP - TADS Escalonamento de Processos

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 12 PROFª BRUNO CALEGARO

Sistemas Operacionais. Processos IC - UFF

Sistemas Operacionais

( ) Sistemas de Computação - Unifacs Professor : Marco Antônio C. Câmara - Lista de Exercícios II - Dia 18/10/2009

Introdução à Informática

Parte I Multiprocessamento

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini /

Sistemas Operacionais

Sistemas Operacionais Aula 3

Neste capítulo será descrito detalhadamente o desenvolvimento do software do sistema FEROS, justificando a escolha das tecnologias envolvidas.

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini /

Sistemas de Tempo Real e Tolerante a Falhas

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini /

Sistemas Operacionais

Teste de Software. Competência: Entender as técnicas e estratégias de testes de Software

Processos. Aula Passada. Aula Passada (2) Ciclos de CPU e de I/O (1)

Sistemas Operacionais Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios. Aula 06.

Aula 06 - Máquina Multinível e Von Neumann

AULA 03: PROCESSAMENTO PARALELO: MULTIPROCESSADORES

Sistemas Operativos. Objetivo. Entrega do Questionário. Exercício 1. Exercício 2. Exercício 3. Exercício 4. Grupo 1 Introdução

Resumo: Sistemas Operacionais Abertos

ARQUITETURA DE COMPUTADORES

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini /

Capítulo 5 Modelação do Sistema 1

Inversão de prioridades

Transcrição:

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: ENGENHARIA DE SOFTWARE Aula N : 15 Tema: Arquitetura Orientada a Serviços Tópico do Plano de Ensino: 15

TÓPICOS ABORDADOS Projeto de sistemas embutidos Padrões de arquitetura Análise de timing Sistemas operacionais de tempo real

SOFTWARES EMBUTIDOS Os computadores são usados para controlar uma vasta gama de sistemas, desde máquinas domésticas simples, passando por controladores de jogos, até indústrias inteiras. Seu software deve reagir a eventos gerados pelo hardware e, muitas vezes, em resposta a esses eventos emitir sinais de controle. Nesses sistemas, o software é incorporado ao hardware do sistema, muitas vezes em memória de leitura apenas, e geralmente, responde em tempo real aos eventos do ambiente do sistema.

CAPACIDADE DE RESPOSTA A capacidade de resposta em tempo real é a diferença fundamental entre sistemas embutidos e outros sistemas de software, tais como sistemas de informação, sistemas baseados em web ou sistemas de software pessoal. Para sistemas de tempo não real, correções podem ser definidas, especificando como as entradas do sistema mapeiam as saídas correspondentes, os quais devem ser produzidas pelo sistema. Em um sistema de tempo real, a capacidade de correção depende tanto da resposta a uma entrada quanto do tempo necessário para gerar essa resposta. Se o sistema demora muito tempo para responder, então a resposta demandada pode ser ineficaz.

DEFINIÇÃO Um sistema de tempo real é um sistema de software, no qual o funcionamento correto do sistema depende dos resultados produzidos pelo sistema e do momento em que esses resultados são produzidos. Um sistema de tempo real leve é um sistema cuja operação é degradada caso os resultados não sejam produzidos de acordo com os requisitos de tempo especificado. Um sistema de tempo real pesado é um sistema cuja operação está incorreta caso os resultados não sejam produzidos de acordo com a especificação de tempo.

CARACTERÍSTICAS DO SISTEMA EMBUTIDO Sistemas embutidos geralmente executam continuamente e não param. Interações com o ambiente do sistema são incontroláveis e imprevisíveis. Podem haver limitações físicas (energia, por exemplo) que afetam o projeto de um sistema. Podem ser necessárias interações diretas do hardware. Questões de segurança e dominar o projeto do sistema. confiabilidade podem

PROJETO DE SISTEMAS EMBUTIDOS O processo de projeto de sistemas embutidos é um processo de engenharia de sistemas que tem de considerar, em detalhes, o projeto e o desempenho do hardware do sistema. Parte do processo de projeto pode envolver decidir quais recursos do sistema devem ser implementados no software e quais devem ser implementados no hardware. Decisões de baixo nível sobre o hardware, software de apoio e timing do sistema devem ser consideradas no início do processo. O que poderá significar que funcionalidade adicional de software, tais como gerenciamento de bateria e energia, precisa ser incluída no sistema.

SISTEMAS REATIVOS Dado um estímulo, o sistema deve produzir uma reação ou resposta dentro de um prazo especificado. Estímulos periódicos. Estímulos que ocorrem em intervalos previsíveis de tempo. Por exemplo, um sensor de temperatura pode ser consultado 10 vezes por segundo. Estímulos aperiódicas. Estímulos que ocorrem em momentos imprevisíveis. Por exemplo, uma falha na energia do sistema pode disparar uma interrupção, a qual deve ser processada pelo sistema.

ESTÍMULOS E RESPOSTAS PARA UM SISTEMA DE ALARME CONTRA ROUBO

UM MODELO GERAL DE SISTEMAS EMBUTIDOS DE TEMPO REAL

CONSIDERAÇÕES SOBRE A ARQUITETURA Devido à necessidade de responder aos requisitos de tempo feitos pelos diferentes estímulos/respostas, a arquitetura do sistema deve permitir a comutação rápida entre tratadores de estímulos. Requisitos de tempo de diferentes estímulos são diferentes, assim, geralmente um loop sequencial simples não é adequado. Portanto, sistemas de tempo real normalmente são concebidos como processos cooperativos, com um executivo de tempo real, controlando esses processos.

PROCESSOS DE SENSORES E ATUADORES

ELEMENTOS DO SISTEMA Controle de sensores Coletar informações dos sensores. Processador de dados Realiza o processamento das informações coletadas e calcula a resposta do sistema. Controle de atuadores Gera sinais de controle para os atuadores.

ATIVIDADES DO PROCESSO DE PROJETO Seleção da plataforma Identificação de estímulos/resposta Análise de timing Projeto de processo Projeto de algoritmo Projeto de dados Programação de processo

COORDENAÇÃO DO PROCESSO Processos em um sistema de tempo real precisam ser coordenados e compartilhar informações. Mecanismos de coordenação de processos garantem a exclusão mútua dos recursos compartilhados. Quando um processo está modificando um recurso compartilhado, outros processos não devem ser capazes de mudar esse recurso. Ao projetar a troca de informações entre os processos, você tem que levar em conta o fato de que esses processos podem estar sendo executados em velocidades diferentes.

PROCESSOS PRODUTOR/CONSUMIDOR COMPARTILHANDO UM BUFFER CIRCULAR

EXCLUSÃO MÚTUA Processos produtor coletam dados e adicionam esses ao buffer. Processos consumidor pegam os dados do buffer e disponibiliza os elementos. Processos produtor e consumidor devem ser mutuamente excluídos do acesso ao mesmo elemento.

MODELAGEM DE SISTEMAS DE TEMPO REAL O efeito de um estímulo em um sistema de tempo real pode disparar uma transição de um estado para outro. Portanto, os modelos de estado frequentemente são usados para descrever sistemas de tempo real embutidos. Diagramas de estado da UML podem ser usados para mostrar os estados e as transições de estado em um sistema de tempo real.

MODELO DE ESTADO DE MÁQUINA DE UMA BOMBA DE GASOLINA

O PADRÃO OBSERVAR E REAGIR

ESTRUTURA DE PROCESSO OBSERVAR E REAGIR

ESTRUTURA DE PROCESSO DEUM SISTEMA DE ALARME CONTRA ROUBO

O PADRÃO CONTROLE DE AMBIENTE

ESTRUTURA DE PROCESSO CONTROLE DE AMBIENTE

ARQUITETURA DE CONTROLE DE UM SISTEMA DE FRENAGEM ANTIDERRAPANTE

O PADRÃO PIPELINE DE PROCESSO

ESTRUTURA DE PROCESSO DE PIPELINE DE PROCESSO

AQUISIÇÃO DADOS DE FLUXO DE NÊUTRONS

REQUISITOS DE TIMING PARA O SISTEMA DE ALARME CONTRA ROUBO

TIMING DO PROCESSOS DE ALARME

COMPONENTES DO SISTEMA OPERACIONAL Relógio de tempo real Fornece informações para o programação de processos. Tratador de interrupções Gerencia solicitações aperiódicas de serviço. Programador Escolhe o próximo processo a ser executado. Gerenciador de recursos Aloca memória e recursos de processador. Despachador Inicia a execução do processo.

COMPONENTES NON-STOP DE SISTEMA Gerente de configuração Responsável pela reconfiguração dinâmica do sistema de software e hardware. Os módulos do hardware podem ser substituídos e o software atualizado sem parar os sistemas. Gerenciamento de falhas Responsável por detectar falhas de software e hardware e tomar as ações apropriadas (por exemplo, a mudança para discos de backup) para garantir que o sistema continue em operação.

COMPONENTES DE UM SISTEMA OPERACIONAL DE TEMPO REAL

PRIORIDADES DE PROCESSO Algumas vezes, o tratamento de alguns tipos de estímulos, devem ter prioridade. Nível de prioridade de interrupção. Maior prioridade, a qual é atribuída a processos que exigem uma resposta muito rápida. Nível de prioridade de relógio. Alocados para processos periódicos. Dentro dessas, podem ser atribuídos outros níveis de prioridade.

INTERRUPÇÃO DE SERVIÇO O controle é transferido automaticamente para uma posição de memória pré-determinada. Esse local contém uma instrução para saltar para uma rotina de serviço de interrupção. São desabilitadas outras interrupções, o tratamento da interrupção e o controle retornam ao processo interrompido. Serviços de rotina de interrupção DEVEM ser curtos, simples e rápidos.

TRATAMENTO PERIÓDICO DO PROCESSO Na maioria dos sistemas de tempo real, haverá várias classes de processos periódicos, cada uma com diferentes períodos (o tempo entre as execuções), tempos de execução e deadlines (o tempo no qual o processamento deve ser realizado). O relógio de tempo real pulsa periodicamente e cada pulso provoca uma interrupção que programa o gerente de processos para processos periódicos. O gerente de processos seleciona um processo que está pronto para execução.

GERENCIAMENTO DE PROCESSOS Preocupado com o gerenciamento do conjunto de processos concorrentes. Processos periódicos são executados em intervalos pré especificados. O RTOS usa o relógio de tempo real para determinar quando executar um processo levando em consideração: Período do processo - tempo entre as execuções. Deadline do processo - o tempo no qual o processamento deve se completar.

AÇÕES DE RTOS NECESSÁRIAS PARA INICIAR UM PROCESSO

MUDANÇAS DE PROCESSOS O responsável pela programação escolhe o próximo processo a ser executado pelo processador. O que depende de uma estratégia de programação que pode levar em consideração as prioridades do processo. O gerenciador de recursos aloca memória e um processador para o processo a ser executado. O despachador recebe o processo de uma lista pronta, carrega em um processador e inicia a execução.

ESTRATÉGIAS DE PROGRAMAÇÃO Programação não preemptiva Uma vez que um processo tenha sido programado para execução, ele executa até a conclusão ou até que seja bloqueado por algum motivo (por exemplo, à espera de E/S). Programação preemptiva A execução de um processo de execução pode ser interrompida caso um processo de maior prioridade requeira serviços. Algoritmos de escalonamento Round-robin; Rate monotonic; Shortest deadline first, deadline mais curto em primeiro lugar.

PONTOS IMPORTANTES Um sistema de software embutido é parte de um sistema de hardware/software que reage a eventos do seu ambiente. O software está "embutido" no hardware. Normalmente os sistemas embutidos são sistemas de tempo real. Um sistema em tempo real é um sistema de software que deve responder a eventos em tempo real. A correção do sistema não depende apenas dos resultados que esse produz, mas também do momento em que esses resultados são produzidos.

PONTOS IMPORTANTES Geralmente os sistemas de tempo real são implementados como um conjunto de processos de comunicação que reagem a estímulos para produzir respostas. Modelos de estado são uma importante representação de projeto para sistemas embutidos de tempo real. São usados para mostrar como o sistema reage ao seu ambiente, na medida em que eventos desencadeiam mudanças de estado no sistema. Existem vários padrões de modelos os quais pode ser observados em diferentes tipos de sistemas embutidos. Os quais incluem um padrão para monitoração de ambiente do sistema para eventos adversos, um padrão para controle de atuadores e um padrão de processamento de dados.

PONTOS IMPORTANTES Os projetistas de sistemas de tempo real precisam fazer uma análise de timing, a qual é impulsionada pelos deadlines para processar e responder a estímulos. Eles precisam decidir quantas vezes cada processo do sistema deve ser executado, o tempo esperado e o pior caso de tempo de execução de processos. Um sistema operacional de tempo real é responsável pelo gerenciamento de processos e recursos. Ele sempre inclui um programador, que é o componente responsável por decidir qual processo deve ser programado para execução.

REFERÊNCIAS BIBLIOGRÁFICAS SOMMERVILLE, Ian. Engenharia de Software; tradução Ivan Bosnic e Kalinka G. de O. Gonçalves; revisão técnica Kechi Hirama. 9ª Ed. São Paulo: Pearson Prentice Hall, 2011. ***Agradecimentos a Editora Pearson Prentice Hall, pelos materiais disponíveis aos professores, gentilmente cedidos.

DÚVIDAS? PERGUNTAS? ANGÚSTIAS? AFLIÇÕES?

Prof. André Luís Belini E-mail: prof.andre.luis.belini@gmail.com / andre.belini@ifsp.edu.br Blog: http://profandreluisbelini.wordpress.com/ Página: www.profandreluisbelini.com.br