Sistemas Operacionais de Tempo Real. Prof. Andre Luis Meneses Silva

Documentos relacionados
Sistemas Operacionais. Sistema de entrada e Saída

Sistemas Operacionais (SO)

SSC0611 Arquitetura de Computadores

Sistemas Operacionais. BSI / UAB 2013 Hélio Crestana Guardia

Variância dos Tempos de Resposta

Sistemas de Tempo Real: Sistemas Operacionais

Sistemas Operacionais Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios. Aula 06.

Processo. Gerência de Processos. Um programa em execução. Centro de Informática/UFPE :: Infraestrutura de Software

Processo. Gerência de Processos. Um programa em execução. Centro de Informática/UFPE :: Infraestrutura de Software

Arquitetura de Computadores. Processamento Paralelo

AULA 03: PROCESSAMENTO PARALELO: MULTIPROCESSADORES

Exercícios Cap I. 1.1, 1.2, 1.3 (somente letras (a), (b) e (c)) , 1.8 e 1.12 IC - UFF

Entrada e Saída. Walter Fetter Lages.

UFRJ IM - DCC. Sistemas Operacionais I. Unidade IV Gerência de Recursos Entrada e Saída. 02/12/2014 Prof. Valeria M. Bastos

Sistemas Operacionais

Parte I Multiprocessamento

Sistemas de Informação. Sistemas Operacionais

Sistemas de Tempo Real

Arquitetura de Sistemas Operacionais Francis Berenger Machado / Luiz Paulo Maia (Material Adaptado)

Sistema Operacional. Etapa

Montagem e Manutenção

Introdução aos Sistemas Operacionais

Aula 2: Tipos de Sistemas Operacionais. Instituto Federal da Bahia Campus Salvador INF009 - Sistemas Operacionais Profª Flávia Maristela

Apresentação. Ementa da Disciplina. Objetivo da Disciplina. DCA-108 Sistemas Operacionais. Referências Bibliográfica. Referências Bibliográfica

Processos O conceito de processos é fundamental para a implementação de um sistema multiprogramável. De uma maneira geral, um processo pode ser entend

Aula 1: Introdução aos Sistemas Operacionais. Instituto Federal da Bahia INF009 - Sistemas Operacionais Profª Flávia Maristela

Sistemas Operacionais. Processos e Threads

Sistemas Operacionais Processos. Carlos Ferraz Jorge Cavalcanti Fonsêca

Sistemas Operacionais. Gerência de Processador

Infra-Estrutura de Software. Entrada / Saída

Sistemas Operacionais Aula 3

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

Abordagens de Escalonamento

Redes de Computadores. INF201 - Fundamentos de Sistemas Operacionais - 2º Período

Infra-Estrutura de Software

Sistema Distribuído. Sistema Distribuído. Aplicações Distribuídas. Conceitos Básicos

SISTEMAS OPERACIONAIS

Introdução a Sistemas Operacionais. Adão de Melo Neto

Fundamentos de Sistemas Operacionais. Threads. Prof. Edwar Saliba Júnior Março de Unidade Threads

DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO BACHARELADO EM INFORMÁTICA SISTEMAS OPERACIONAIS I 1 0 SEM/05 Teste 1 Unidade I DURAÇÃO: 50 MINUTOS

Sistemas Operacionais

Sistemas Operacionais

Sistemas Operacionais. Escalonamento de processos

Sistemas Operacionais Abertos. Prof. MSc. André Yoshimi Kusumoto

Inversão de prioridades

Capítulo 2. Multiprogramação. Conteúdo. Objetivo. Recordando. Recordando. DCA-108 Sistemas Operacionais

Entrada/Saída. Capítulo 5. Sistemas Operacionais João Bosco Junior -

Sistemas Operacionais

Sistemas Operacionais - UCSAL Professor : Marco Antônio C. Câmara Primeira Lista de Exercícios

Sistemas de Tempo-Real

Programação Concorrente

Sistemas Operacionais. Entrada/Saída

Exercícios de Sistemas Operacionais 3 B (1) Gerência de Dispositivos de Entrada e Saída

Entrada e Saída. Walter Fetter Lages

Sistemas Operacionais. Interrupção e Exceção

Sistemas Operacionais Aula 7

Sistemas Multiprogramáveis/Multitarefa

Capítulo 5 Entrada/Saída

Organização e Arquitetura de Computadores I

Notas da Aula 11 - Fundamentos de Sistemas Operacionais

Sistemas Distribuídos Aula 3

Organização de Computadores 1

Programação de Sistemas em Tempo Real

UFRJ IM - DCC. Sistemas Operacionais I. Unidade III. Escalonamento de Processos. 24/04/2014 Prof. Valeria M. Bastos

Gerência de Dispositivos. Adão de Melo Neto

Sistemas de Informação. Sistemas Operacionais

Gerência do Processador. Adão de Melo Neto

Curso: Redes de Computadores

Gerência de Dispositivos. Adão de Melo Neto

Fundamentos de Sistemas Operacionais

Sistemas de Tempo-Real

Redes de Computadores. Fundamentos de Sistemas Operacionais - 2º Período

Sistemas de Computação. Processos e escalonamento

UFRJ IM - DCC. Sistemas Operacionais I. Unidade III Memória Primária. 29/04/2014 Prof. Valeria M. Bastos

LabSO Gerência de Processos. Processos. Porque eu preciso entender este assunto?

William Stallings Arquitetura e Organização de Computadores 8 a Edição

Técnicas Avançadas de Programação

Barramento. Prof. Leonardo Barreto Campos 1

Introdução aos Sistemas Operacionais

Sistemas de Informação. Sistemas Operacionais

Gerência do Processador. Adão de Melo Neto

Capítulo 13: Sistemas de E/S. Operating System Concepts 8 th Edition

Sis i te t mas a O perac a i c o i nai a s um p ouco c d a a h is i tó t ria i. a... SO His i t s ó t r ó ic i o

Neste capítulo será descrito detalhadamente o desenvolvimento do software do sistema FEROS, justificando a escolha das tecnologias envolvidas.

Gerência de recursos - escalonamento global. GERÊNCIA DE RECURSOS Escalonamento Global. Gerência de recursos - escalonamento global

Gerência de Recursos. Gerência do Processador

SSC510 Arquitetura de Computadores 1ª AULA

ENADE 2011 SISTEMAS OPERACIONAIS

ARQUITETURA DE COMPUTADORES

Sistemas Operacionais Aula 15: Sistemas de I/O. Ezequiel R. Zorzal

Sistemas Operacionais. Visão Geral

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini /

6 ESCALONAMENTO DE CPU

Sistemas Operacionais Aula 15: Sistemas de I/O. Ezequiel R. Zorzal

Sistemas Embarcados. Prof. Dr. Fábio Rodrigues de la Rocha. (Apresentação) 1 / 45

Sistemas Operacionais de Tempo Real. Sérgio Campos

Aspectos Construtivos dos Sistemas Operacionais de Tempo Real

AULA Nº 08 SISTEMAS OPERACIONAIS. Threads

Capítulo 11 Estudo de Caso 2: Windows 2000

ARQUITETURA DE SISTEMAS OPERACIONAIS. VISÃO GERAL DE UM SISTEMA OPERACIONAL Prof. André Luís Alves E. M. DR. LEANDRO FRANCESCHINI

Transcrição:

Sistemas Operacionais de Tempo Real Prof. Andre Luis Meneses Silva andreluis.ms@gmail.com

O que é um Sistema Operacional? Provê um ambiente para execução de programas. Abstração de processos para multitarefa/ concorrência Escalonamento Hardware abstraction layer (Hal) (device drivers) Sistema de Arquivos Comunicação

É necessário? Nem sempre

É necessário? Nem sempre Abordagem mais simples: executivo cíclico loop parte da tarefa1 parte da tarefa2 parte da tarefa3 end loop

Executivo Cíclico Vantagens Implementação mais simples Baixo overhead Comportamento previsível Desvantagens Difícil lidar com eventos esporádicos. Tudo deve operar em etapas sequenciais. Código deve ser escalonado manualmente.

Interrupções Alguns eventos não podem esperar pela próxima iteração do loop. Solução: Executivo Cíclico + Interrupção Interrupção Evento do ambiente que demanda atenção Rotina de Interrupção Peça de código executada em resposta a uma interrupção.

Tratando uma interrupção 1. Execução normal do programa 2. Ocorrência da Interrupção 3. Estado do processador é salvo 4. Rotina de tratamento é executada 7. Programa volta a executar normalmente 6. Estado do processador é restaurado 5. Rotina de interrupção termina

Rotina de tratamento de interrupção Grande parte das rotinas de tratamento: Copiam os dados de um periférico para um buffer. Indica a outro hw o código relativo a chegada do dado. Reconhece a interrupção (comunica ao hardware) Algumas vezes, reação mais longa a interrupção é desencadeada fora da rotina de tratamento. Exemplo: Início de um novo processo.

Executivo Cíclico + Interrupção Trabalha bem para muitas aplicações de processamento de sinais. Alguns hardwares dão suporte nativo 56001 Solução barata e previsível: Quando ocorre a interrupção, executa uma única e especifica linha de execução definida pelo usuário. Em geral, copia dados do periférico para um buffer. Não há troca de contexto, não é necessário salvar o ambiente, não há atraso.

Executivo Ciclico + Interrupção Loop principal ainda sequencial. Programador é responsável pelo escalonamento. Escalonamento estático. Eventos esporádicos são tratados lentamente.

Multitarefa cooperativa Alternativa barata Não preemptiva Processos responsáveis por ceder o processador. Processos chamam periodicamente rotinas para ceder a vez a outros processos.

Multitarefa cooperativa Desvantagens: Programador tem de assegurar que a rotina de ceder a vez é chamada frequentemente. Um processo errante pode travar todo o sistema. Alternativa: Multitarefa preemptiva.

Concorrência provida pelo SO Sistema Operacional lida com o escalonamento, programador, com a funcionalidade Escalonamento e funcionalidade são ortognais. Mudanças no Algoritmo podem provocar mudanças no escalonamento.

Concorrência provida pelo SO Sistemas Batch. Submetem jobs e suas entradas. Jobs são executados até serem completados. Saídas coletadas. Submete próximo job. Sistemas de tempo compartilhado. Armazenamento de múltiplos jobs em memória. Quando um está em modo de espera (por exemplo, solicitou I/O), o próximo é disparado. Nenhum job consome todos os recursos. Todos processos possuem igual tempo de execução.

Tempo real não é justo Principal objetivo de um sistema operacional de tempo real é atender seus deadlines. Se você possui cinco tarefas e uma delas é para daqui a uma hora, você trabalha somente nela. Correta distribuição de tempos atrapalha na tarefa de atender deadlines.

Real Time Kernels Que funções um núcleo deve ter? Que tipos existem? Núcleo: comprar ou construir, eis a questão.

Funções de um núcleo Escalonamento Dispatcher Comunicação entre tarefas

Tipos de Núcleo Nano kernel: Uma única thread (apenas task dispatching) Micro kernel Kernel Executivo + escalonamento (multi tasking) + comunicação Blocos privados de memória, I/O e outros serviços (maioria dos kernels comerciais) Sistema Operacional Interface com usuário (shell), gerenciamento de arquivos, segurança.

Propriedades de um RTOS Sistemas de tempo real requerem suporte específico do Sistema Operacional. Sistemas Operacionais convencionais são inadequados.

Propriedades de um RTOS Multitarefa/Escalonamento Provida através de chamadas ao sistema. Não leva tempo em conta Gerenciamento de Interrupção Alcançada através da premissa: prioridade da interrupção > prioridade do processo. Aumenta a reatividade do sistema, mas pode introduzir imprevisibilidade. Nem sempre interrupções são mais prioritarias.

Propriedades de um RTOS Primitivas de sincronização e políticas de recurso compartilhado. Podem causar inversão de prioridades. Não dão suporte a modelagem de um clock de tempo real ou deadline.

Propriedades de um RTOS Características desejáveis de um RTOS: Timeliness Deve prover mecanismo para gerência de tempo Tratamento de tarefas com restrições de tempo explícitas. Previsibilidade Garantir a satisfação do deadline ou notificar quando o mesmo não é alcançável. Tolerância a Falhas Falhas de Hw/Sw não devem travar o sistema.

Propriedades de um RTOS Projetado para altas cargas Todos os cenários devem ser considerados. Manutenibilidade.

Propriedades de um RTOS Timeliness Alcançada com algoritmos apropriados de escalonamento.

Propriedades de um RTOS Previsibilidade Afetada por vários aspectos Características do processador (pipeline, cache, DMA,...). I/O e interrupção Sincronização e Comunicação Arquitetura Gerência de Memória Aplicações Escalonamento.

Aspectos que afetam previsibilidade DMA Transferência de dados entre dispositivos de I/O e memória principal. Problema: DMA e CPU compartilham o mesmo barramento.

Aspectos que afetam previsibilidade 2 Soluções: Roubar ciclos DMA Rouba ciclos da CPU para excutar transferência de dados. A CPU espera até que a transferência é completa. Fonte de Não determinismo. Método de fatias de tempo Cada ciclo de memória é divido igualmente entre os elementos envolvidos. Um para CPU, outro para o DMA. Mais custoso, porém mais previsível.

Cache Para aumentar a previsibilidade do sistema é melhor ter processadores sem cache. Fonte de não determinismo: Cache miss vs cache hit Escrita e leitura Necessário considerar o pior caso.

Interrupções Típico driver <Habilita interrupção do dispositivo> <Aguarda pela interrupção> <transfere dados> Em muitos Sistemas Operacionais Interrupções possuem prioridades mais altas do que outros processos. Qual o delay introduzido por uma interrupção? Quantas interrupções ocorrem durante uma tarefa. Problemas em RTOS Processos podem ser mais importantes que operações de I/O

Solução 1 Desabilitar todas as interrupções, com exceção do timer. Características Todos os periféricos são tratados como tarefas. Transferência de dados através de pooling. Precisão na estimativa de tempo. Nenhuma mudança do kernel é necessária quando adicionando dispositivos. Problemas Degradação do desempenho do processador. Tarefa deve conhecer detalhes do driver.

Solução 2 Desabilitar todas as interrupção, com exceção do timer e tratar dispositivos, por rotinas especiais do kernel ativada pelo timer. Vantagens Atrasos devido interrupção é eliminado Rotinas periódicas do dispositivo podem ser estimadas antecipadamente. Detalhes do hardware encapsulados em rotinas dedicadas. Desvantagens Degradação do desempenho do processador.

Solução 3 Habilitar interrupções externas e reduzir tamanho do driver. Driver habilita apenas tarefas apropriadas para lidar com o dispositivo. A tarefa executa sob controle direto do S.O., assim como qualquer outra tarefa. Tarefas de controle possuem maior prioridade que tarefas do dispositivo.

Solução 3 Vantagens Espera ocupada eliminada Atrasos devido ao tratamento do dispositivo são reduzidos. Os atrasos podem ser estimados com certa precisão.

Chamadas de Sistema Toda chamada de sistema deve ser caracterizada por um tempo de execução conhecido. Cada primitiva do kernel deve ser preemptável. Chamadas não preemptáveis podem atrasar a execução de atividades críticas.

Gerência de Memória Evitar atrasos não determinísticos: Falha de páginas e substituição de páginas podem causar atrasos imprevisíveis. Tipicamente usada Segmentação da memória Particionamento estático Se aplicações requerem quantidades de memória similar. Problemas Flexibilidade reduzida em um ambiente dinâmico. É requerido um balanceamento cuidadosos entre flexibilidade e previsibilidade.

Aplicações Linguagens de programação atuais não possuem expressividade suficiente para representar tempo. Características desejáveis: Ausência de estrutura de dados dinâmicas, recursão e laços de duração precisa. Exemplos de linguagens de tempo real Real Time Concurrent C Real Time Euclid.

Para as próxima aula Micro C Linux. Projetos. Aspectos de Modelagem e Tolerância a Falhas.