Escalonamento de Tarefas

Documentos relacionados
Abordagens de Escalonamento

Sistemas de Tempo-Real

Notas da Aula 11 - Fundamentos de Sistemas Operacionais

Definição. ? Algoritmo de Escalonamento de CPU. ? Algoritmo do S.O. que determina qual o próximo processo a ocupar a CPU

Sistemas Operacionais. Escalonamento de processos

Fundamentos de Sistemas Operacionais

Escalonamento de Processos

Variância dos Tempos de Resposta

Processos. Aula Passada. Aula Passada (2) Ciclos de CPU e de I/O (1)

Processos. Escalonamento de Processos

Processos. Escalonamento de Processos

Sistemas Operacionais

Sistemas Operacionais. Prof. André Y. Kusumoto

Escalonamento em Sistemas de Tempo Real

Sistemas de Tempo-Real

Processos. Escalonamento de Processos

Processos. Objetivos do Escalonamento. Políticas de Escalonamento. Algoritmos de Escalonamento. Maximizar a taxa de utilização da UCP.

Davidson Rodrigo Boccardo

Sistemas Operacionais. Universidade Federal de Minas Gerais. Aula 3. Escalonamento

Sistemas Operacionais. Gerência de Processador

Sistemas Operacionais

Sistemas de Tempo-Real

Fundamentos de Sistemas Operacionais

Notas da Aula 10 - Fundamentos de Sistemas Operacionais

Sistemas Operacionais: Escalonamento de processos

Sistemas Operacionais Gerenciamento de Processos

Conceitos básicos de Tempo Real

Executivo Cíclico. Executivo Cíclico Introdução. Sistemas de Tempo Real: Executivo Cíclico Exemplo. Executivo Cíclico Introdução

Algoritmos de escalonamento

Sistemas de Computação. Processos e escalonamento

Na Aula Anterior... Escalonamento de Processos. Nesta Aula. Escalonamento. Comportamento de um Processo. Historicamente...

SO: Escalonamento. Sistemas Operacionais Flavio Figueiredo (

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

RELÓGIOS. (d) Entre 101 e 99 milisegundos. (e) Entre 102 e 98 milisegundos.

Sistemas Operacionais Aula 7

Infra-estrutura de Software. Escalonamento. Decidindo qual processo vai executar

SISTEMAS OPERACIONAIS. TÁSSIO JOSÉ GONÇALVES GOMES

SISTEMAS EMBARCADOS. Escalonamento e Tempo Real. Prof. André Schneider de Oliveira

Algoritmos de Escalonamento II

Sistemas Operacionais Aula 07: Scheduling da CPU. Ezequiel R. Zorzal

Escalonamento (Scheduling)

Escalonamento do CPU

Escalonamento de Processos

Escalonamento. Decidindo qual processo vai executar. Infra-estrutura de Software

Sistemas Operacionais. Escalonamento de Processos

Multiprocessamento. Escalonamento de Processos: Algoritmos. Escalonamento em POSIX. Escalonamento de Threads. Padrão de Execução dum Processo

Servidores de Aperiódicas

SOP - TADS Escalonamento de Processos

Estimação do Tempo de Resposta no Pior Caso

Sistemas Operativos. Sumário. Escalonador da CPU. Por Prioridades Round Robin. ! Algoritmos de escalonamento

Escalonamento (Tarefas Esporádicas)

Escalonamento de Processos. Estratégia de atribuição do Processador aos Processos

Gerência de Recursos. Gerência do Processador

LICENCIATURA EM COMPUTAÇÃO. Resenha Livro Sistemas Operacionais 4ª edição Capítulo quatro: Gerencia do processador

6 ESCALONAMENTO DE CPU

Sistemas de Informação. Sistemas Operacionais

SEM 544 Desenvolvimento de Produtos Mecatrônicos

Agendador. Agendador de Processos (Escalonador de Processos) Critérios de Agendamento. Agendador

Escalonamento (Algoritmos Clássicos)

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

Bacharelado em Ciência da Computação Sistemas Operacionais

Sistemas de Tempo-Real. Acesso exclusivo a recursos partilhados

Sistemas Operacionais

Lista de Exercícios Escalonamento de CPU. 1. Considere o seguinte conjunto de processos, com o tamanho do tempo de burst de CPU dado em milissegundos:

Sistemas Operacionais

Sistemas de Tempo-Real. Acesso exclusivo a recursos partilhados

Escalonamento da CPU

Escalonamento da CPU

Escalonamento no Unix. Sistemas Operacionais

Escalonamento de Processos Uniprocessador

Fundamentos de Sistemas Operacionais

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

Inversão de prioridades

Sistemas Operacionais

Infra-Estrutura de Software. Escalonamento

Prioridades com Teste de Escalonabilidade

(a) Maior ou igual ao WECT (b) Inferior ao WECT (c) Exatamente igual ao WECT (d) Mais seguro no entanto sem garantias

Questões de Múltipla escolha

Sistemas Operacionais. Universidade Federal de Minas Gerais. Aula 2. Gerência de Processos

Resumo: Sistemas Operacionais Abertos

Temporização (Scheduling) de Processos

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

Seções Críticas em Sistemas de Tempo Real

Escalonamento de Processos Estratégias de Escalonamento de Processos

Aula 10. Engenharia de Sistemas Embarcados. Prof. Abel Guilhermino Tópico: Sistemas de Tempo Real

Alocação de Recursos. Introdução. Sistemas de Tempo Real: Introdução. Modelo de Recursos. Modelo de Recursos. Modelo de Recursos

Alocação de Recursos. Introdução. Sistemas de Tempo Real: Introdução. Modelo de Recursos. Modelo de Recursos. Modelo de Recursos

Escalonamento de Tarefas em sistemas monoprocessados

Estratégias de Escalonamento de Processos

1 Porque o estado de um processo deve ser salvo quando ele deixa a CPU?

Escalonamento. Pedro Cruz. EEL770 Sistemas Operacionais

Sistemas Operacionais

Sistemas Operacionais

Escalonamento de processos

Especificação, Modelação e Projecto de Sistemas Embutidos

SSC0640 Sistemas Operacionais I

Sistemas Operacionais

Sistemas Operativos: Escalonamento de Processos

Transcrição:

Escalonamento de Tarefas Rômulo Silva de Oliveira ebook Kindle, 2018 www.romulosilvadeoliveira.eng.br/livrotemporeal Outubro/2018 1

Escalonamento de Tarefas Sistemas de tempo real são organizados em torno do conceito de tarefas Tarefas podem ser implementadas como: Funções em um executivo cíclico Tratadores de interrupções Threads Forma mais comum: tarefa implementada como thread Pode ser com microkernel ou com kernel complexo Em geral existem muito mais tarefas do que processadores É preciso definir que algoritmo será usado para escolher qual tarefa será executada a seguir No caso de multicore, quais serão executadas 2

Vários objetivos em sistemas de propósito geral Sistemas de Propósito Geral 1/11 Aumentar a capacidade de processamento de dados (throughput) Reduzir os sobrecustos (overhead) Oferecer uma ilusão de paralelismo entre os programas do usuário Reduzir o tempo médio de resposta percebido pelos usuários Esses objetivos são por vezes conflitantes 3

Sistemas de Propósito Geral 2/11 Algoritmo Ordem de Chegada FCFS (First-Come, First-Served) ou FIFO (First-In, First-Out) Fácil implementação: Toda tarefa que fica apta vai para o fim da fila Sempre que o processador fica livre, a tarefa do início da fila executa Tarefa executa até que termine ou que fique bloqueada (sleep, receive, scanf, etc) Impossibilita postergação indefinida de uma tarefa Uma vez que tarefa entrou na fila, ela será executada no futuro Algoritmo intrinsecamente não preemptivo Uma vez que começou a executar, continua até ficar bloqueada Tarefas que precisam de muito processador deixam todas as tarefas na fila esperando Diminui a percepção de paralelismo no sistema Não é um bom algoritmo para sistemas com tarefas interagindo com pessoas É um péssimo algoritmo para sistemas de tempo real Custo de implementação é baixo Acontecem poucos chaveamentos de contexto 4

Sistemas de Propósito Geral 3/11 Algorimo conhecido como SJF (Shortest Job First) Executa antes a tarefa que necessite de menos tempo de processador até ficar bloqueada Na prática sua implementação é muito difícil ou mesmo impossível Determinar antecipadamente quanto tempo de processador é necessário até o próximo bloqueio Minimiza o tempo médio de espera na fila de aptos Relevante em sistemas de propósito geral Pouco usado na prática 5

Sistemas de Propósito Geral 4/11 Algoritmo Fatias de Tempo ou RR (round-robin) Quando uma tarefa torna-se apta ela é inserida no fim da fila Quando o processador fica disponível a primeira tarefa da fila executa O sistema operacional define uma fatia de tempo (quantum) máxima Caso a tarefa não libere o processador antes ao final da fatia de tempo uma interrupção de timer alerta o escalonador salva o contexto da tarefa em execução insere ela no final da fila de aptos coloca para executar a nova primeira tarefa da fila Método é intrinsecamente preemptivo Tira o processador das tarefas mesmo quando elas gostariam de continuar executando Impossibilita a postergação indefinida Uma vez na fila, tarefa será executada tão logo as tarefas na sua frente executem 6

Como definir a duração da fatia de tempo? Um extremo: fatia de tempo é infinita Tarefa jamais irá esgotar sua fatia de tempo Comporta-se como o Ordem de Chegada Outro extremo: uma única instrução de máquina Sistemas de Propósito Geral 5/11 Aparência de paralelismo entre as tarefas será perfeita Tempo de chaveamento de contexto seria muito maior do que a fatia de tempo Escolha do valor para a fatia de tempo é um balanço entre valores pequenos para criar a ilusão de paralelismo entre tarefas valores grandes para reduzir o custo de implementação (overhead) 7

Sistemas de Propósito Geral 6/11 Existem muitas herísticas para definir a fatia de tempo Exemplo: usar a mediana das durações de ciclo de processamento Ciclo de processamento é o tempo de processador necessário para a tarefa entre duas situações de bloqueio Pode-se registrar os valores observados no passado Metade das vezes a fatia de tempo será estourada Metade das vezes a tarefa ficará bloqueada antes de gastar toda a fatia de tempo Quebra as execuções longas com baixo custo de implementação 8

Algoritmo baseado em prioridades Sistemas de Propósito Geral 7/11 Executa antes a tarefa apta com prioridade mais alta Fila de aptos mantida ordenada pelas prioridades Quando uma tarefa fica apta, ela é inserida na fila conforme a sua prioridade Quando o processador fica disponível, tarefa com prioridade mais alta executa Como definir a prioridade de cada tarefa é uma questão complexa Sistemas operacionais de propósito geral: Pode ser feito pelo usuário (por exemplo, nice no Linux) Dentro dos programas (por exemplo, setpriority() no Linux) Neste caso o critério é do usuário Ele define quais programas quer executar antes Pode também ser feita pelo kernel Por exemplo, processos que usam muito tempo de processador tem prioridade reduzida para não monopolizar o recurso 9

Prioridades podem gerar postergação indefinida Sistemas de Propósito Geral 8/11 Uma tarefa com prioridade muito baixa, sempre existe alguma outra tarefa na fila com prioridade mais alta que ela Sistemas operacionais de propósito geral empregam mecanismo chamado de Envelhecimento (aging) A medida que tarefa envelhece na fila, sem executar, sua prioridade é lentamente elevada pelo sistema Um dia sua prioridade torna-se competitiva e ela executa Elevação de prioridade é lenta e gradual, ela tem baixa prioridade O mecanismo de envelhecimento quer apenas evitar que a tarefa fique na fila para sempre sem executar Depois de executar e ficar bloqueada, retorna com sua prioridade original 10

Sistemas de Propósito Geral 9/11 O que fazer quando uma tarefa de prioridade mais baixa está executando e uma tarefa de prioridade mais alta torna-se apta? Prioridades Preemptivas: Contexto da tarefa de baixa prioridade é salvo Ela é re-inserida na fila de aptos Tarefa de alta prioridade assume o processador Esta é a forma natural de implementar prioridades, pois respeita a atribuição de prioridades feita pelo sistema e/ou o usuário 11

Prioridades Não Preemptivas Sistemas de Propósito Geral 10/11 Quando tarefa é colocada para executar, ela permanece até que faça uma chamada de sistema e fique bloqueada Tarefa de alta prioridade liberada (ficou apta) é inserida na fila de aptos Ela não preempta a tarefa de baixa prioridade em execução Prioridades não preemptivas geram inversão de prioridades Tarefa de alta prioridade na fila de aptos espera pela tarefa de baixa prioridade em execução Tal situação não é desejada em sistemas operacionais de propósito geral e muito menos em sistemas de tempo real 12

Sistemas de Propósito Geral 11/11 Maioria dos sistemas operacionais de propósito geral emprega uma mistura dos métodos básicos apresentados: Múltiplas Filas Tipicamente são usadas prioridades para permitir ao sistema e ao usuário definirem o que deve ser executado antes Diversas tarefas podem receber a mesma prioridade É necessário um algoritmo para ordenar tarefas que possuem a mesma prioridade. Tipicamente usada fatia de tempo Alguns sistema pequenos usam ordem de chegada Cada sistema operacional de propósito geral emprega uma solução de escalonamento ligeiramente diferente dos demais Além de permitir um certo nível de configuração por parte do administrador 13

Escalonamento em Sistemas de Tempo Real 1/2 Ênfase do escalonamento está no atendimento dos requisitos temporais: deadlines Executivo cíclico: Ordem de execução das tarefas expressa no próprio código do executivo Solução não preemptiva Laço principal com tratadores de interrupção: Tratadores de interrupção possuem prioridade preemptiva mais alta que o laço principal Entre interrupções o hardware define uma ordem de prioridade Ordem pode ser definida pelo software durante a inicialização do sistema Interrupção de mais alta prioridade ocorre durante tratador de mais baixa prioridade? - Em alguns sistemas todos os tratadores de interrupção executam com interrupções desabilitadas - Em outros sistemas é permitido que uma interrupção de mais alta prioridade interrompa o tratador em execução - Tratadores de interrupção podem ou não ser preemptados, depende do sistema 14

Restante do capítulo: Escalonamento em Sistemas de Tempo Real 2/2 Escalonamento das tarefas quando um microkernel ou kernel é usado Tarefas de tempo real são implementadas como threads Algoritmo preferido: prioridades preemptivas desenvolvedor gerencia o uso do processador Como definir as prioridades? 15

Aplicação composta por tarefas Estados de uma tarefa: Liberada (pronta para executar, apta, ready) Executando (running) Suspensa esperando pela próxima ativação Outros estados serão acrescentados mais adiante Em geral escalonamento é preemptivo Tarefas possuem prioridade fixa definida em projeto Garantia exigirá ainda Tarefas periódicas ou esporádicas Tempo máximo de computação conhecido Teste de escalonabilidade apropriado Prioridades Fixas 1/2 16

Rate Monotonic RM (Taxa Monotônica) Prioridade mais alta para a tarefa com período menor Prioridade fixa Deadline Monotonic DM (Deadline Monotônico) Prioridade mais alta para a tarefa com deadline relativo menor Prioridade fixa Igual ao RM quando D = P Importância Prioridade mais alta para a tarefa mais importante da aplicação Prioridade fixa Outras Prioridades Fixas 2/2 17

Prioridades Variáveis 1/3 Cada tarefa recebe uma prioridade que varia ao longo do tempo Prioridade leva em conta informações relativas à execução Diferentes jobs da mesma tarefa podem receber prioridades diferentes Cada Job em particular pode receber prioridade fixa ou variável A escala de execução só é conhecida durante a execução Necessário Teste de Escalonabilidade Para saber antes se todos os deadlines estão garantidos ou não 18

EDF Earliest Deadline First Inversamente proporcional ao deadline absoluto Ótimo em relação aos critérios de prioridades variáveis LSF (LST ou LLF) Least Slack First Inversamente proporcional ao tempo livre (laxity ou slack) Ótimo em relação aos critérios de prioridades variáveis Overhead maior que EDF FCFS First Come First Served Inversamente proporcional ao tempo de espera por serviço Não é ótimo com respeito ao cumprimento de deadlines Prioridades Variáveis 2/3 EDF é o mais usado 19

Prioridades Variáveis 3/3 Least Slack First - LSF Quanto menos tempo livre (slack), maior a prioridade LSF é ótimo quando EDF for ótimo Prioridade das tarefas na fila de aptos aumenta com passar do tempo Prioridade da tarefa em execução mantém-se constante Gera número maior de chaveamento de contextos que EDF Maior overhead Não apresenta vantagens face a EDF 20

Prioridades + Teste de Escalonabilidade Cada tarefa recebe uma prioridade Escalonamento em geral é preemptivo Teste realizado antes da execução determina escalonabilidade Teste considera como são as tarefas (modelo de tarefas) - Periódica, esporádica, D<=P, bloqueios, etc Teste considera forma como prioridades são atribuídas Validade do teste é demonstrada como teorema Complexidade do teste depende do modelo de tarefas Na execução: Escalonador dispara as tarefas conforme as prioridades 21

Utilização de uma tarefa: Teste baseado na Utilização Tempo máximo de computação dividido pelo período Exemplo: T1 tem C1=12 e P1=50, então U1 = 12 / 50 = 0.24 Utilização do sistema Somatório da utilização de todas as tarefas Dado Um modelo de tarefas Uma política de atribuição de prioridades Existe um limiar de utilização para o processador, de tal sorte que: Se a utilização do processador for menor que o limiar Então jamais um deadline será perdido Limiar demonstrado como teorema 22

Supondo um conjunto de n tarefas independentes e periódicas EDF como política de atribuição de prioridades Liu & Layland, 1973 Prioridades Variáveis Teste para EDF Se D=P, sistema é escalonável quando: Permite usar 100% do processador mantendo os deadlines Teste exato N i 1 Ci ( P i ) 1 Se D<P, sistema é escalonável quando: Teste suficiente N i 1 C ( D i i ) 1 Para D arbitrário, sistema é escalonável quando: Teste suficiente N i 1 Ci ( min( D i, ) Pi) 1 23

Prioridades Variáveis Teste para EDF Existe grande variedade de testes de escalonabilidade para EDF Testes mais complexos São menos pessimistas Porém requerem esforço computacional maior EDF As prioridades de todas as tarefas aptas e em execução aumentam - de igual modo com o passar do tempo Tarefa possui prioridade variável Mas um job em particular possui prioridade fixa 24

RM Rate Monotonic (Taxa Monotonica) Quanto menor o período, mais alta a prioridade Ótimo quando Tarefas são periódicas Deadline é sempre igual ao período Exemplo: Tarefas T1 T2 T3 Períodos P1=30 P2=40 P3=50 Prioridades p1=1 p2=2 p3=3 Cuidado! Número menor indica prioridade maior Muitas vezes é o contrário Prioridade Fixa Teste para RM 25

Prioridade Fixa Teste para RM Utilização de uma tarefa: Tempo máximo de computação dividido pelo período Ui = Ci / Pi T1 tem C1=12 e P1=50, então U1 = C1 / P1 = 12 / 50 = 0.24 Liu & Layland, 1973 Teste para Rate Monotonic, sistema é escalonável se: N i 1 C ( P i i ) N(2 1/ N 1) Para N=1 utilização máxima é 100% Para N grandes utilização máxima tende para 69.3% Baseado no conceito de Instante Crítico Teste é suficiente mas não necessário 26

N Limiar de Utilização 1 100.0% 2 82.8% 3 78.0% 4 75.7% 5 74.3% 10 71.8% infinito 69.3% Prioridade Fixa Teste para RM 27

Exemplo: T1 T2 T3 Períodos P1=16 P2=40 P3=80 Computação C1=4 C2=5 C3=32 Utilização U1=0.250 U2=0.125 U3=0.400 Prioridades p1=1 p2=2 p3=3 Utilização total é 0.775, abaixo do limite 0.780 Prioridade Fixa Teste para RM T1 4 4 4 4 T2 5 5 T3 7 12 4 3 6 0 16 32 40 48 58 28

Prioridade Fixa Teste para RM Exemplo: T1 T2 T3 Períodos P1=2 P2=4 P3=8 Computação C1=1 C2=1 C3=2 Utilização U1=0.500 U2=0.250 U3=0.250 Prioridades p1=1 p2=2 p3=3 Utilização total é 1, acima do limiar 0.780, mas conjunto é escalonável T1 T2 T3 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 29

Limiar Hiperbólico (Hyperbolic Bound) Bini & Buttazzo & Buttazzo, 2001 Prioridade Fixa Teste para RM Tarefas independentes, P=D, Rate Monotonic Se i=1 N (C i / P i + 1) 2 Então uma instância de cada tarefa está garantida a cada período Suficiente mas não necessário Menos pessimista que o teste de Liu & Layland,1973 30

Testes baseados em utilização Não são gerais Não são exatos Mas são rápidos, O(N) Teste baseado na Utilização Resumo Exemplo de teste necessário mas não suficiente para este modelo de tarefas N i 1 C ( P i i ) 1 31

Prioridade Fixa Deadline Monotonic Deadline monotonic (DM) será ótimo se qualquer conjunto de tarefas Q, o qual é escalonável por uma política de atribuição de prioridades W, também for escalonável por DM Pode-se provar a optimalidade de DM através da transformação das prioridades de Q (atribuidas por W) até que a ordenação seja aquela do DM Desde que cada passo da transformação preserve a escalonabilidade Leung & Whitehead, 1982 32

Questão Prática: Escalonabilidade EDF versus RM 1/1 tarefas periódicas C i P i D i tarefa A 10 20 20 tarefa B 25 50 50 tarefa A - tarefa B - A,B A A B 0 10 20 30 40 50 60 (a) Escalonamento EDF t A,B A A B perda de deadline de B 0 10 20 30 40 50 60 (b) Escalonamento RM t Figura 2.6: Escalas produzidas pelo (a) EDF e (b) RM 33

Questão Prática: Sobrecarga EDF versus RM 1/6 T1: C1=1 P1=D1=2 T2: C2=1 P2=D2=4 T3: C3=2 P3=D3=8 Execução normal com EDF T1 T2 T3 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 34

Questão Prática: Sobrecarga EDF versus RM 2/6 T1: C1=1 P1=D1=2 T2: C2=1 P2=D2=4 T3: C3=2 P3=D3=8 Sobrecarga devido a falha do projeto com EDF T1 T2 T3 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 35

Questão Prática: Sobrecarga EDF versus RM 3/6 T1: C1=1 P1=D1=2 T2: C2=1 P2=D2=4 T3: C3=2 P3=D3=8 Sobrecarga devido a falha do projeto com EDF T1 T2 T3 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 36

Questão Prática: Sobrecarga EDF versus RM 4/6 T1: C1=1 P1=D1=2 T2: C2=1 P2=D2=4 T3: C3=2 P3=D3=8 Sobrecarga devido a falha do projeto com EDF T1 T2 T3 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 37

Questão Prática: Sobrecarga EDF versus RM 5/6 T1: C1=1 P1=D1=2 T2: C2=1 P2=D2=4 T3: C3=2 P3=D3=8 Execução normal com RM T1 T2 T3 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 38

Questão Prática: Sobrecarga EDF versus RM 6/6 T1: C1=1 P1=D1=2 T2: C2=1 P2=D2=4 T3: C3=2 P3=D3=8 Sobrecarga devido a falha do projeto com RM T1 T2 T3?? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 39

Questões Práticas Prioridades Variáveis versus Fixas Comentários Implementação é mais complexa do que com prioridade fixa Requer um kernel que aceita prioridades variáveis Precisa recalcular o deadline absoluto para cada job Overhead de execução pode ser elevado caso seja necessária reordenação dinâmica da fila de aptos (depende do algoritmo) Instabilidade face a sobrecargas Não é possível saber antecipadamente quais tarefas vão perder deadline Escalonabilidade é superior em EDF do que em prioridade fixa Qualquer sistema escalonável com prioridade fixa também será escalonável com EDF O contrário não é verdadeiro Entretanto, prioridade fixa é mais usado na prática 40

Sumário Escalonamento em Sistemas de Propósito Geral Escalonamento em Sistemas de Tempo Real Prioridades Fixas Prioridades Variáveis Testes Baseados em Utilização Questões Práticas 41