Xenomai Short Intro. Paulo Pedreiras pbrp@ua.pt DETI/University of Aveiro. Sistemas Tempo-Real Out/2013 (Rev. 1 - Out/2015)



Documentos relacionados
Breve introdução ao Real Time Application Interface (RTAI)

Processos. Paulo Sérgio Almeida 2005/2006. Grupo de Sistemas Distribuídos Departamento de Informática Universidade do Minho

Entradas/Saídas. Programação por espera activa Programação por interrupções

Capítulo 8. Software de Sistema

Processos. Estados principais de um Processo: Contexto de um Processo. Nível de um Processo.

Real Time Linux. Walter Fetter Lages

Sistemas de Tempo Real

Entradas/Saídas. Programação por interrupções Conceitos gerais Programação da porta série Transmissão

Sistemas Operacionais de Tempo-Real. Out/2007 Aleksey Victor Trevelin Covacevice 1

ANÁLISE DE DESEMPENHO DA PARALELIZAÇÃO DO CÁLCULO DE NÚMEROS PRIMOS UTILIZANDO PTHREAD E OPENMP 1

Gestor de Processos Núcleo do Sistema Operativo

Máquinas virtuais. Máquina virtual de um processo. Máquinas virtuais (3) Máquina virtual de sistema. Máquinas virtuais (1) VMware para Windows e Linux

Universidade Federal de Pernambuco Centro de Informática. Aluno: Anderson L. S. Moreira Orientador: Paulo R. R.

Departamento de Engenharia Informática Computação Avançada

8 Threads. 8.1 Introdução

Trabalho Prático Nº2 Escrita e Leitura em Portos IO

Sistemas Operativos: Introdução. March 14, 2011

Luís Filipe Terra Ferreira, Tiago Costa Gonçalves,

Threads e Concorrência em Java (Material de Apoio)

Gestor de Processos Núcleo do Sistema Operativo. Sistemas Operativos 2011 / Gestor de Processos

CONCEITOS BÁSICOS DE UM SISTEMA OPERATIVO

SO: Gerenciamento de Processos

Componentes de um Sistema de Operação

Linguagem de Programação JAVA. Técnico em Informática Professora Michelle Nery

Aspectos de Sistemas Operativos

2-Introdução e Conceitos Básicos das TIC

ARQUITECTURA DO WINDOWS

Java Threads. Introdução

(Aula 15) Threads e Threads em Java

Gestor de Processos Núcleo do Sistema Operativo. Sistemas Operativos 2012 / Gestor de Processos

Métodos de Sincronização do Kernel

SISTEMAS OPERACIONAIS

Análise de Programação

Arquitetura WindowsNT. Sistemas Operacionais. Página Volnys Bernal. Arquitetura. Arquitetura. Arquitetura. Arquitetura.

Componente de Formação Técnica. Disciplina de

THREADS EM JAVA. George Gomes Cabral

Gestor de Processos. Gestor de Processos

Instalar uma versão do Ubuntu de 32 bits ou de 64 bits?

É a associação de mais de um fluxo de execução em um único processo.

Conceitos Básicos sobre Programação Prática

Sistemas Operativos: Introdução. February 22, 2011

Performance Evaluation of Software Architectures. Outline. José Costa Software architectures - exercises. Software for Embedded Systems

Sistemas Operacionais Conceitos Básicos

Desenvolvimento OO com Java Orientação a objetos básica

Agentes Inteligentes segundo o Chimera

Processos. Estruturas de Controle

Resumo até aqui. Gerenciamento Proteção Compartilhamento. Infra-estrutura de Software

Tempo-real em sistemas embutidos Linux

Turno/Horário Noturno PROFESSOR : Salomão Dantas Soares AULA Apostila nº

Programação Sistemas

Introdução. O que vimos. Infraestrutura de Software. (cont.) História dos Sistemas Operacionais. O que vimos 12/03/2012. Primeira geração:

Programação com Posix Threads

Curso Profissional de Técnico de Gestão e Programação de Sistemas Informáticos. Sistemas Operativos - 2º Ano

Como o FIT funciona. FIT: Framework for Integrated Tests FIT. Dados de testes. Programa. Fixtures. classes. Resultados de testes

SISTEMAS OPERACIONAIS

Workflow Management Systems

REDES INTEGRADAS DE TELECOMUNICAÇÕES II 2011 / 2012

Infra-Estrutura de Software. Introdução. (cont.)

Actualizaç ões e novas funcionalidades. Inoxnet. Versã o (c) EBASE Lda.

Sistemas de Ficheiros. 1. Ficheiros 2. Directórios 3. Implementação de sistemas de ficheiros 4. Exemplos de sistemas de ficheiros

Pontes. Aula 14. VLANs. Pontes (bridges) Virtual LANs (VLANs)

Aula 10 Optimização de código

Programação Concorrente em java - Exercícios Práticos Abril 2004

SO - Conceitos Básicos. Introdução ao Computador 2010/01 Renan Manola

PROCESSOS. Prof. Maicon A. Sartin

Um objeto é uma instância de uma 'classe'. Você define uma classe utilizando o trecho de código abaixo;

Sistemas de Tempo-Real

Apontamentos do livro de AI Linux. 1.5 Modo texto e modo gráfico

ARQUITECTURA DE COMPUTADORES CAPÍTULO II AULA X

Simulação de Redes de Comunicação

QUITETURA AVANÇADA DE SISTEMAS

Projeto 1 - Bootloader

BACHARELADO EM SISTEMAS DE INFORMAÇÃO EaD UAB/UFSCar Sistemas de Informação - prof. Dr. Hélio Crestana Guardia

3. Fase de Planejamento dos Ciclos de Construção do Software

Análise de Tarefas. Análise Hierárquica de Tarefas

7 Processos. 7.1 Introdução

Manual do Fórum do Meio Ambiente. Propõe instruções para primeiro acesso e funcionalidades básicas do sistema.

Sistemas Operacionais 2014 Sistema de E/S. Alexandre Augusto Giron

Sistemas Distribuídos: Conceitos e Projeto Java RMI

3 Um Modelo de Operações para a web semântica 3.1. Modelo de Operações

2. A influência do tamanho da palavra

3. Faça uma breve descrição sobre a topologia da rede e o Active Directory-AD DISCIPLINA DE ARQUITETURA FECHADA WINDOWS SERVER

MANUAL AGENDADOR DE TAREFAS LOGIX

Windows Device Drivers

Threads. 8 de janeiro de 2015

Roteiro. MC-102 Aula 01. Hardware e dispositivos. O que é um computador? Primeiro Semestre de A linguagem C

INF 1010 Estruturas de Dados Avançadas

Programação por Objectos. Java

7 Sistemas operativos de tempo real

Arquitetura de Sistemas Operacionais

Sistemas Operacionais

Ferramentas Web, Web 2.0 e Software Livre em EVT

Capítulo 4 Gerência de Processador

Módulo 02 Programação Orientada a Objetos. Última atualização: 07/06/2010

Sistemas Operacionais

Prof. Jhonatan Fernando

Função Fundamental do SO

Transcrição:

Xenomai Short Intro Paulo Pedreiras pbrp@ua.pt DETI/University of Aveiro Sistemas Tempo-Real Out/2013 (Rev. 1 - Out/2015)

Agenda Adeos Xenomai Introdução Estrutura de domínios Interrupções Threads em modo utilizador Interfaces Exemplo de aplicação Sumário 10-Out-2015 (rev. 1) STR 2015/2016 * Xenomai Intro 2

Adeos Adeos (Adaptive Domain Environment for Operating Systems) É uma camada de abstracção de hardware integrada com um nanokernel Também conhecido por hypervisor Opera directamente sobre o HW e suporta um ou mais sistemas operativos Cada SO faz parte de um domínio distinto Cada domínio contém uma entidade para gerir interrupções Estas interrupções são definidas em sentido lato e incluem Interrupções propriamente ditas, geradas por HW e SW, hooks para mudanças de contexto, etc. 10-Out-2015 (rev. 1) STR 2015/2016 * Xenomai Intro 3

Adeos Domínios são identificados por um número único E estão organizados por prioridades Menor número -> maior prioridade a tratar os eventos Eventos são propagados de acordo com uma pipeline 10-Out-2015 (rev. 1) STR 2015/2016 * Xenomai Intro 4

Adeos Propagação de eventos Os eventos propagam-se do primeiro domínio até ao último Um domínio pode encaminhar o evento para o domínio subsequente ou pará-lo Um domínio pode também suspender eventos Equivalente a desligar as interrupções para os domínios subsequentes Os eventos podem ser retomados posteriormente A suspensão de eventos pode ser efectuada selectivamente 10-Out-2015 (rev. 1) STR 2015/2016 * Xenomai Intro 5

Xenomai no Adeos Ideia básica Linux no domínio 3 RTOS no domínio 1 Domínio 2 usado para suspender selectivamente eventos Operações Linux para fazer enable/disable de interrupções são modificadas para stall e unstall 10-Out-2015 (rev. 1) STR 2015/2016 * Xenomai Intro 6

Xenomai Surgiu como um ramo do RTAI Documentação é bastante extensa e completa Possui um conjunto de primitivas nativas (RT-Nucleos) e um conjunto de skins que emulam outros RTOS Estes incluem VXWorks, u-itron,... 10-Out-2015 (rev. 1) STR 2015/2016 * Xenomai Intro 7

Estrutura de domínios Estrutura de domínios em Xenomai Domínio principal: Xenomai Domínio secundário Linux Domínio intermédio: interrupt shield 10-Out-2015 (rev. 1) STR 2015/2016 * Xenomai Intro 8

Xenomai threads Uma therad tempo-real pode Executar sempre no domínio primário Espaço de endereçamento é kernel space Tempos de resposta muito curtos Semelhante a RTLinux e RTAI Executar nos domínios primário e secundário São designadas Xenomai Threads Espaço de endereçamento é user space Espaço de endereçamento é privado Não interferem com a memória de outros processos nem do kernel Facilita debug As therads Xenomai começam em domínio primário e mudam automaticamente para secundário quando invocam uma system call não RT 10-Out-2015 (rev. 1) STR 2015/2016 * Xenomai Intro 9

Xenomai threads As prioridades usadas no domínio principal (RT-Nucleos) são compatíveis com as usada no secundário (Linux) Quando uma thread Xenomai migra de domínio preserva a sua prioridade As threads Xenomai iniciam-se no modo primário Quando no domínio primário uma therad É removida da ready queue do Linux É escalonada pelo escalonador do RT-Nucleos Tem sempre precedência sobre qualquer tarefa Linux, qualquer que seja a sua prioridade As tarefas Linux são escalonadas em background em relação às tarefas em domínio primário 10-Out-2015 (rev. 1) STR 2015/2016 * Xenomai Intro 10

Xenomai threads Uma thread Xenomai mantém-se em modo primário até que invoque uma primitiva não TR E.g. escrever para um ficheiro Quando tal acontece é mudada transparentemente para o domínio secundário Quando é movida para o domínio secundário, uma tarefa Xenomai: É inserida na ready queue do Linux O RT-Nucleos invoca o scheduler do Linux As tarefas Xenomai migradas comportam-se como se fossem tarefas nativas Linux, nomeadamente: Podem fazer preempção sobre tarefas Linux Podem sofrer preempção de tarefas Linux Perda de propriedades tempo-real! 10-Out-2015 (rev. 1) STR 2015/2016 * Xenomai Intro 11

Interrupts Para reduzir a latência Os interrupts não são imediatamente encaminhados para o Linux se uma Xenomai Thread está em execução Este mecanismo funciona da seguinte forma: Quando uma Xenomai Thread está em execução o Interrupt shield domain é activado Todos os interrupts Linux são suspensos Esta suspensão termina quando a Xenomai Thread termina E assim os interrupts pendentes são servidos Desta forma a latência das Xenomai threads é reduzida, mesmo quando executam em domínio secundário. 10-Out-2015 (rev. 1) STR 2015/2016 * Xenomai Intro 12

Interfaces O Xenoami disponibiliza diversas API ao utilizador A API interna (core) é a interface usada pelo RT-Nucleos. Não deve ser usada directamente Há diversas skins Uma é a Native Xenomai Interface Pode ser usada em novas aplicações Conjunto de primitivas bem organizado As skins são módulos que podem ou não ser usados Exemplos POSIX RTAI U-Itron VxWorks A ideia é facilitar o porting de aplicações já existentes 10-Out-2015 (rev. 1) STR 2015/2016 * Xenomai Intro 13

Exemplo Corpo da terefa void task_a(void *cookie) { RTIME to=0,ta=0; unsigned long overruns; int err; rt_printf("task a init\n"); /* Set task as periodic */ err=rt_task_set_periodic(null, TM_NOW, TASK_A_PERIOD_NS); // Ciclo infinito ( job ) for(;;) { err=rt_task_wait_period(&overruns); // Suspende até novo período ta=rt_timer_read(); if(err) { rt_printf("task a overrun!!!\n"); break; } rt_printf("task a activation\n"); if(to!=0) rt_printf("measured period (ns)= %lu\n",ta-to); to=ta; } /* Task "load" */ simulate_load(task_a_load_ns); } return; 10-Out-2015 (rev. 1) STR 2015/2016 * Xenomai Intro 14

Exemplo Criação de tarefas... /* Create RT task */ /* Args: descriptor, name, stack size, prioritry [0..99] and mode (flags for CPU, FPU, joinable...) */ err=rt_task_create(&task_a_desc, "Task a", TASK_STKSZ, TASK_A_PRIO, TASK_MODE); if(err) { rt_printf("error creating task a (error code = %d)\n",err); return err; } else rt_printf("task a created successfully\n"); /* Start RT task */ /* Args: task decriptor, address of function/implementation and argument*/ rt_task_start(&task_a_desc, &task_a, 0);... 10-Out-2015 (rev. 1) STR 2015/2016 * Xenomai Intro 15

Sumário Xenomai Suporta modo kernel/tempo-real com alto desempenho Permite execução em user-space, logo Protecção de memória Facilidade de debug Prioridades são portadas entre domínios Latência melhorada em user-space por meio de interrupt shielding Skins para diversos RTOS Facilita porting de aplicações 10-Out-2015 (rev. 1) STR 2015/2016 * Xenomai Intro 16

Bibliografia e links Building a RTOS over Adeos (http://home.gna.org/adeos/) Xenomai Programming Interfaces ( http://www.xenomai.org/index.php/included_documentation_s ummary#programmer.27s_reference_manuals ) Karim Yaghmour, Jon Masters, "Building Embedded Linux Systems, 2nd Edition", O'Reilly Media, Inc, 2008 ISBN: 0596529686 10-Out-2015 (rev. 1) STR 2015/2016 * Xenomai Intro 17