Anda di halaman 1dari 8

RTLINUX

Marcus Vinicius Duarte Costa, Alono Domingos, Henrique Mendona, Tiago Ferreira Bitencourt, Luclia Santos Engenharia da Computao Faculdade rea1 02 Junho de 2012 Salvador BA Brasil marcus.area1@gmail.com, adfsalvador@yahoo.com.br, henrique.maggots@gmail.com, tiago.eletrica@hotmail.com, lnsantos19@gmail.com Resumo. Objetivo deste artigo desmistificar a aplicao do Linux como Sistema em Tempo Real, mostrando como se deu origem, o funcionamento e a finalidade. 1. Informaes Gerais O RTLinux um sistema operacional de tempo real crtico. Seu kernel uma extenso Linux que se prope a suportar tarefas com restries temporais, as quais caracterizam uma aplicao de tempo real. Foi criado em fevereiro de 2007 por Michael Barabanov e Victor Yodaiken para que o Linux alm de ter velocidade e eficincia pudesse ter. possvel obter desempenho em soft real time pelo kernel padro e, com uma maior dedicao, possvel criar aplicativos em tempo real hard. 2. Funcionalidades do Linux SRT A maioria das funcionalidades do RTLinux est em uma coleo de mdulos carregveis do kernel que prestam servios opcionais e nveis de abstrao. Estes mdulos incluem:

1. rtl sched uma prioridade programador que suporta uma "lite POSIX" interface. 2. rtl time que controla os relgios do processador e exporta uma interface abstrata para ligar manipuladores do relgios. 3. rtl posixio suportes do estilo POSIX de read /white /open com interface para drivers de dispositivos. 4. rtl fifo conecta tarefas RT e manipuladores de interrupo de processos do Linux. 5. Semforo, um pacote contribudo por Jerry Epplin. 6. POSIX apoio mutex est prevista para estar disponvel na prxima verso de atualizao do RTLinux. 7. mbuff um pacote escrito por Tomasz Motylewski para fornecer memria compartilhada entre os componentes e processos RT Linux. 3. Mdulos implementados no Kernel A aplicao RT-Linux na verdade um mdulo do kernel. o mesmo tipo de mdulo, que o Linux usa para os drivers, sistemas de arquivos entre outros. A principal diferena entre mdulo RTLinux e um mdulo comum do Linux que o mdulo RT-Linux chama funes, que so oferecidos pelo RT-Linux kernel enquanto mdulo comum usa funes do kernel do Linux apenas. Um cdigo-fonte de um mdulo Linux simples dado abaixo. Ele contm duas funes: init_module, que utilizado para o mdulo ser iniciado por insmod ou modprobe, e cleanup_module, que chamado antes do mdulo ser removido por rmmod.

#include <linux/module.h> #include <linux/kernel.h> int init_module(void) { printk("Init\n"); /*Printing "Init" in Kernel*/

return 0; } void cleanup_module(void) { printk("Cleanup\n"); /*Clearing "Init" in Kernel*/ } 4. Threads RT-Linux implementa uma API POSIX para a manipulao de threads; a thread criada pela funo pthread_create() e utiliza parmetro que contem o cdigo que ser executado pela thread, e a sua prioridade de execuo. 5. Tempo real no kernel padro 2.6 Hoje, no kernel 2.6, possvel obter o desempenho em tempo real soft por meio de uma configurao simples de kernel. No kernel Linux 2.6 padro, quando um processo de espao de usurio faz uma chamada para o kernel (por meio de uma chamada de sistema), ele no pode prevalecer. Isto significa que, se um processo de baixa prioridade faz uma chamada de sistema, um processo de alta prioridade precisa esperar at o trmino dessa chamada antes de obter acesso CPU. A nova opo de configurao CONFIG_PREEMPT altera esse comportamento do kernel permitindo um escalonamento dos processos se um trabalho de alta prioridade estiver disponvel (mesmo se o processo estiver no meio de uma chamada de sistema). Esta opo de configurao tem no entanto, um trade-off. Apesar de a opo permitir o desempenho em tempo real soft e mesmo sob carga fazer com que o sistema operacional execute mais uniformemente, isso feito com um custo. Esse custo um rendimento levemente mais baixo e uma pequena reduo no desempenho do kernel por causa da sobrecarga includa pela opo CONFIG_PREEMPT. Essa opo til para desktop e sistemas embarcados, mas talvez no seja a correta em todos os cenrios (por exemplo, servidores).

6. Thin Kernel A abordagem thin-kernel (ou microkernel) utiliza um segundo kernel como interface de abstrao entre o hardware e o kernel Linux. O kernel Linux que no trabalha em tempo real executado em segundo plano como uma tarefa de baixa prioridade do thin kernel e hospeda todas as tarefas que no sejam em tempo real. As tarefas em tempo real so executadas diretamente no Thin kernel.

A utilizao principal do thin kernel (alm de hospedar as tarefas em tempo real) o gerenciamento das interrupes. O thin kernel intercepta as interrupes para assegurar

que o kernel que no seja em tempo real no possa preceder a operao do thin kernel. Isto permite que o thin kernel fornea suporte em tempo real hard. Embora a abordagem do thin kernel tenha suas vantagens (a coexistncia entre o suporte em tempo real hard e um kernel Linux padro), ela apresenta desvantagens. As tarefas em tempo real e as que no so em tempo real so independentes, o que pode dificultar a depurao de erros. As tarefas que no so em tempo real tambm no oferecem suporte completo plataforma Linux ( por isso que a execuo do thin kernel se chama thin ). 7. Nano-kernel Enquanto a abordagem thin kernel conta com um kernel minimizado que inclui gerenciamento de tarefas, a abordagem nano-kernel d um passo adiante ao minimizar ainda mais o kernel. Passa, assim, a ser menos um kernel e mais um Hardware Abstraction Layer (HAL). O nano-kernel fornece ao hardware o compartilhamento de recursos para vrios sistemas operacionais funcionando em uma camada mais alta. Como o nano-kernel abstrai o hardware, pode fornecer uma priorizao para sistemas operacionais de camadas mais altas e, portanto, oferecer suporte em tempo real hard.

Observe as semelhanas entre essa abordagem e a abordagem de virtualizao para executar vrios sistemas operacionais. Neste caso, o nano-kernel abstrai o hardware a

partir dos kernels em tempo real e dos que no so em tempo real. Isto similar forma como os hypervisores abstraem o hardware vazio dos sistemas operacionais convidados. Consulte Recursos para obter informaes adicionais. Um exemplo da abordagem nano-kernel o Adaptive Domain Environment for Operating Systems (ADEOS). O ADEOS oferece suporte a vrios sistemas operacionais concorrentes que estejam executando simultaneamente. Quando ocorrerem eventos de hardware, o ADEOS consulta cada sistema operacional de uma cadeia para verificar qual ir lidar com o evento.

8. Resource kernel Outra arquitetura de tempo real a abordagem resource kernel. Ela inclui um modulo a um kernel para fornecer reservas a vrios tipos de recursos. As reservas garantem acesso a recursos de sistema multiplexados por tempo (CPU, rede ou largura de banda de disco). Esses recursos apresentam diversos parmetros de reserva, como o perodo de repetio, o tempo de processamento exigido (ou seja, o tempo necessrio para o processamento) e o prazo final. O resource kernel oferece um conjunto de Interfaces de Programao de Aplicativos (APIs) que permitem s tarefas solicitar essas reservas. O resource kernel pode, ento, unir as solicitaes para definir um planejamento, de modo a fornecer acesso garantido por meio de limitaes definidas por tarefa (ou retornar um erro se elas no puderem ser garantidas). Ao utilizar um algoritmo de planejamento como o Earliest-Deadline-First (EDF), o kernel pode ento ser utilizado para lidar com a carga de trabalho dinmica do planejamento.

Um exemplo de uma implementao de resource kernel o Linux/RK da CMU, que integra um resource kernel porttil no Linux como um mdulo carregvel. Essa implementao evoluiu para a oferta comercial TimeSys Linux/RT.

Concluso Sabendo que os Sistemas em Tempo Real esto cada vez mais presentes no nosso dia-addia, tentamos com este artigo mostrar que o linux pode ser adaptado a estes sistemas com uma simples implementao em sua arquitetura, adicionando um kernel que permite fazer o controle de prioridade a recursos de hardware.

Referncias Disponivel em: http://www.engr.mun.ca/~oyoung/8894-thesis.pdf Consultado em: 28/05/2012

Disponivel em: http://www.yodaiken.com/ Consultado em: 28/05/2012

Disponivel em: http://www.ibm.com/developerworks/br/library/l-real-time-linux/ Consultado em: 28/05/2012

Disponivel em: http://www.ece.ufrgs.br/~fetter/eng04008/rtlinux.pdf Consultado em: 28/05/2012

Disponivel em: http://www.das.ufsc.br/~romulo/discipli/cad-cbtisa/sotr-resumo.pdf Consultado em: 28/05/2012

Anda mungkin juga menyukai