You are on page 1of 4

Escalonamento em Sistemas de Tempo Real

Lucas Schiolin Silveira, Mateus Henrique Sabino, Victor Debone Mattos. UNESP - Universidade Estadual Paulista Jlio de Mesquita Filho Rio Claro, So Paulo, Brasil

Resumo Neste trabalho, abordada uma viso geral sobre algoritmos de escalonamento para sistemas de tempo real. Para isso, inicialmente, apresentada uma definio de sistema de tempo real. A seguir, definido em linhas gerais, o algoritmo de escalonamento para esse tipo de sistema. Ento, so apresentados alguns algoritmos de escalonamento. Por fim, alguns exemplos de sistemas de tempo real so apresentados, a fim de contextualizar o trabalho.

I. INTRODUO Sistemas de tempo real esto presentes em toda parte, controlando desde leitores de DVD at a navegao de aeronaves. Esses sistemas no podem falhar com frequncia, em outros casos, nunca podem falhar e por isso o tempo de execuo dos processos se torna fundamental para os algoritmos de escalonamento. Nesse artigo sero abordados alguns desses algoritmos para sistemas de tempo real, definindo suas classificaes e implementaes.

As tarefas podem ser classificadas tambm como peridicas ou no-peridicas. As peridicas so recorrentes em intervalos regulares e as no-peridicas ocorrem de modo imprevisvel [1]. H, em termos gerais, duas categorias em que sistemas de tempo real podem ser classificados: tempo real crtico (hard STR) e tempo real no crtico (soft STR). Ambos esto relacionados com o cumprimento de prazos dos processos, sendo que no primeiro os prazos absolutos devem ser cumpridos e qualquer falha nesse ponto caracteriza um erro grave. No segundo, o descumprimento de um prazo tolervel, embora no desejvel. [1] Pode-se citar como exemplos de sistema de tempo real crtico: um sistema embarcado de navegao de uma aeronave (Figura 1) ou um sistema embarcado de proteo de linhas de alta tenso. Em ambos os casos qualquer falha no sistema pode causar danos irreversveis. Nos sistemas de tempo real no crtico pode-se citar, como exemplo, o funcionamento de um leitor de DVD, no qual se houver algum atraso do tempo de execuo de um processo no causaria maiores danos.

II. SISTEMAS DE TEMPO REAL O sistema de tempo real (STR) aquele onde o tempo tem funo essencial. Em geral, os dispositivos geram estmulos e o computador deve reagir a eles dentro de um intervalo de tempo predefinido. [1] Nesses sistemas os processos podem ser referenciados como tarefas e essas possuem certas restries e qualidades temporais. Todas as tarefas possuem os seguintes atributos bsicos: um prazo de entrega (deadline), um tempo de execuo e um tempo de release. O deadline definido como quando a tarefa deve terminar, o tempo de execuo quanto tempo tal tarefa deve ser executada e o tempo de release quando a tarefa deve ser executada [2].

Figura 1. STR presente nos sistemas embarcados de navegao de aeronaves

III. ESCALONAMENTO EM SISTEMAS DE TEMPO REAL Esta seo descreve, em linhas gerais, escalonamento de processos em sistemas de tempo real. A. Definio Os algoritmos podem ser estticos ou dinmicos. Os algoritmos estticos decidem antes da execuo do sistema, mas s funciona quando se tem prvia informao da tarefa a ser realizada e os prazos a serem cumpridos, pois assim atribuem antecipadamente um prioridade fixa a cada processo. Os algoritmos dinmicos o fazem em tempo de execuo, e no necessitam de informaes prvias da tarefa a ser executada. [1] Antes de realizar o escalonamento, necessrio verificar o conjunto de processos de tempo real so escalonveis. Isso pode ser feito da seguinte forma: se o processo i tiver um perodo (time slice) de Pi ms e exigir Ci ms da CPU para tratar cada evento, o sistema ser escalonvel, se e somente se o

1) Escalonamento por taxa monotnica (RMS) Esse algoritmo tambm conhecido como rate monotonic scheduling (RMS). Foi proposto por Liu e Layland, em 1973. um algoritmo esttico, alm de ser preemptivo. O algoritmo RMS segue algumas premissas, que facilitam as anlises de escalonabilidade [1][5]: 1. As tarefas so perodicas e independentes; 2. O deadline de cada tarefa coincide com seu perodo (Di = Pi); 3. O tempo para computar de cada tarefa (Ci) conhecido e constante; 4. O tempo de troca entre as tarefas entendido com nulo. As premissas 1 e 2 restringem o uso desse algoritmo na prtica, mas so fundamentais. O RMS atribui prioridades aos processos dependendo do nmero de vezes que eles sero executados por segundo, sendo que quanto maior a freqncia de execuo, maior a prioridade [4]. Ou seja, a poltica de atribuio de prioridades das tarefas do conjunto faz com que as prioridades vo decrescendo conforme os perodos das tarefas vo aumentando, e essas prioridades so fixas (uma vez atribudo, no sero alteradas) [5]. Por esse motivo, o RMS dito um algoritmo de escalonamento esttico. Por exemplo, um processo que tem que executar a cada 30ms (33 vezes/s) recebe prioridade 33, enquanto outro que deve ser executado a cada 40ms (25 vezes/s), recebe prioridade 25. Assim, conclumos que as prioridades so lineares em relao freqncia (nmero de vezes por segundo, que o processo executa), e por isso chamado monotnico. Em tempo de execuo, o escalonador sempre executa o processo que estiver pronto, e com prioridade mais alta [1].

em que m o nmero de processos do conjunto. O processador tambm pode dar suporte para a preempo, uma pausa na execuo de um algoritmo para a inicializao de outro algoritmo com maior prioridade. Quando isso ocorre o estado do processo em funcionamento no processador salvo e o outro processo inicia, trocando de contexto, causando um pequeno atraso. Ento no final da execuo do processo mais prioritrio, o processador retorna o estado do processo pausado e continua sua execuo. B. Algoritmos de Escalonamento A seguir, sero apresentados alguns algoritmos de escalonamento utilizados em sistemas de tempo real, descrevendo brevemente seu funcionamento, suas vantagens e desvantagens. Todos os algoritmos apresentados seguem o modelo de escalonamento baseado em tarefas, onde levado em considerao os atributos do escalonamento [3].

Figura 2. Exemplo de funcionamento do RMS [1].

Na Figura 2, temos um exemplo onde o processo A (prioridade 33) mais prioritrio que B (prioridade 25), que por sua vez mais prioritrio que C (prioridade 20).

possvel perceber claramente que, quando um processo mais prioritrio que aquele que est executando entra em estado de pronto, o escalonador remove o atual e coloca esse processo, e que processos com menor prioridade devem esperar um momento em que a CPU fica ociosa para executar [1]. Basicamente, o uso de prioridades estticas s funciona se a ocupao do CPU no for muito grande. Liu e Layland demonstraram que, em qualquer sistema de tempo real, garantido que o RMS funcione se:

Para o EDF, o teste de escalonabilidade padro (apresentado anteriormente) suficiente [5]. Segundo o teste, para esse exemplo teremos que a utilizao ser de 97,5% (0,500 + 0,375 + 0,100, para os processos A, B e C, respectivamente) [1].

IV. EXEMPLOS DE SISTEMAS DE TEMPO REAL A seguir, so apresentados alguns exemplos de sistemas de tempo real. 1) VxWorks o sistema mais utilizado no mundo, com mais de 300 milhes de aparelhos (2012) utilizando ele. Ele mantm a compatibilidade com as verses anteriores e com padres POSIX. Para escalonamento ele utiliza Round Robin para acomodar processos em tempo real ou no. Utiliza a proteo de memria baseada na delegao de espao na MMU. Tem menor tempo de troca de contexto pois ao salvar e recuperar os estados dos processos congelados o VxWorks s utiliza os registradores relevantes para isso. 2) RTLinux um microkernel RTOS que roda o Linux preemptivamente, ento ele mantm os processos do Linux congelados quando existem requisies de tempo real para serem executadas. O RTLinux tambm emula as interrupes do hardware para o software. As tarefas de tempo real utilizam memria esttica sem proteo de endereos, as outras tarefas do SO so executadas normalmente no Linux. 3) LynxOS O LynxOS fornece funcionalidades adicionais de um RTOS por meio de plugins do Kernel, como pilha de redes(TCP/IP) e sistemas de arquivo. O OS ainda fornece proteo de memria e suporte para compiladores e debuggers.

2) Escalonamento prazo mais curto primeiro (EDF) Tambm conhecido como Earliest Deadline First (EDF), um algoritmo dinmico que no requer que os processos sejam peridicos, como no RMS. O escalonador mantm uma lista de processos executveis, e seus prazos de execuo. Essa lista ordenada pelo vencimento dos prazos, e o algoritmo executa o primeiro processo da lista (aquele que tem menor prazo, mais prximo de vencer, ou seja, com deadline mais curto) [1]. Caso um novo processo entre em estado de pronto, o escalonador ir verificar o seu prazo de execuo, e caso ele tiver um prazo menor que o processo que est executando atualmente, ocorre a preempo e esse novo processo passa a ser executado pela CPU [1].

Figura 3. Exemplo de funcionamento do EDF [1].

Na Figura 3, possvel observar um exemplo de funcionamento do EDF, assim como no RMS. Os perodos so os mesmos do exemplo da Figura 1, do RMS, mas agora A precisa de 15ms de CPU, e no mais de 10ms. Vemos que o RMS falha, pois segundo seu esquema esttico de prioridades, ele no consegue escalonar o processo C no prazo necessrio. Isso no acontece com o EDF: em t=30, o prazo de A2 vence em t=60, enquanto o prazo de C1 vence em t=50, e assim o processo C escalonado em tempo [1].

V. CONCLUSO Como mencionado anteriormente, o tempo de execuo de processos o fator fundamental em um sistema de tempo real, desse modo, importante escolher um algoritmo de escalonamento compatvel com o tipo de sistema a ser construdo, seja esse crtico ou no-crtico.

Vimos tambm que essa escolha dependem do conjunto de processos de tempo real. Caso for conhecido os tempos de CPU necessrios para cada processo, e estes forem constantes, bastaria usar o algoritmo RMS, caso contrrio o algoritmo EDF seria utilizado.

REFERNCIAS
[1] TANENBAUM, Andrew S. Sistemas operacionais modernos: traduo Ronaldo A.L. Gonalves. Lus A. Consularo. Luciana do Amaral Teixeira; reviso tcnica Raphael Y. de Camargo. - 3. ed. - So Paulo : Pearson Prentice Hall. 2009. [2] LINDH, Frederik. OTNES, Thomas. WENNERSTRM, Jessica. Scheduling Algorithms for Real-Time Systems. Mlardalens University, Sweden. [3] AMORIM, Vicente. Escalonamento de Sistemas de Tempo Real. Universidade Federal de Ouro Preto, Departamento de Computao. Outubro/2002. Disponvel em <http://www.decom.ufop.br/vicente/disciplinas/2012_2/bcc722/Escalonament oSistemasTempoReal.pdf>. [4] Sistema operacional de tempo real. Disponvel em <http://pt.wikipedia.org/wiki/Sistema_operacional_de_tempo-real>. [5] FARINES, Jean-Marine, et al. Sistemas de tempo real. Departamento de Automao de Sistemas, UFSC. Florianpolis. Julho/2000.