Sistemas Operacionais de Tempo Real · Principal objetivo de um sistema operacional de tempo ......
Transcript of Sistemas Operacionais de Tempo Real · Principal objetivo de um sistema operacional de tempo ......
![Page 2: Sistemas Operacionais de Tempo Real · Principal objetivo de um sistema operacional de tempo ... Primitivas de sincronização e ... Processos podem ser mais importantes que ...](https://reader031.fdocuments.in/reader031/viewer/2022022715/5c13da2709d3f26c7c8d6493/html5/thumbnails/2.jpg)
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
![Page 3: Sistemas Operacionais de Tempo Real · Principal objetivo de um sistema operacional de tempo ... Primitivas de sincronização e ... Processos podem ser mais importantes que ...](https://reader031.fdocuments.in/reader031/viewer/2022022715/5c13da2709d3f26c7c8d6493/html5/thumbnails/3.jpg)
É necessário?
Nem sempre
![Page 4: Sistemas Operacionais de Tempo Real · Principal objetivo de um sistema operacional de tempo ... Primitivas de sincronização e ... Processos podem ser mais importantes que ...](https://reader031.fdocuments.in/reader031/viewer/2022022715/5c13da2709d3f26c7c8d6493/html5/thumbnails/4.jpg)
É necessário?
Nem sempre Abordagem mais simples: executivo cíclico
loop
parte da tarefa1
parte da tarefa2
parte da tarefa3
end loop
![Page 5: Sistemas Operacionais de Tempo Real · Principal objetivo de um sistema operacional de tempo ... Primitivas de sincronização e ... Processos podem ser mais importantes que ...](https://reader031.fdocuments.in/reader031/viewer/2022022715/5c13da2709d3f26c7c8d6493/html5/thumbnails/5.jpg)
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.
![Page 6: Sistemas Operacionais de Tempo Real · Principal objetivo de um sistema operacional de tempo ... Primitivas de sincronização e ... Processos podem ser mais importantes que ...](https://reader031.fdocuments.in/reader031/viewer/2022022715/5c13da2709d3f26c7c8d6493/html5/thumbnails/6.jpg)
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.
![Page 7: Sistemas Operacionais de Tempo Real · Principal objetivo de um sistema operacional de tempo ... Primitivas de sincronização e ... Processos podem ser mais importantes que ...](https://reader031.fdocuments.in/reader031/viewer/2022022715/5c13da2709d3f26c7c8d6493/html5/thumbnails/7.jpg)
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
5. Rotina de interrupção termina
6. Estado do processador é restaurado
7. Programa volta a executar normalmente
![Page 8: Sistemas Operacionais de Tempo Real · Principal objetivo de um sistema operacional de tempo ... Primitivas de sincronização e ... Processos podem ser mais importantes que ...](https://reader031.fdocuments.in/reader031/viewer/2022022715/5c13da2709d3f26c7c8d6493/html5/thumbnails/8.jpg)
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.
![Page 9: Sistemas Operacionais de Tempo Real · Principal objetivo de um sistema operacional de tempo ... Primitivas de sincronização e ... Processos podem ser mais importantes que ...](https://reader031.fdocuments.in/reader031/viewer/2022022715/5c13da2709d3f26c7c8d6493/html5/thumbnails/9.jpg)
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.
![Page 10: Sistemas Operacionais de Tempo Real · Principal objetivo de um sistema operacional de tempo ... Primitivas de sincronização e ... Processos podem ser mais importantes que ...](https://reader031.fdocuments.in/reader031/viewer/2022022715/5c13da2709d3f26c7c8d6493/html5/thumbnails/10.jpg)
Executivo Ciclico + Interrupção
Loop principal ainda sequencial. Programador é responsável pelo
escalonamento. Escalonamento estático. Eventos esporádicos são tratados lentamente.
![Page 11: Sistemas Operacionais de Tempo Real · Principal objetivo de um sistema operacional de tempo ... Primitivas de sincronização e ... Processos podem ser mais importantes que ...](https://reader031.fdocuments.in/reader031/viewer/2022022715/5c13da2709d3f26c7c8d6493/html5/thumbnails/11.jpg)
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.
![Page 12: Sistemas Operacionais de Tempo Real · Principal objetivo de um sistema operacional de tempo ... Primitivas de sincronização e ... Processos podem ser mais importantes que ...](https://reader031.fdocuments.in/reader031/viewer/2022022715/5c13da2709d3f26c7c8d6493/html5/thumbnails/12.jpg)
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.
![Page 13: Sistemas Operacionais de Tempo Real · Principal objetivo de um sistema operacional de tempo ... Primitivas de sincronização e ... Processos podem ser mais importantes que ...](https://reader031.fdocuments.in/reader031/viewer/2022022715/5c13da2709d3f26c7c8d6493/html5/thumbnails/13.jpg)
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.
![Page 14: Sistemas Operacionais de Tempo Real · Principal objetivo de um sistema operacional de tempo ... Primitivas de sincronização e ... Processos podem ser mais importantes que ...](https://reader031.fdocuments.in/reader031/viewer/2022022715/5c13da2709d3f26c7c8d6493/html5/thumbnails/14.jpg)
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.
![Page 15: Sistemas Operacionais de Tempo Real · Principal objetivo de um sistema operacional de tempo ... Primitivas de sincronização e ... Processos podem ser mais importantes que ...](https://reader031.fdocuments.in/reader031/viewer/2022022715/5c13da2709d3f26c7c8d6493/html5/thumbnails/15.jpg)
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.
![Page 16: Sistemas Operacionais de Tempo Real · Principal objetivo de um sistema operacional de tempo ... Primitivas de sincronização e ... Processos podem ser mais importantes que ...](https://reader031.fdocuments.in/reader031/viewer/2022022715/5c13da2709d3f26c7c8d6493/html5/thumbnails/16.jpg)
RealTime Kernels
Que funções um núcleo deve ter? Que tipos existem? Núcleo: comprar ou construir, eis a questão.
![Page 17: Sistemas Operacionais de Tempo Real · Principal objetivo de um sistema operacional de tempo ... Primitivas de sincronização e ... Processos podem ser mais importantes que ...](https://reader031.fdocuments.in/reader031/viewer/2022022715/5c13da2709d3f26c7c8d6493/html5/thumbnails/17.jpg)
Funções de um núcleo
Escalonamento Dispatcher Comunicação entre tarefas
![Page 18: Sistemas Operacionais de Tempo Real · Principal objetivo de um sistema operacional de tempo ... Primitivas de sincronização e ... Processos podem ser mais importantes que ...](https://reader031.fdocuments.in/reader031/viewer/2022022715/5c13da2709d3f26c7c8d6493/html5/thumbnails/18.jpg)
Tipos de Núcleo■ Nanokernel:
✦ Uma única thread (apenas task dispatching)■ Microkernel
✦ + escalonamento (multitasking)■ Kernel
✦ + comunicação■ Executivo
✦ 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.
![Page 19: Sistemas Operacionais de Tempo Real · Principal objetivo de um sistema operacional de tempo ... Primitivas de sincronização e ... Processos podem ser mais importantes que ...](https://reader031.fdocuments.in/reader031/viewer/2022022715/5c13da2709d3f26c7c8d6493/html5/thumbnails/19.jpg)
Propriedades de um RTOS
Sistemas de tempo real requerem suporte específico do Sistema Operacional.
Sistemas Operacionais convencionais são inadequados.
![Page 20: Sistemas Operacionais de Tempo Real · Principal objetivo de um sistema operacional de tempo ... Primitivas de sincronização e ... Processos podem ser mais importantes que ...](https://reader031.fdocuments.in/reader031/viewer/2022022715/5c13da2709d3f26c7c8d6493/html5/thumbnails/20.jpg)
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.
![Page 21: Sistemas Operacionais de Tempo Real · Principal objetivo de um sistema operacional de tempo ... Primitivas de sincronização e ... Processos podem ser mais importantes que ...](https://reader031.fdocuments.in/reader031/viewer/2022022715/5c13da2709d3f26c7c8d6493/html5/thumbnails/21.jpg)
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.
![Page 22: Sistemas Operacionais de Tempo Real · Principal objetivo de um sistema operacional de tempo ... Primitivas de sincronização e ... Processos podem ser mais importantes que ...](https://reader031.fdocuments.in/reader031/viewer/2022022715/5c13da2709d3f26c7c8d6493/html5/thumbnails/22.jpg)
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.
![Page 23: Sistemas Operacionais de Tempo Real · Principal objetivo de um sistema operacional de tempo ... Primitivas de sincronização e ... Processos podem ser mais importantes que ...](https://reader031.fdocuments.in/reader031/viewer/2022022715/5c13da2709d3f26c7c8d6493/html5/thumbnails/23.jpg)
Propriedades de um RTOS
Projetado para altas cargas Todos os cenários devem ser considerados.
Manutenibilidade.
![Page 24: Sistemas Operacionais de Tempo Real · Principal objetivo de um sistema operacional de tempo ... Primitivas de sincronização e ... Processos podem ser mais importantes que ...](https://reader031.fdocuments.in/reader031/viewer/2022022715/5c13da2709d3f26c7c8d6493/html5/thumbnails/24.jpg)
Propriedades de um RTOS
Timeliness Alcançada com algoritmos apropriados de
escalonamento.
![Page 25: Sistemas Operacionais de Tempo Real · Principal objetivo de um sistema operacional de tempo ... Primitivas de sincronização e ... Processos podem ser mais importantes que ...](https://reader031.fdocuments.in/reader031/viewer/2022022715/5c13da2709d3f26c7c8d6493/html5/thumbnails/25.jpg)
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.
![Page 26: Sistemas Operacionais de Tempo Real · Principal objetivo de um sistema operacional de tempo ... Primitivas de sincronização e ... Processos podem ser mais importantes que ...](https://reader031.fdocuments.in/reader031/viewer/2022022715/5c13da2709d3f26c7c8d6493/html5/thumbnails/26.jpg)
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.
![Page 27: Sistemas Operacionais de Tempo Real · Principal objetivo de um sistema operacional de tempo ... Primitivas de sincronização e ... Processos podem ser mais importantes que ...](https://reader031.fdocuments.in/reader031/viewer/2022022715/5c13da2709d3f26c7c8d6493/html5/thumbnails/27.jpg)
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.
![Page 28: Sistemas Operacionais de Tempo Real · Principal objetivo de um sistema operacional de tempo ... Primitivas de sincronização e ... Processos podem ser mais importantes que ...](https://reader031.fdocuments.in/reader031/viewer/2022022715/5c13da2709d3f26c7c8d6493/html5/thumbnails/28.jpg)
Cache
Para aumentar a previsibilidade do sistema é melhor ter processadores sem cache.
Fonte de nãodeterminismo: Cache miss vs cache hit Escrita e leitura
Necessário considerar o pior caso.
![Page 29: Sistemas Operacionais de Tempo Real · Principal objetivo de um sistema operacional de tempo ... Primitivas de sincronização e ... Processos podem ser mais importantes que ...](https://reader031.fdocuments.in/reader031/viewer/2022022715/5c13da2709d3f26c7c8d6493/html5/thumbnails/29.jpg)
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
![Page 30: Sistemas Operacionais de Tempo Real · Principal objetivo de um sistema operacional de tempo ... Primitivas de sincronização e ... Processos podem ser mais importantes que ...](https://reader031.fdocuments.in/reader031/viewer/2022022715/5c13da2709d3f26c7c8d6493/html5/thumbnails/30.jpg)
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.
![Page 31: Sistemas Operacionais de Tempo Real · Principal objetivo de um sistema operacional de tempo ... Primitivas de sincronização e ... Processos podem ser mais importantes que ...](https://reader031.fdocuments.in/reader031/viewer/2022022715/5c13da2709d3f26c7c8d6493/html5/thumbnails/31.jpg)
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. Mais intercomunicação entre processos que a primeira
solução. Kernel deve ser modificado quando adicionando
dispositvos.
![Page 32: Sistemas Operacionais de Tempo Real · Principal objetivo de um sistema operacional de tempo ... Primitivas de sincronização e ... Processos podem ser mais importantes que ...](https://reader031.fdocuments.in/reader031/viewer/2022022715/5c13da2709d3f26c7c8d6493/html5/thumbnails/32.jpg)
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.
![Page 33: Sistemas Operacionais de Tempo Real · Principal objetivo de um sistema operacional de tempo ... Primitivas de sincronização e ... Processos podem ser mais importantes que ...](https://reader031.fdocuments.in/reader031/viewer/2022022715/5c13da2709d3f26c7c8d6493/html5/thumbnails/33.jpg)
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.
![Page 34: Sistemas Operacionais de Tempo Real · Principal objetivo de um sistema operacional de tempo ... Primitivas de sincronização e ... Processos podem ser mais importantes que ...](https://reader031.fdocuments.in/reader031/viewer/2022022715/5c13da2709d3f26c7c8d6493/html5/thumbnails/34.jpg)
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.
![Page 35: Sistemas Operacionais de Tempo Real · Principal objetivo de um sistema operacional de tempo ... Primitivas de sincronização e ... Processos podem ser mais importantes que ...](https://reader031.fdocuments.in/reader031/viewer/2022022715/5c13da2709d3f26c7c8d6493/html5/thumbnails/35.jpg)
Gerência de Memória
Evitar atrasos nãodeterminí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.
![Page 36: Sistemas Operacionais de Tempo Real · Principal objetivo de um sistema operacional de tempo ... Primitivas de sincronização e ... Processos podem ser mais importantes que ...](https://reader031.fdocuments.in/reader031/viewer/2022022715/5c13da2709d3f26c7c8d6493/html5/thumbnails/36.jpg)
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.
![Page 37: Sistemas Operacionais de Tempo Real · Principal objetivo de um sistema operacional de tempo ... Primitivas de sincronização e ... Processos podem ser mais importantes que ...](https://reader031.fdocuments.in/reader031/viewer/2022022715/5c13da2709d3f26c7c8d6493/html5/thumbnails/37.jpg)
Para as próxima aula
Micro C Linux. Projetos. Aspectos de Modelagem e Tolerância a Falhas.