Tipos de Suportes para Tempo real Aluno: Ritiele M. Aldeburg Curso: Engenharia da Computação Sistema de Tempo Real, o que é? Suportes para Tempo real A diversidade de aplicações de tempo real gera uma diversidade de necessidades com respeito ao suporte para tempo real a qual resulta em um leque de soluções com respeito aos suportes disponíveis Tipos de Suportes para Tempo real • Núcleos de Tempo Real ( NTR ) • Sistemas Operacionais de Tempo Real ( SOTR ) Tipos de Suportes para Tempo real Microkernel • Sistemas podem ser organizados em camadas. Subindo na estrutura de camadas os serviços tornam-se mais sofisticados o comportamento temporal menos previsível; • A aplicação tem a sua disposição uma gama completa de serviços, quando os requisitos temporais da aplicação aumentam, pode acessar diretamente o microkernel e até mesmo o hardware apropriado para sistemas onde apenas uma aplicação é executada. Tipos de Suportes para Tempo real Tipos de Suportes para Tempo real • NTR (Núcleo de Tempo Real) • • • • Funcionalidade mínima Excelente comportamento temporal Ex.: controlador industrial de propósito único. Escalonamento executivo cíclico • SOTR (Sistema Operacional) • • • • • Funcionalidades de um SOPG Adaptado para melhorar o tempo de resposta médio Qualidade variável Ex.: Unix SVR4, Solaris, QNX, etc. Escalonamento baseado em prioridades Tipos de Suportes para Tempo real Escalonamento executivo cíclico Simples • • • • • ❚ ❚ ❚ ❚ ❚ Código separado em tarefas Executadas sequencialmente num ciclo infinito Execução completa E/S por “polling” Não há problemas com partilha de dados Tipos de Suportes para Tempo real Escalonamento Baseado em Prioridades • ❚ Atribui uma prioridade a cada processo • ❚ O processo pronto para executar com maior prioridade passa para o estado de execução • ❚Potencial Problema: Míngua (starvation) Tipos de Suportes para Tempo real Escolha de um suporte de Tempo Real • • • • • • • • • • • • • Diferentes abordagens de escalonamento Desenvolvedores de SOTR publicam métricas diferentes Desenvolvedores de SOTR não publicam métricas diferentes Detalhes internos sobre o kernel não estão normalmente disponíveis Métricas fornecidas foram obtidas em plataformas diferentes Conjunto de ferramentas para desenvolvimento que é suportado varia Ferramentas para monitoração de depuração das aplicações vairam Linguagens de programação suportadas em cada SOTR são diferentes Conjunto de periféricos suportados por cada SOTR varia Conjunto de plataformas de hardware suportados varia Cada SOTR possui um esquema para a incorporação de device-drivers Possuem diferentes níveis de conformidade com os padrões Política de licenciamento e custo associado variam Exemplos de Suportes para Tempo Real • • • • • • • Posix Unix Solaris ChorusOS Neutrino Qnx linux Posix • Baseado em Unix • Considerado uma API (“Application Programming Interface”) • Dividido em diversos componentes • API de um SOPG • Interface para serviços • Processos Escalonamento Posix • Aspecto central para as aplicações de tempo real é o escalonador • Suporta escalonamento baseado em prioridades • Políticas de escalonamento que definem como são escalonadas “threads” com a mesma prioridade Unix SRV4 • versão comercial que obteve maior sucesso • comercializado como Unificação de Sistema Unix • solicitou a colaboração dos maiores vendedores de Unix • trouxe inovações que serviram como base para outras versões do Unix que existem hoje Escalonamento no Unix SRV4 • Classes de escalonamento definem a política de escalonamento para as tarefas • Como “default’ SVR4 fornece duas classes: time-sharing e tempo real • A tarefa com maior prioridade executa • Existem 160 níveis de prioridade • 0 a 59 para a classe time-sharing • 60 a 90 prioridades usadas pelo sistema • 100 a 159 tarefas de classe de Tempo Real Solaris 2.X • Sistema Operacional UNIX • desenvolvido pela antiga Sun Microsystems (oracle) • Acessibilidade especial no sistemas de SPARC • Deu origem ao sistema de arquivos ZFS • Kernel completamente preemptável Escalonamento no Solaris 2.x • Escalonamento Básico • Escalonamento Escondido Escalonamento Básicono Solaris 2.x • Interrupções podem acontecer mesmo quando uma “thread” esta executando código do “Kernel” • Também são empregadas classes de escalonamentos assim como no Unix SRV4 Escalonamento Básicono Solaris 2.x • O escalonador suporta multiprocessamento,usando uma fila única de threads para todos os processadores. Exceção • Threads de interrupção associadas com o processador onde a interrupção aconteceu Escalonamento Escondido no Solaris 2.x • Este tipo de escalonamento basicamente se define como uma inversão de prioridades Executando código Kernel X Pendência Streams Modo usuário RT-Linux • Extensão do Linux que se propõe a suportar tarefas com restrições temporais críticas • Microkernel de tempo real coexiste com o kernel do linux • Com este arranjo permite-se utilizar os serviço sofisticados e o bom comportamento do linux , ao mesmo tempo que permite tarefas de tempo real operarem sobre um ambiente mais previsível e com baixa latência • Conceito de maquina virtual RT-Linux • Utiliza emulação de Hardware com a finalidade de minimizar as mudanças no kernel convencional • As tarefas convencionais e as tarefas de tempo real comunicam-se através de filas sem bloqueio e memória compartilhada • As filas são chamadas de de RT-FIFO, na verdade “buffers” utilizados para a troca de mensagens, projetada de tal forma que tarefas de tempo real nunca são bloqueadas RED-Linux • Objetivo é fornecer suporte de escalonamento tempo real para o linux, através da integração de escalonadores baseados em prioridade, no tempo e compartilhamento de recursos Escalonador dividido em em dois componentes: • Alocador • Disparador RED-Linux Disparador • • Implementa o mecanismo de escalonamento básico Responsável por escalonar tarefas de tempo real que foram registradas com o alocador Alocador Implementa a política que gerencia o tempo do processador e os recursos do sistema com o propósito de atender aos requisitos temporais das tarefas da aplicação • Pode ser executado fora do kernel isso facilita de modo que ele pode ser mais facilmente substituído pelo desenvolvedor da aplicação • Red-linux inclui uma API para que o alocador interaja com o disparador • Bibliografias: • Luís (lfpd), David (dbi), Julio (jdf2) e Hector (hnbp), Sistemas Operacionais de Tempo Real (SOTR) • Revista de Informática Teórica e Aplicada, Sistemas Operacionais Rômulo Silva de Oliveira, Alexandre da Silva Carissimi, Simão Sirineo Toscani • http://www.romulosilvadeoliveira.eng.br/discipli/cad-cbtisa/sotr-resumo.pdf • Sistemas de Tempo Real, Msc.Marcelo de Paiva Guimarães