Unificação de Sistema Unix

Propaganda
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
Download