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



Documentos relacionados
Real Time Linux. Walter Fetter Lages

Sistemas Operacionais

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

Windows NT 4.0. Centro de Computação

Arquitetura de Computadores. Introdução aos Sistemas Operacionais

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO

Sistemas Embarcados. Introdução. Características de sistemas embarcados. Software embarcado

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

SISTEMAS OPERACIONAIS. Prof. André Dutton

Noções de Software. André Aziz Francielle Santos

Processos e Threads (partes I e II)

Introdução a Computação 07 Sistemas operacionais. Márcio Daniel Puntel marcio.puntel@ulbra.edu.br

Sistemas Operacionais Processos e Threads

Sistemas de Tempo Real

Seleção de Sistemas Operacionais de Tempo Real para Sistemas Embarcados

Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 05 Estrutura e arquitetura do SO Parte 1. Cursos de Computação

Sistemas Operacionais

Escalonamento no Linux e no Windows NT/2000/XP

Sistemas Operacionais

Sistemas Operacionais Aula 06: Threads. Ezequiel R. Zorzal

LINUX. Lapro I Profa. Fernanda Denardin Walker. - Aula 2 - Material adaptado de: Isabel Mansour, Marcia Moraes e Silvia Moraes SISTEMA OPERACIONAL

Programação Concorrente Processos e Threads

SISTEMAS OPERACIONAIS

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

Apresentação. Ementa da Disciplina. Objetivo da Disciplina. DCA-108 Sistemas Operacionais

SISTEMAS OPERACIONAIS 2007

Sistemas Embarcados. Introdução aos sistemas embarcados

SISTEMA OPERACIONAL & SOFTWARE LIVRE

SISTEMAS EMBARCADOS. Petiano: Yuri Gonzaga G. da Costa

O que veremos nesta aula? Principais Aspectos de Sistemas Operacionais. Visão geral de um sistema computacional

Introdução aos Sistemas

IFPE. Disciplina: Sistemas Operacionais. Prof. Anderson Luiz Moreira

Sistemas Embarcados Android

Sistemas Operacionais. Prof. Pedro Luís Antonelli Anhanguera Educacional

Sistemas Operacionais 2014 Introdução. Alexandre Augusto Giron

Sistemas Embarcados Android

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

Sistemas Operacionais. Roteiro. Hardware. Marcos Laureano

Projeto de Sistemas de Tempo Real

Introdução à Ciência da Computação

ANÁLISE SOBRE O SISTEMA OPERACIONAL QNX

Everson Scherrer Borges João Paulo de Brito Gonçalves

Sistema Operacional LINUX

SISTEMAS OPERACIONAIS

SISTEMAS OPERACIONAIS

Sistemas Operacionais. Patrícia Megumi Matsumoto Luciana Maria Gregolin Dias

Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 05 Estrutura e arquitetura do SO Parte 2. Cursos de Computação

Introdução a Computação

Curso de Instalação e Gestão de Redes Informáticas

Sistemas Operacionais

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

Introdução. Sistemas Operacionais

Capítulo 8 Arquitetura de Computadores Paralelos

Arquitetura de Computadores. Sistemas Operacionais IV

Arquitetura de Computadores II

Abordagens de Escalonamento na Perspectiva da Engenharia

ESTUDO DE CASO WINDOWS VISTA

Webinar Freescale Desenvolvimento de sistemas embarcados em Linux com a Thunderboard 11/12/2013

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

Máquina de estados UNIX O

Máquina de estados UNIX O. Sistemas Operacionais 2008/1Profa. Patricia S.O. computação: recursos D. S.O S.O. controla eventos no sistema de

SISTEMAS OPERACIONAIS

Sistemas Distribuídos

Arquiteturas de Software

Gerência do Processador

Sistemas Operacionais Aula 03: Estruturas dos SOs. Ezequiel R. Zorzal

EVOLUÇÃO DOS SIST. DE COMPUTAÇÃO DÉC. DE 50 E 60

Programação de Periféricos

Prof.: Roberto Franciscatto. Capítulo 1.2 Aspectos Gerais

Sistemas Operacionais. Estruturas de SO. Edeyson Andrade Gomes.

Apresentação da disciplina. Sistemas Operacionais I N. A disciplina. O Professor. Áreas de atuação na pesquisa. Referências bibliográficas básicas

Sistemas Operacionais

Aula 2 Modelos computacionais

Gerência de processos Estudos de caso - BSD Unix

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

Sistemas Operacionais

Placas Adaptadoras e montagem de Redes

Sistemas Operacionais

Sistema Operacional Correção - Exercício de Revisão

Arquitetura de Sistemas Operativos

Integrating Multimedia Applications in Hard Real-Time Systems. Introdução - CM são sensíveis a delay e variação no delay (Jitter)

Introdução aos Sistemas Operacionais. Computador = hardware + software. Como é formado o meu computador? E como estes componentes se comunicam?

Introdução aos Sistemas Operativos

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

Sistemas Operacionais

Arquitetura de Sistemas Operacionais

Sistemas Distribuídos

Redes de Computadores Modelo de referência TCP/IP. Prof. MSc. Hugo Souza

Sistemas de Tempo Real: Conceitos Básicos

Sistemas Operacionais. Professor Leslier Soares Corrêa

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

ES952 - TRABALHO DE GRADUAÇÃO II

Sistemas Operacionais Introdução

Sincronização e Comunicação entre Processos. Adão de Melo Neto

Sistemas Operacionais

Sistema Operacional. Prof. Leonardo Barreto Campos 1

Guilherme Pina Cardim. Pesquisa de Sistemas Operacionais I

Cálculo Aproximado do número PI utilizando Programação Paralela

Introdução. Nível do Sistema Operacional. Introdução. Um Sistema Operacional... Introdução a Sistemas Operacionais

Transcrição:

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

Tópicos O que é computação de tempo-real? O que são sistemas operacionais de tempo-real? Onde são utilizados RTOSs? Sistemas: MicroC/OS-II Kernel; RTOS Linux: RTLinux, uclinux+rtai. Referências. Out/2007 Aleksey Victor Trevelin Covacevice 2

O que é computação de tempo-real? Computação não-tempo-real: Um programa P é executado com uma entrada I, gerando uma saída O, executando em um tempo T: O = P(I), T; Quando menor T, maior performance; Não há, entretanto, imposições quanto ao valor de T. Out/2007 Aleksey Victor Trevelin Covacevice 3

O que é computação de tempo-real? Computação de tempo-real: É a computação normal, com uma imposição a mais em T: O = P(I), T < D; D é chamado de deadline: o programa obrigatoriamente deve ser executado antes do deadline; O deadline é um tempo crítico de execução; Out/2007 Aleksey Victor Trevelin Covacevice 4

O que é computação de tempo-real? Computação de tempo-real: O deadline de cada tarefa deve ser cumprido independente da carga do sistema; O deadline varia de tarefa para tarefa: Painel de cotações da bolsa: alguns minutos; Freios automotivos: alguns milissegundos; A execução do programa num tempo maior que D não é apenas indesejada, é inútil! Out/2007 Aleksey Victor Trevelin Covacevice 5

O que é computação de tempo-real? Num sistema em tempo-real, o tempo de execução das tarefas é crítico, não apenas um fator de performance; A corretude de um programa em tempo-real é baseada não apenas na lógica de sua execução, mas no tempo em que ele o faz; Out/2007 Aleksey Victor Trevelin Covacevice 6

O que é computação de tempo-real? Soft real-time: o tempo de execução é crítico, mas possíveis atrasos apenas degradam a qualidade da resposta do sistema: Transmissão de áudio/vídeo real-time; Sistemas de bancos de dados integrados (bancos, supermercados, etc.); Sistemas de medição (satélites, microscópios, etc.). Out/2007 Aleksey Victor Trevelin Covacevice 7

O que é computação de tempo-real? Hard real-time: o tempo de execução é absolutamente crítico e não tolera atrasos; uma operação que não cumpra o deadline é considerada inútil: Equipamentos médicos; Freios automotivos e sistemas de navegação; Programas que jogam xadrez! Out/2007 Aleksey Victor Trevelin Covacevice 8

O que é computação de tempo-real? Em soft real-time, o sistema costuma garantir um tempo de execução apenas probabilístico (i.e., a maioria das tarefas é executada no prazo); Em hard real-time, o sistema deve garantir um tempo de execução determinístico (i.e., todas as tarefas são provadas de executar no prazo). Out/2007 Aleksey Victor Trevelin Covacevice 9

O que são sistemas operacionais de tempo-real? Sistemas operacionais de tempo-real (RTOS) são sistemas que auxiliam (mas não garantem) um escalonamento de tarefas que cumpre com deadlines; RTOSs não são orientados à excelência de performance (throughput), mas sim ao cumprimento dos deadlines; Out/2007 Aleksey Victor Trevelin Covacevice 10

O que são sistemas operacionais de tempo-real? O elemento chave que diferencia um RTOS de um OS convencional é o escalonador; Um exemplo simples: um processador executando uma tarefa sem I/O e sem interrupções: Não há interferência nenhuma na execução do programa: hard-wired real-time! Out/2007 Aleksey Victor Trevelin Covacevice 11

O que são sistemas operacionais de tempo-real? Há diversos modelos para um escalonador real-time: Orientado a eventos (preemptivo); Orientado a fatias de tempo; Escalonamento separado para tarefas de tempo real e tarefas convencionais; Diminuir o tempo de troca de contexto (barrel processors); Out/2007 Aleksey Victor Trevelin Covacevice 12

O que são sistemas operacionais de tempo-real? Mais sobre escalonadores: Recursos em hardware (clocks externos, mascaramentos de interrupção) são geralmente utilizados; Tarefas são divididas em pedaços (com uma fração do deadline) para facilitar na priorização de threads; Estruturas de dados simples! Out/2007 Aleksey Victor Trevelin Covacevice 13

O que são sistemas operacionais de tempo-real? Comunicação entre tarefas: mutexes, semáforos, mensagens: Mutex e semáforos: de máxima eficiência, não pode haver deadlock! Geralmente associados à prioridade da tarefa; Filas de mensagens: implementação mais segura, mas mais custosa; Regiões críticas: geralmente executadas em nível de kernel. Out/2007 Aleksey Victor Trevelin Covacevice 14

O que são sistemas operacionais de tempo-real? Alocação de recursos: Similar a OSs convencionais, com priorização de tarefas; No contexto de acesso exclusivo, utiliza mutexes e semáforos; Quando acessado por interrupções, a prioridade da execução é mínima. Out/2007 Aleksey Victor Trevelin Covacevice 15

O que são sistemas operacionais de tempo-real? Alocação de memória: Ainda mais crítica que em sistemas convencionais; Não tolera fragmentação (RTOSs podem rodar anos a fio sem reiniciar!); Não tolera atrasos (nada de buscar nós em listas ligadas!); Uso de blocos fixos é bastante comum. Out/2007 Aleksey Victor Trevelin Covacevice 16

Onde são utilizados RTOSs? Operações em tempo-real são utilizadas em vários âmbitos; Há software desenvolvido para várias arquiteturas; Há várias arquiteturas desenvolvidas para vários usos; Há vários usos! Out/2007 Aleksey Victor Trevelin Covacevice 17

Onde são utilizados RTOSs? Coisas simples: jogos eletrônicos, videoconferências, sistemas integrados de informação; Coisas sérias: freios automotivos, airbags, sistemas de navegação em aviões, equipamentos médicos; Coisas MUITO sérias: usinas nucleares, satélites, programas que jogam xadrez! Out/2007 Aleksey Victor Trevelin Covacevice 18

Onde são utilizados RTOSs? No seu computador, a BIOS possui interrupções que checam a temperatura do processador: resposta em tempo crítico; Na sua câmera digital, há circuito que codifica áudio/vídeo com um mínimo de latência: é tempo-real? Out/2007 Aleksey Victor Trevelin Covacevice 19

MicroC/OS-II Kernel Sistema operacional open-source, usado largamente em sistemas embarcados; Segunda versão, primeira versão de 1992; Mantido pela Micrium Inc.; Escalonador preemptivo, escrito totalmente em ANSI C. Out/2007 Aleksey Victor Trevelin Covacevice 20

MicroC/OS-II Kernel Pode ser compilado para várias arquiteturas: Altera Nios II ARM Atmel Freescale/Motorola PowerPC Intel x86, etc. Out/2007 Aleksey Victor Trevelin Covacevice 21

MicroC/OS-II Kernel Chamadas não seguem o padrão POSIX: OSMutexPost(), OSQAccept(), OSTaskCreate(); Já possui várias bibliotecas desenvolvidas: Compressão de dados (zip, bz2); Pilhas de protocolos (TCP/IP). Out/2007 Aleksey Victor Trevelin Covacevice 22

RTOS Linux Basicamente duas versões de Linux implementando RTOS: RTLinux (Real-time Linux); RTAI (Real-time Application Interface): associado a um kernel como o uclinux; Ambas são extensões do kernel possibilitando escalonamento hard realtime de tarefas; Out/2007 Aleksey Victor Trevelin Covacevice 23

RTOS Linux RTLinux: desenvolvido nos EUA, possui uma versão gratuita (RTLinux Free) e uma versão paga (RTLinux Pro); Um kernel paralelo (real-time core) é utilizado para gerenciar tarefas de tempo-real; É patenteado (não é exatamente livre ). Out/2007 Aleksey Victor Trevelin Covacevice 24

RTOS Linux RTAI: patch para o kernel que provê interface de tempo-real para tarefas; Determinístico, preemptivo, POSIXcompliant; Pode ser compilado como um módulo para o kernel; Utiliza ADEOS (Adaptive Domain Environment for OS) como HAL; Out/2007 Aleksey Victor Trevelin Covacevice 25

RTOS Linux ADEOS é um nanokernel: providencia uma microinterface entre um (ou mais) kernels e o hardware subjacente; A RTAI usa a ADEOS para prover serviços de alto nível para gerência de tarefas de tempo-real: O uso de HALs para adaptar um kernel normal em um kernel real-time é comum! Out/2007 Aleksey Victor Trevelin Covacevice 26

RTOS Linux uclinux: kernel linux para sistemas embarcados; uclinux+rtai = RTOS: Muito usado como alternativa ao RTLinux e ao MicroC/OS-II; Permite tarefas de tempo-real juntamente com tarefas convencionais. Out/2007 Aleksey Victor Trevelin Covacevice 27

Outros RTOS Xenomai (Linux, semelhante à RTAI); MaRTE OS (Minimal Real-Time Operating System for Embedded Apps); Helium: HC/CPUS08 Core (Freescale), menos de 900 bytes! PhoenixRTOS, RTEMS, RTMOS, FreeRTOS, psos, Fusion RTOS, Nucleus RTOS (Mentor Graphics),......... Out/2007 Aleksey Victor Trevelin Covacevice 28

Referências Labrosse, J. J. MicroC/OS-II Kernel, Segunda Edição, CMP Books, 2002; Barr, M. Multitasking Alternatives and the Perils of Preemption, Embedded Systems Design, 2006; Labrosse, J.; Barr, M. Introduction to Preemptive Multitasking, Embedded Systems Programming, 2003; Wikipedia, termo Real-time Computing, acesso em 2007; Out/2007 Aleksey Victor Trevelin Covacevice 29

Referências Sites interessantes: http://www.netrino.com/articles/rtosalter natives/index.php http://www.netrino.com/articles/rtoses/in dex.php Por que não usar um RTOS: http://www.embedded.com/2000/0009/00 09feat4.htm Out/2007 Aleksey Victor Trevelin Covacevice 30

Lista de Fabricantes Express Logic (ThreadX); Red Hat (ecos); LynuxWorks (LynxOS); Micrium Inc. (MicroC/OS-II); Mentor Graphics (Nucleus); Wind River (psos, RTLinux, VxWorks);...e GNU (RTAI, Xenomai, etc.). Out/2007 Aleksey Victor Trevelin Covacevice 31