Módulo 5: Sistemas operacionais e Linguagens de Programação

Slides:



Advertisements
Apresentações semelhantes
Sistemas Operacionais - Aula 6
Advertisements

Sistemas Operacionais
Sistemas Distribuídos
Algoritmos de Escalonamento
DESENVOLVIMENTO DE SISTEMAS PARA INTERNET
Noções de Sistemas Operacionais
Virtualização André Bernardes RA: César Kallas RA:
Tópicos I – Prof. Eduardo Zagari Virtualização André Bernardes RA: César Kallas RA: Eduardo Stuchi RA: Rafael Curi RA:
Informática Aplica Prof.: Bruno Rafael de Oliveira Rodrigues.
Sistemas Operacionais de Rede Professor: João Paulo de Brito Gonçalves
Sistemas Operacionais
Escalonamento Linux.
Arquitetura de Sistemas Operacionais
Introdução à Informática
Chapter 4: Threads.
Sistemas Operacionais
SISTEMAS DISTRIBUÍDOS
Interação Cliente Servidor
Threads Estagiário: Bruno Guazzelli Batista Slides de autoria do Prof Drº Marcos José Santana baseados no livro Sistemas Operacionais Modernos de A. Tanenbaum.
Disciplina de TSDAC Érico Bastos Sergio Bressan
Concepts and Capabilities
Sistemas Operacionais
AULA6 – tecnologia TOWER complemento
Sistemas de Tempo Real: Abordagens de Escalonamento
Arquitetura de Sistemas Operacionais
Sincronização e Comunicação entre Processos
09/03/10 20:13 Claudio de Oliveira – 1/21.
Sistemas Embarcados com Linux
Threads.
Sistemas Embarcados com Linux
Sistemas Operacionais Adriana Vettorazzo
LINUX.
Camada de Transporte: Portas, Sockets, Aplicações em Rede
Sistemas Operacionais
Sistema de Informação Gerencial (SIG)
Concorrência em Java Threads em Java.
SISTEMAS OPERACIONAIS
Arquitetura de computadores
Sistemas Operacionais
Sistemas Operacionais
Sistemas Operacionais de Redes de Computadores
Qual o melhor sabor para o RT-Linux (Real Time Linux)? Ricardo Matias Nº27471 e Vitor Hugo Nº21906 Sistemas de Tempo Real 2006 DETI-UA.
Concorrência entre Threads Java
Universidade Federal Fluminense Escola de Engenharia Departamento de Engenharia de Telecomunicações Sistemas de Computação para Telecomunicações Autores:
Gerencia de Redes Redes de Computadores II
GESTÃO DE SISTEMAS OPERACIONAIS II
Gnu / Linux Relatório de Portfólio Fernando Filipe Teixeira nº 3113 Beja 2007.
Universidade de Mogi das Cruzes Tec
SISTEMAS OPERACIONAIS I
Computação L1: Infra-Estrutura Básica
Sistemas Operacionais
SISTEMAS OPERACIONAIS I
Sistemas Operacionais
Conceitos em Sistemas de Tempo Real (Real Time Systems)
Processos.
Bruno C. Bourbon Jarbas J. de O. Júnior {bcb, cin.ufpe.br
Módulos de um sistema operativo
ESTRUTURA DO SISTEMA OPERACIONAL
SISTEMAS OPERACIONAIS
Mini Curso.
Engenharia de Sistemas Embarcados Aula 9: Salvo RTOS.
INTRODUÇÃO À COMPUTAÇÃO
Sistemas Operacionais Distribuídos
VIRTUALIZAÇÃO - INTRODUÇÃO Na área de TI; O que é sistema legado? É o termo utilizado em referência aos sistemas computacionais de uma organização que,
Estruturas de Sistemas Operacionais. Componentes Comuns do Sistema Administração de Processos Administração da Memória Principal Administração do Armazenamento.
MATHEUS F. STIGGER QNX NEUTRINO. HISTÓRICO Primeira versão do QNX foi lançada em 1982 para Intel 8088 pela Quantum Software Systems. Nos primeiros anos.
Bruna Cavallero Martins Universidade Católica de Pelotas.
Tipos de Suportes para Tempo real Aluno: Ritiele M. Aldeburg Curso: Engenharia da Computação.
Capítulo 4 Estrutura do Sistema Operacional
Curso Superior em Redes de Computadores Camada de Aplicação Prof. Sales Filho.
Transcrição da apresentação:

Módulo 5: Sistemas operacionais e Linguagens de Programação Sistemas em Tempo Real Módulo 5: Sistemas operacionais e Linguagens de Programação em tempo real. Jarbas Silveira. 4 horas de aula : 2 x 20 minutos de exercício e 3 e 20 min de exposição. Necessário: 80 transparências. 1.o tempo: 2 horas e 15 min (135min) Transparências Programação: 30 minutos : famílias 10 40 minutos : arquitetura 10 60 minutos : Clocks 20 Intervalo 2.o tempo: 2 horas e 15 min (135min) Programação: 20 minutos : exercícios sobre clocks 60 minutos : inicialização 20 20 minutos : exercícios sobre inicialização 30 minutos : características especiais 20 Jarbas Silveira

Roteiro Ementa: 5. Sistemas operacionais e Linguagens de Programação em tempo real: Real-Time Linux; Ambiente Java; Corba; ADA; OCCAM; C Jarbas Silveira

Roteiro Sistemas operacionais e Linguagens de Programação em tempo real: - Introdução - Soft e Hard real time - Projeto de aplicações RT - RT threads - Comunicação com tarefas RT - Exemplo: central de acesso - Conclusões Jarbas Silveira

Soft e Hard real time Hard ou soft realtime? - Soft real-time tolera alguma variação na resposta a eventos. - Hard real-time requer resposta imediata, com pouca variação. - Sistemas operacionais "normais" não prevêem tarefas real-time. Jarbas Silveira

Soft e Hard real time Latência Linux: Até ~600us para uma interrupção, scheduler 10ms (jiffies). MS-Windows: (ilimitado?) para responder a interrupções, scheduler 55ms. RT-Linux: valores tipicamente entre 10 a 100us Jarbas Silveira

Real time kernels - Dedicados, projetados com características de Tempo Real; - Novo projeto necessário; - Problemas de manutenção; - Perde acesso a uma base de programas e ferramentas (TCP/IP, conectividade, X-Windows, ...) já existentes. Jarbas Silveira

Real time kernels - Extensão para um kernel já existente - Esforço limitado ao desenvolvimento de alguns "patches" ; - Manutenção simplificada; - Acesso a virtualmente toda a base de software existente, incluindo redes, tcp/ip, X, tcl/tk, python) Jarbas Silveira

Aplicações Linux Trace Toolkit (LTT) Robótica, embedded systems. Instrumentação Eletrofisiologia Aquisição de dados Data analysers Osciloscópios Jarbas Silveira

Aplicações Jarbas Silveira

Aplicações Jarbas Silveira

Alternativas de sistemas RT - KURT: módulos standard do kernel, timer reprogramado sob demanda, novo scheduler. - RTAI: baseado no RT-Linux, maior compatibilidade POSIX. - QNX: microkernel, comercial, drivers são programas user-level. Jarbas Silveira

O RTLinux é um sistema operacional de tempo real crítico; O seu desenvolvimento foi iniciado no Departamento de Ciência da Computação do Instituto Tecnológico do Novo México, por Michael Barabanov e Victor Yodaiken; Foi recentemente adquirido pela empresa Wind River, mas ainda disponibiliza uma versão livre; Jarbas Silveira

RT Linux É importante não confundir a versão do RTLinux com a versão do kernel do Linux. RTLinux não é um código independente, isto é, não é uma nova versão de Linux. Parte da distribuição do RTLinux é um "patch" sobre o kernel do Linux e a outra parte são módulos carregáveis; Jarbas Silveira

RT Linux O RTLinux é um sistema operacional no qual um kernel de tempo real coexiste com o kernel do Linux. O objetivo deste modelo é permitir e facilitar que aplicações utilizem os serviços do Linux (comunicação com a rede, sistema de arquivos, controle de processos etc.). O Linux é responsável até mesmo pela inicialização do RTLinux e pelos drivers. Jarbas Silveira

RT Linux O kernel de tempo real situa-se entre o kernel do Linux padrão e o hardware Além disso, o kernel de tempo real executa o kernel convencional como sua tarefa de mais baixa prioridade (tarefa Linux), usando o conceito de máquina virtual para tornar o kernel convencional e todas as suas aplicações completamente interrompíveis. Jarbas Silveira

RT Linux Detalhes do Kernel do Linux Jarbas Silveira

RT Linux Detalhes do kernel do RT-Linux Jarbas Silveira

RT Linux O kernel de tempo real situa-se entre o kernel do Linux padrão e o hardware Além disso, o kernel de tempo real executa o kernel convencional como sua tarefa de mais baixa prioridade (tarefa Linux), usando o conceito de máquina virtual para tornar o kernel convencional e todas as suas aplicações completamente passíveis de serem interrompidas. Jarbas Silveira

RT Linux É introduzida uma camada adicional de abstração – denominada “máquina virtual" - entre o kernel padrão do Linux e o hardware do computador; Esta nova camada introduz seu próprio escalonamento de prioridades fixas. Este escalonamento atribui prioridade mais baixa para o kernel padrão de Linux, que funciona então como uma tarefa independente. Jarbas Silveira

RT Linux A camada de abstração introduzida pelo RTLinux trabalha interceptando todas as interrupções de hardware. As interrupções de hardware não relacionadas às tarefas de tempo real, como interrupção de software, são passadas então ao kernel do Linux para serem executadas. Jarbas Silveira

RT Linux Caso a tarefa seja de tempo real, a rotina de serviço de tempo real apropriada é executada. As tarefas de tempo real têm dois atributos especiais: são “privilegiadas" (isto é, têm o acesso direto ao hardware), e não usam a memória virtual. As tarefas de tempo real são escritas como os módulos que podem ser dinamicamente carregados na memória. As tarefas de tempo real não esperam para executar as chamadas de sistema Linux. Jarbas Silveira

Interrupções no RT Linux Um dos problemas de tempo real crítico em sistemas Linux é o fato de que o kernel desabilita as interrupções temporariamente como forma de sincronização ou controle de acesso a regiões críticas; Ao desabilitar as interrupções, o relógio de interrupções fica bloqueado e conseqüentemente há uma perda de precisão temporal. Jarbas Silveira

Interrupções no RT Linux O RTLinux implementa uma camada de emulação entre o Kernel do Linux e o controlador de interrupções de hardware. Todas a chamadas para cli, sti, iret (chamadas assembler que modificam o estado das interrupções) são repassadas pelas macros S_CLI, S_STI e S_IRET que emulam as chamadas cli, sti e iret respectivamente. Desta forma o Linux nunca poderá desabilitar as interrupções. Jarbas Silveira

Escalonamento A principal função de um escalonador de tempo real é satisfazer os requisitos temporais das tarefas; Existem muitas formas de garantir as restrições temporais e há também muitas políticas de escalonamento, sendo que, uma política dificilmente é apropriada para todas as aplicações; O RTLinux permite a possibilidade de um programador escrever o seu próprio escalonador. Jarbas Silveira

Escalonamento Modelo de escalonamento em RTLinux Jarbas Silveira

Escalonamento Os escalonadores podem ser implementados e carregados como módulos de kernel. Isto torna possível o programador testar facilmente diferentes políticas e algoritmos de escalonamento a fim de escolher o melhor para a sua aplicação; Dois escalonadores podem ser bem implementados. Um deles é baseado em prioridade fixa, o outro usa o algoritmo Earliest Deadline First (EDF). Jarbas Silveira

Escalonamento Prioridades Fixas Se houver diversas tarefas que estão prontas para executar, a tarefa com maior prioridade é executada. Sempre que as tarefas se tornam prontas para serem executadas então a tarefa em execução é interrompida se esta for de baixa prioridade. Jarbas Silveira

Escalonamento Prioridades Fixas Uma tarefa esporádica pode ser implementada definindo uma interrupção para ativá-la quando necessário. O escalonador suporta diretamente tarefas periódicas. O período e o tempo de ativação são especificados para cada tarefa. Jarbas Silveira

Escalonamento Prioridades Fixas Para tarefas periódicas com os fins do prazo iguais aos períodos uma maneira natural de atribuir prioridades é dada pelo algoritmo de escalonamento rate monotonic. Este algoritmo diz que as tarefas com períodos mais curtos têm maior prioridade. As tarefas Linux são tratadas como tarefas de baixa prioridade. Assim o Linux funciona somente quando o sistema do tempo do real não tem nada para fazer. Jarbas Silveira

Escalonamento Earliest Deadline First (EDF) Outro escalonador é o que foi implementado por Ismael Ripoll, onde ele usa o algoritmo Earliest Deadline First (EDF). Neste algoritmo as tarefas não têm prioridade. Assim, as tarefas com menor deadline possuem maior prioridade. Jarbas Silveira

Comunicação entre processos Desde que o Linux possa ser preemptado por qualquer tarefa de tempo real a qualquer momento, nenhuma rotina Linux pode ser chamada de forma segura a partir de uma tarefa de tempo real. Porém, alguns mecanismos de comunicação devem estar presentes. Filas FIFO são usados pelo RTLinux para manipular informações entre processos Linux ou entre o kernel do Linux e processos de tempo real. Jarbas Silveira

Comunicação entre processos As filas RT-FIFO são alocados no nível do kernel e são referenciadas por números inteiros. Existe um limite estático para o número de filas FIFOs que podem ser mudadas durante a recompilação do kernel. Contudo, processos Linux enxergam as filas FIFOs como arquivos especiais de caracteres. Normalmente estão no diretório /dev/rtf0, dev/rtf1, etc. Jarbas Silveira

Comunicação entre processos As FIFOs são utilizadas como se fossem arquivos normais (open read/write close). Para poder utilizá-las, elas devem ter sido criadas antes que um processo normal do Linux possa fazer um open sobre ela. Jarbas Silveira

Aplicações O campo de aplicação de RTLinux é muito amplo, com ele podemos tomar o controle total do PC; Em uma tarefa de tempo real, podemos acessar todas as portas do PC, instalar controladores de interrupções, desabilitar temporariamente as interrupções; Atualmente é utilizado em plantas industriais, na forma de controle e automação; Também é utilizado como componentes na fabricação de produtos tais como roteadores, receptores GPS e sistemas embarcados, no caso da automação e controle industrial. Jarbas Silveira

Aplicações O RTLinux se integra facilmente com os sistemas corporativos, tais como acesso à base de dados como Oracle e o DB2 e servidores Web. Muitas empresas utilizam o RTLinux em suas instalações e atividades tais como: a Agencia Espacial Norte Americana (NASA), utiliza RT Linux para controle de mísseis, a Fujitsu utiliza-o em controle de robôs, telescópios e outros projetos científicos, a Siemens automatizou sua fábrica com RTLinux. Jarbas Silveira 35

Introdução BlueCat: Sistema de tempo real embarcado; RTOS (Real-Time Operation System) próprio para arquiteturas multiprocessadas; Kenerl customizável; Programação utilizando o padrão POSIX. Jarbas Silveira

Características Sistema baseado no kernel 2.6; Disponível para as arquiteturas x86, PowerPC, ARM, MIPS, e todas as placas de RTOS; Kernel preemptível; Escalonador de baixa latência.‏ Jarbas Silveira

Instalação Tem que pedir o cd pelo site: http://www.lynuxworks.com/products/bluecat/embedded-linux-cd.php Veja a arquitetura que deseja: http://www.lynuxworks.com/board-support/all-linux.php Jarbas Silveira

Referências Bibliográficas http://www.lynuxworks.com/support/bluecat/docs/bluecat55/0851-00-bcl55_ug.pdf http://lynxos.org/support/courses/bclinux.php3 Jarbas Silveira

Introdução (KURT) Kansas University Real-Time Linux: Linux modificado para ter um escalonador em tempo real; Sistema de tempo real soft; Fácil de implementar; Escalonador muito eficiente. Gerenciamento dos eventos de tempo real em uma escala de 10ms. Jarbas Silveira

Características Patch aplicado ao kernel 2.4.18 (última versão); Disponível apenas para a arquitetura PC; Dois modos de operação: Normal: Apenas eventos que não sejam em tempo real; Real-Time: Apenas eventos que sejam em tempo real. Framework em tempo real que pode escalonar qualquer evento Jarbas Silveira

Instalação I Faça o download dos seguintes arquivos: http://www.ittc.ku.edu/kurt/downloads/kurt-2.4.18-2.patch http://www.ittc.ku.edu/kurt/downloads/kurt-2.4.18-2.tar.bz2 http://www.kernel.org/pub/linux/kernel/v2.4/linux-2.4.18.tar.bz2 Descomprima todos os arquivos (dica, no diretório /usr/src ): Jarbas Silveira

Instalação II Aplique o patch dentro do diretório do kernel descompactado: # patch -p1 -s < /diretorio/kurt-2.4.18.patch Na configuração do kernel, marque todas as opções que tem haver com UTIME e KURT como 'build-in'; Compile o kernel e reinicie o pc com o novo kernel. Jarbas Silveira

Instalação III Compile os fontes do diretório kurt-2.4.18-2; Não esqueça de criar a variável de ambiente KURTLINUX com o caminho do kernel 2.4.18; Crie os seguintes devices: # mknod /dev/kurt c 240 0 # mknod /dev/utime c 241 0 # mknod /dev/dstream c 242 0 Jarbas Silveira

Referências Bibliográficas http://hegel.ittc.ukans.edu/projects/kurt http://www.linuxdevices.com/articles/AT9514980326.html http://www.ittc.ku.edu/kurt/papers/user-manual-DRAFT.pdf Jarbas Silveira

Introdução Xenomai: Sistema de tempo real hard; Trabalha com diversos tipos de RTOS (Real-Time Operation System) para oferecer serviços genéricos; Estes serviços criam uma camada abstrata para emular módulos de aplicações em tempo-real, que imita APIs de kernel de tempo-real. Jarbas Silveira

Aplicado a qualquer kernel menor ou igual à versão 2.6.23 (versão); Características Aplicado a qualquer kernel menor ou igual à versão 2.6.23 (versão); Disponível para as arquiteturas x86, PowerPC, ARM, MIPs, entre outras; Tem como dependência a camada de virtualização Adeos (Adaptive Domain Environment for Operation System)‏ Jarbas Silveira

Faça o download dos seguintes arquivos: Instalação I Faça o download dos seguintes arquivos: http://download.gna.org/xenomai/testing/xenomai-2.4-rc4.tar.bz2 http://download.gna.org/adeos/patches/v2.6/i386/adeos-ipipe-2.6.23-i386-1.10-10.patch http://www.kernel.org (última versão do kernel)‏ Descomprima todos os arquivos (dica, no diretório /usr/src ) e compile-os. Jarbas Silveira

Na configuração do kernel, tenha os seguintes cuidados: Instalação II Na configuração do kernel, tenha os seguintes cuidados: Marque todas as opções para 'Real-time sub-system'; Marque a opção que referece à interrupções de pipeline; Compile o kernel e reinicie o pc com o novo kernel. Jarbas Silveira

Referências Bibliográficas http://stud3.tuwien.ac.at/~e0226686/xenomai/xenomai_implementation.pdf http://www.xenomai.org/index.php/Main_Page Jarbas Silveira

Projetos Desenvolver uma plataforma para análise de formas de onda através da porta-paralela, serial ou USB, com o objetivo de comparação de aptidão a tempo real, no quesito tempo de latência, de diversos sistemas operacionais ditos de tempo real; - Equipes: 3 pessoas (Máximo) - Sugestão: 3 trios e 2 duplas Jarbas Silveira 51

Projetos O sistema deverá reproduzir em formato gráfico a forma de onda adquirida. O sistema deverá ser testado com carga máxima e mínima; Utilize um ADC0808 ou similar para a aquisição do sinal do gerador; Jarbas Silveira 52

Projetos Fase 1: seminários sobre cada sistema operacional, apresentando arquitetura proposta, APIs utilizadas e viabilidade da implementação, como acesso ao hardware; Fase 2: implementação e apresentação dos resultados Fase 3 documentação (possível publicação de artigo ou trabalho) Jarbas Silveira 53

Projetos Datas: 06/11/2007: Equipe 2 e 3 13/11/2007: Equipe 1, 4 e 5 04/12/2007: Apresentação das equipes 11/12/2007: Entrega da documentação Jarbas Silveira 54

RTOS: - RT Linux - KURT - RTAI - Xenomai - BlueCat - Java Projetos RTOS: - RT Linux - KURT - RTAI - Xenomai - BlueCat - Java Jarbas Silveira 55

Projetos Equipes: Lucas Távora de Melo Gabriel Mendes Pedro Rafael Leandro Pinheiro Ricardo Bruno César Lincoln Raphael Torres Levi Lopes Lila Maria Isaac Teles Lius Fontenelle Araceli Teixeira Francisco Eugênio Jarbas Silveira 56

Equipes 1: BlueCat César Lincoln Raphael Torres Levi Lopes Projetos Equipes 1: BlueCat César Lincoln Raphael Torres Levi Lopes Jarbas Silveira 57

Equipe 2: Xenomai Lucas Távora de Melo Gabriel Macedo Pedro Rafael Projetos Equipe 2: Xenomai Lucas Távora de Melo Gabriel Macedo Pedro Rafael Jarbas Silveira 58

Equipes 3: RTAI Araceli Teixeira Francisco Eugênio Projetos Equipes 3: RTAI Araceli Teixeira Francisco Eugênio Jarbas Silveira 59

Equipes 4: RT Linux Lila Maria Lius Fontenelle Ricardo Bruno Projetos Equipes 4: RT Linux Lila Maria Lius Fontenelle Ricardo Bruno Jarbas Silveira 60

Equipes 5: KURT Isaac Teles Leandro Pinheiro Projetos Equipes 5: KURT Isaac Teles Leandro Pinheiro Jarbas Silveira 61