VSPWorks
Disciplina de TSDAC
Érico Bastos
Sergio Bressan
Sumário
Características Conceitos Gerais VSP Tratamento de interrupções Kernel Escalonamento Tarefas Escalabilidade Conjunto de ferramentas Categorias de utilização Referências
Características
VSPWorks é um sistema operacional de tempo real que suporta uma gama de aplicações;
Possui duas versões: SP (Single Processor)
• Tarefas e dados estão no mesmo processador;• Comunicação otimizada;• Métodos de sincromização.
VSP (Virtual Single Processor)• Tarefas e dados podem ser movidos de um processador para outro de
modo transparente mas manipulando todos os detalhes;• Troca da topologia do processador não afeta o comportamento da
aplicação;• Programação é feita exatamente igual a uma programação para um
único processador.
Características
Fácil programação; Remoção automática de código não utilizado
do kernel; Suite de aplicações gráficas (SO windows)
para simplificar e acelerar o desenvolvimento de aplicações.
Host Server gerencia toda a comunicação entre as ferramentas é o processador alvo.
Características
Hosts suportadosWindows NT/2000.
Alvos suportadosAnalog Devices: SHARC (ADSP-2106x),
HammerHead SHARC (ADSP-2116x);PowerPC 74xx;Texas Instruments: TMS320C6x;Windows NT - simulador.
Conceitos Gerais
VSPWorks foi projetado para uso em: ambientes DSP, onde a velocidade de resposta
para interrupções é crítica (assembly);ambientes escaláveis multi-processados, aonde
fácil programação é importante.
VSPWorks combina tratamento rápido de interrupções com multi-tarefas escaláveis utilizando acesso multi-nível.
VSP
VSPWorks possui uma avançada arquitetura VSP para simplificar o desenvolvimento de aplicações para multi-processadores embarcados e aplicações distribuídas.
A tecnologia gerencia todas as complexidades da comunicação entre processadores com o mínimo de overhead.
VSP
A utilização do VSP resulta em rápido desenvolvimento e em ganho de desempenho.
O desenvolvedor da aplicação especifica tarefas e objetos as quais podem residir em qualquer processador do sistema, e o VSPWorks manipula a comunicação entre os processadores.
Tratamento de interrupções
Dois tipos de tratamento de interrupçõesNível baixo - ISR0:
• Trata interrupções vindas diretamente do hardware;• Outra interrupções ficam desabilitadas;• O processamento da interrupção deve ser rápido.
Nível alto - ISR1:• Trata interrupções mais complexas vindas da ISR0;• Se comunica com ISR0 por system call;• Trata a interrupção da mesma forma que ISR0, mas
deixa as outras interrupções habilitadas.
Kernel
VSPWorks opera em dois níveis de kernel para otimizar o desempenho.
Baixo Nível (nanokernel)• Processos geralmente são escritos em
assembly;• Possibilidade de redução do contexto(usando
menos registradores de processos).
Kernel
Alto Nível (microkernel)• Tarefas:
• são escritas em C • podem acessar mais de 100 serviços do kernel;• são preemptivas;
• Escalonamento é dirigido a prioridade:• Tarefa com alta prioridade deve rodar imediatamente.• Tarefas com baixa prioridade dão a vez as de maior
prioridade.
Escalonamento
Quando muitas tarefas querem utilizar o processador, o escalonador deve procurar atender a todas antes do seu deadline.
Solução é se ter prioridade para cada tarefa baseado na importância dela para o sistema, o desenvolvedor pode atribuir as propriedades de várias maneiras: Atribuir:
• Alta prioridade a tarefas que necessitam resposta rápida;• Baixa prioridade a tarefas que não possuem tempo crítico.
Atribuir:• Alta prioridade a tarefas que necessitam rodar mais
frequentemente.• Baixa prioridade a tarefas que rodam raramente.
Escalonamento
Prioridade das tarefas podem ser alteradas dinamicamente em tempo de execução (usando microkernel).
O escalonador da acesso ao processador somente a tarefas de alta prioridade que estejam prontas para rodar.
Escalonamento
Tarefas
Cada tarefa é um modulo independente que executa uma função ou um conjunto de funções.
Uma tarefa existe independente de outras, e se comunica através de fila de mensagens, semáforos etc.
Quando uma tarefa esta rodando ela tem controle total do processador, mas o kernel da a impressão de que múltiplas tarefas estão sendo executadas.
Tarefas
Uma tarefa para de executar quando o:Processamento acabou;Está esperando por um evento ou algum dado;Está esperando que um recurso se torne
disponível;Foi interrompida por uma interrupção.
Tarefas
Escalabilidade
Os projetistas podem escrever o mesmo código para qualquer processador do sistema.
O kernel do VSPWorks é modular fazendo com que as ferramentas de linker, descartem todos objetos não utilizados no momento de compilação.
Escalabilidade
À medida que os processadores são substituídos por outros mais poderosos, ou novos processadores são adicionados as aplicação podem ser re-configuradas e as tarefas redistribuídas.
Conjunto de ferramentas
Project Manager (simplifica o desenvolvimento de aplicações);
Host Server (faz o download do VSPWorks para o processador alvo na rede);
Level Debugger (verifica o estado de objetos em qualquer processador);
Workload Monitor (calcula a carga de utilização de cada processador);
Conjunto de ferramentas
Tracing Monitor (faz um trace back do sistema, através do seu histórico – útil em caso de falhas);
Host Extension Kit (ferramenta para extender o VSPWorks para host e alvos particulares);
Runtime Libraries (permite que uma tarefa em qualquer processador da rede faça entrada e saída no host).
Categorias de utilização
O projetado do VSPWorks foi otimizado para ser utilizado em várias categorias de desenvolvimento de aplicações como:Aplicações com restrições de memória;Aplicações multi-processadas;Aplicações que combinam DSPs e CPUs.
Referências
VSPWorks™ The RTOS for DSP and ASIC Cores - Disponível em http://www.windriver.com/products/device_technologies/os/vspworks/vspworks_tech_brief.pdf - Consultado em 05/07/2004
Development of DSP and heterogeneous designs using VSPWorks tools and run-time components - Disponível em: http://www.windriver.com/products/device_technologies/os/vspworks/vspworks.pdf - Consultado em 05/07/2004
VSPWorks WebSite - http://www.windriver.com/products/device_technologies/os/vspworks/
Virtuoso – The RTOS for DSP and ASIC cores – Multicore Programming Made Simple
Technical Brief – Virtuoso the SoftStealth RTOS for DSP and ASIC cores
FIM