Você está na página 1de 27

Escalonamento/Scheduling em

Tempo Real
Sistemas Operativos

2023/2024

João Pereira
CLAV-256
joao.pedro.pereira@uevora.pt

Baseado nos slides do Capítulo 10 (Multiprocessor and Real-Time Scheduling) do livro Operating Systems:
Internals and Design Principles, 7th Edition, Dave Bremer, Otago Polytechnic, N.Z., 2008, Prentice Hall.
Sistemas real-time

● Alguns exemplos de sistemas real-time


○ Controlo de equipamento de laboratório, controlo de processos em unidades industriais, Robótica,
controlo de tráfego aéreo, telecomunicações, controlo e comando de sistemas militares
● O sistema operativo, e em particular, o escalonador, é, talvez, o componente
mais importante
● O bom funcionamento do sistema depende não só dos resultados lógicos da
computação, mas também do instante de tempo em que os resultados são
produzidos
● Tarefas/tasks ou processos tentam controlar ou reagir a eventos externos ao
sistema
● Estes eventos acontecem em “tempo real” e as tarefas devem conseguir
responder em tempo útil

2
Tarefas Real-Time: Hard and Soft

Tarefas hard real-time Tarefas soft real-time

● tarefa que se deve respeitar a sua deadline ● Tem um deadline desejável, mas não
○ prazo de execução obrigatório

● de outra forma, vai causar problemas ou ● Ainda assim, faz sentido escalonar o
erros fatais no sistema processo e terminar a tarefa, mesmo que
tenha ultrapassado o seu deadline

3
Tarefas periódicas e não periódicas

Tarefas periódicas

● Requisitos devem ser descritos como:

○ 1x por período T
○ exatamente T unidades de intervalo

Tarefas não periódicas

● Têm um deadline para o início ou fim


● Podem ter restrições

4
Características de Sistemas Real Time

Sistemas operativos de Real Time devem incluir as seguintes características:

● Determinismo
● Responsivness
● Controlo por parte dos utilizadores
● Fiabilidade
● Operação “fail-soft”

5
Determinismo

● Relacionado com o tempo de atraso do sistema operativo desde que a


interrupção acontece até que é identificada (começar a tratar uma
interrupção)

● Operações são executadas em instantes de tempo fixos e


predeterminados, ou em intervalos de tempo fixos pré-determinados
○ Quando vários processos estão a competir por vários recursos e por tempo de processador,
nenhum sistema é 100% determinista

6
Responsiveness

● Preocupa-se com o tempo que o sistema operativo demora a responder a


uma interrupção, depois da interrupção ser identificada

● Juntamente com o determinismo, compõe o tempo de resposta para


eventos externos
○ Crítico para sistemas real-time que devem satisfazer requisitos de timing, impostos por
indivíduos, devices e fluxos de dados externos ao sistema

7
Controlo por parte dos utilizadores

● Em inglês User Control


● Mais abrangente num sistema real-time do que em sistemas operativos
comuns
○ É essencial que o utilizador possa ter um “controlo fino” sobre as prioridades das tarefas

● Utilizadores devem ter a capacidade de fazer a distinção entre hard e soft


tasks, bem como estabelecer prioridades relativas entre estas classes
● Pode permitir ao utilizador especificar características como:
○ paging, swapping, prioridades, quais os processos que devem estar sempre residentes em
memória, algoritmos de transferência de dados de/para discos

8
Fiabilidade/Reliability

● Mais importante em sistemas real-time do que em sistemas não real-time


○ Sistemas não real-time podem simplesmente reiniciar ou bloquear numa mensagem de erro

● Sistemas críticos:
○ Sistemas real-time respondem a eventos em tempo real

○ Perda de desempenho podem ter consequências catastróficas:

■ perdas financeiras

■ danos de equipamento

■ perda de vidas

9
Operações Fail-Soft

● Característica que se refere à capacidade de um sistema falhar de forma a


preservar o máximo possível de capacidades e dados
● Aspecto importante é a estabilidade
○ um sistema realtime é estável se o sistema cumprir os deadlines das tarefas mais críticas e
de maior prioridade, mesmo que os deadlines das tarefas menos críticas, nem sempre
sejam cumpridas

10
Real-Time Scheduling
Round-robin Preemptive Scheduler

Nesta solução, o scheduling time não é aceitável para aplicações de tempo-real

11
Real-Time Scheduling
Priority-driven nonpreemptive scheduler

Esta abordagem também não é aceitável

12
Real-Time Scheduling

Priority-driven preemptive scheduler on preemption points

13
Real-Time Scheduling

Immediate preemptive scheduler

14
Deadline Scheduling

● Sistemas operativos em tempo real são desenhados com o objetivo de


iniciarem tarefas real-time o mais rápido possível, e dar prioridade ao
tratamento rápido de interrupções e despacho de tarefas (task dispatching)
● Aplicações real-time não estão, normalmente preocupadas com velocidade
de execução “pura”, mas completar (ou iniciar) as tarefas nos seus
deadlines
● Prioridades fornecem uma ferramenta “básica”/”crude”
○ não capturam os requisitos de “completion” (ou início) no instante de tempo mais adequado
(deadline)

15
Perfil de execução de duas tarefas periódicas

16
Scheduling de tarefas periódicas real-time com completion deadlines

Representação da
tabela do slide
anterior

B1 não termina
antes do deadline

Técnicas de
Scheduling A1 não termina
antes do deadline

Tanto Ax como Bx
terminam antes do
deadline

17
Perfil de execução de 5 tarefas não periódicas

18
Scheduling de tarefas real-time não periódicas com “starting deadlines”

Representação da
tabela do slide
anterior

Enquanto A
executa, B perde o
deadline

Todos os processos
satisfazem os
Técnicas de
deadlines, mas temos
Scheduling
que saber a priori que
processos vão entrar

Scheduling
uniprocessador, não é
adequado.
B e E perdem os 19
deadlines
Rate Monotonic Scheduling (RMS)
● Método promissor para resolver conflitos de escalonamento multitarefa
para tarefas periódicas
○ Tarefas: alta prioridade = período (T) mais curto = frequência (Rate) mais elevada

20
Diagrama temporal de tarefas periódicas

● Utilização do processador pela tarefa P

21
Factor de utilização de tarefas periódicas
Para garantir que todas as tarefas periódicas executam com sucesso

● General upper-bound (usando um algoritmo de scheduling perfeito)

● RMS upper-bound dado pelo Liu and Layland’s upper bound

22
Valores do RMS Upper Bound

23
Factor de utilização de tarefas periódicas

● Hyperbolic bound
○ Menos pessimista que o Liu and Layland’s upper bound para RMS
■ ou seja, podemos aceitar mais tarefas

■ Utilização do processador por uma tarefa i: Ui = Ci / Ti

○ Mais informação no artigo original:

http://retis.sssup.it/~giorgio/paps/2003/ieeetc-hb.pdf

24
Inversão de prioridade
● Pode ocorrer num modelo de scheduling preemptivo, baseado em
prioridades
○ caso mais conhecido aconteceu na missão Mars Pathfinder:
■ https://www.rapitasystems.com/blog/what-really-happened-software-mars-pathfinder-s
pacecraft
● Ocorre em situações onde o sistema força uma tarefa de alta prioridade a
esperar por uma tarefa de baixa/média prioridade
○ Uma tarefa de baixa prioridade está a “bloquear” (usar) um recurso necessário à tarefa de
alta prioridade, bloqueando-a; enquanto uma tarefa de média prioridade utiliza o CPU

● Soluções:
○ herança de prioridades
■ A tarefa que está a bloquear o recurso herda a prioridade da tarefa que o quer utilizar
○ random boosting
■ Aleatoriamente aumenta a prioridade de tarefas a bloquear recursos
■ Usado no Windows 25
RMS - exemplo

É possível fazer o scheduling dos seguintes processos, usando RMS?

Período Tempo de computação


Ti Ci

P1 4 1

P2 6 2

P3 8 3

26
Resumo

● Um processo real-time é executado em conjunto com processos, funções ou


conjuntos de eventos externos ao computador
○ devem cumprir um ou mais deadlines para conseguirem interagir de forma correcta e eficaz
com o ambiente externo

● Um sistema operativo real-time é aquele que é capaz de gerir processos


real time
● Factor chave: cumprir deadlines
● Algoritmos que dependem fortemente de preemption e da reação a
deadlines relativos são apropriados neste contexto

27

Você também pode gostar