Sistemas Espaciais de Computadores
Introdução Definindo o Sistema –Requisitos, Arquitetura, Elementos do Sistema Estimação dos Recursos –Processamento de Tarefas, Tamanho do Software e Throughput Discussão sobre as Fases de Desenvolvimento –Seleção do Hardware, Ambientes/Custos/Ferramentas e Metodologias de Desenvolvimento Integração e Teste de Sistema de Computadores
Introdução - Sistemas Modernos Computadores de Bordo + suporte em soloComputadores de Bordo + suporte em solo Tipos de sistemas # CaracterísticasTipos de sistemas # Características: –Sistemas embarcados # controle de tempo-real, alta confiabilidade –Computador de Bordo # utilizados para: navegação, monitoração, sensoriamento, processamento, armazenamento dos dados e comunicações. –Computador(es) de apoio de solo # pós-processamento, compressão de dados, interfaces com usuário, comandos para o satélite e monitoração remota (“saúde” do veículo, status e manutenção)
Definindo o Sistema
Introdução - Divisão de um sistema Sistema Software Hardware Hardware Software Documentação Sistema Operacional Aplicativos Documentação Periféricos CPU Memória Documentação Desenvolvidos pelo usuário ou sob-encomenda Tempo-real ou não
Introdução - Características Observáveis
Modelo Típico de Sistema Armazenamento (RAM) Troughput Processamento (CLOCK): Tipo de CPU
Definindo o Sistema Típico Identificar os modos operacionais “payload”, barramento, etc. Para chegarmos ao computador típico: Def. modos e estados operacionais do sistema Dividir funcionalmente e reservar os requisitos computacionais exigidos para os ambientes: espaço e segmento solo, subsistemas, e para o hardware e software. Avaliar interfaces internas e externas (análise de fluso de dados) Avaliar as arquiteturas candidatas (arquiteturas de procesamento, de dados e de hardware) Selecionar a arquitetura “típica” Desenvolver a configuração do sistema “típico’ a partir da arquitetura e requisitos de missão.
Procedimentos para obter o “Sistema Típico”
Atendendo às solicitações. “O que o sistema deve fazer? “Por que” deve ser feito (desafiar as necessidades)? “Como” concluí-lo e “Quais”altenativas? “Que funções” reservar para as várias partes do sistema? ‘Tais Funções são tecnicamente possíveis?” “Como Testar” (solicitações satisfeitas?)
Divisão Funcional - Modularização Identificar e agrupar funções de sistema: Similaridade funcional Complexidade do proc. Tipos de processamento (dados x sinais) Urgência dos Processos Solicitações de tempo e “throughput” Necessidade de armazenamento Necessidade de intervenção humana e segurança de vôo. Remodularização: Isto funciona? Faz exatamente o que se quer que faça? É simples e óbvio? (Cada componente faz exatamente 1 coisa?) É Eficiênte? Rápido? Proporciona uma interface clara? É confiável? É possível a manutenção? É possível ser testada?
Onde implementar, Bordo ou Solo? Sistemas bordo/solo são autônomos? Se não: Apresentam módulos com “tempo crítico”? Resposta: Considerando a TELEMETRIA... Wideband (> veloc.) => Processo “pode” ficar em SOLO (Transmissão de dados sem tratamento a bordo)? Narowband ( Processo “DEVE” manipular/comprimir dados a bordo para uma posterior transmissão ao Solo
Onde Executar? RAM e Firmware Firmware => processos permanentes (atualização desnecessária). RAM => Processos que podem ser atualizados após lançamento. (“críticos” mas “não vitais” à missão). Hardware=> Operações “seletivas”. ( interfaces x soft-drivers).
Selecionando a Arquitetura Perguntas: 1) A arquitetura permite satisfazer as necessidades da missão? 2) A arquitetura é complexa? 3) Pode-se testar o sistema considerando tal arquitetura? 4) Pode-se “manter” o sistema com esta arquitetura?
Tipos de Arquiteturas
Características das Arquiteturas Centralizada a) I nterface entre unidades de processamento e um computador central (nó central) b) não permite adicionar nós sem afetar hardware e software do sistema central c) CPU Central => ponto de falha => > risco. d) falha em uma unidade não interfere nas outras. Distribuida a) Barramento comum p/ todos os processadores b) Uso de protocolos nas comunicações, tipo comando/resposta c) Facilidade de expansão. Anel a) Maior facilidade de adicionar nós sem afetar a unidade central b) Falha em uma unidade INTERFERE nas demais (alto risco).
Análise Funcional e Fluxo de Dados
Elementos do Sistema de Computadores ISA Instruction Set Arquiteture
ISA - Critério de Escolha Facilidades (instruções) para acessar o hardware Vantagens e desvantagens de utilizar ISAs de “uso-geral”(*) ou “customizadas” –(*) desvantagem: velocidade. (Não foram projetadas para algoritimos particulares => (>) software –(*) vantagem: Economia e riscos de desenvolvimento de uma ISA dedicada. Firmware Linguagens de programação.
Códigos e Dados - Onde ficarão? RAM ou ROM? 1) Códigos e dados não são modificados. ROM 2) Códigos e dados críticos para: o satélite, segurança da “payload”, tripulantes e missão => ROM (problemas de radiação espacial das RAMs) 3) Códigos e Dados para o lançamento. (Satélites sobem com coomputador de bordo desligados!). 4) Onde se exige flexibilidade PÓS-LANÇAMENTO => download p/ RAM
Linguagens
Estimando os Recursos Processamento de Tarefas Tamanho e Throughput do Software Critérios de Seleção de Linguagens
Tarefas Sistema de Controle de Bordo –Determinação e Controle de Atitude e Órbita (processamento matemático intensivo, exigindo rigorosamente: precisão e rapidez) Sistema de gerenciamento –Detecção de falhas, correções, agendamento de eventos de longa duração, gerenciamento do sistema da “payload”. Envolve fluxo de controle e lógica intensiva. Pouco processamento de ponto-flutuante. Software de dados da Missão –Manipulação (e compactação) de dados. Requer processador de sinais e grande capacidade de armazenamento. Sistema Operacional
Tamanho do Software e Throughput Recursos para as aplicaçõesRecursos para as aplicações Recursos para as Funções do Sistema OperacionalRecursos para as Funções do Sistema Operacional.
Critérios de Seleção de Linguagens
Níveis de Testes
Integração e Testes de Sistemas de Computadores Testes (software + hardware + documentação) caminham com o projeto. –Alternativas: uso de procedimentos Top-Down. Testa-se o sistema com o computador se tornando um sub-sistema na configuração do sistema. Calibração “só acontece em órbita” depois de procedimentos de inspeção do sistema. Métodos de Teste de software (DOD-STD-2167). –Planos de Teste: Definido no início do projeto e mantido. –Procedimentos de Teste: Resultados 100% em todas as fases. Tolerâncias Resultados esperados “Pro-leigo” (Documentação: Qualquer pessoa “leiga” deve ser capaz de realizar o teste). –Documentação: Textos sem erros ou interpretação dupla. Identificar e entender todas as anormalidades (anotar)
Outras considerações no Desenvolvimento de Software