• Nenhum resultado encontrado

Aula 11. Engenharia de Sistemas Embarcados. Prof. Abel Guilhermino Tópico: Sistemas Operacionais Embarcados

N/A
N/A
Protected

Academic year: 2021

Share "Aula 11. Engenharia de Sistemas Embarcados. Prof. Abel Guilhermino Tópico: Sistemas Operacionais Embarcados"

Copied!
45
0
0

Texto

(1)

Aula 11

Engenharia de Sistemas Embarcados

Prof. Abel Guilhermino

(2)

Introdução

Introdução

• No contexto geral, o Sistema

Operacional (SO) é uma

camada complexa de

software residente entre os aplicativos e o hardware.

(3)

Tipos de Sistemas Operacionais

Tipos de Sistemas Operacionais

• Batch (de lote):

– todos os programas a executar eram colocados em uma fila, com seus dados e demais informações para execução. Ex: OS/360 e VMS

• Rede:

– deve possuir a capacidade de oferecer às aplicações locais recursos que estejam localizados em outros computadores recursos que estejam localizados em outros computadores da rede.

• Distribuído:

– Em um SO distribuído, os recursos de cada máquina estão disponíveis globalmente, de forma transparente ao usuário. Ao lançar uma aplicação o usuário interage com a janela, mas não sabe onde ela está executando ou armazenando os arquivos: o sistema é quem decide de forma transparente. Ex: Amoeba, Clouds.

(4)

Tipos de Sistemas Operacionais

Tipos de Sistemas Operacionais

• Multi-usuário:

– Deve suportar a identificação do “dono” de cada recurso dentro do sistema (arquivos, processos, conexões, etc) e impor regras de controle de acesso para impedir o uso desses recursos por usuários não autorizados.

• Desktop: • Desktop:

– Um SO de mesa é voltado ao atendimento do usuário doméstico e coorporativo para realização de atividades corriqueiras (internet, planilhas, editores, etc). Ex: Windows, XP, MacOS X, Linux.

• Servidor:

– Deve permitir a gestão eficiente de grandes quantidades de recursos (disco, memória, processadores), impondo prioridades e limites sobre uso de recursos pelos usuários

(5)

Tipos de Sistemas Operacionais

Tipos de Sistemas Operacionais

• Embutido:

– É dito embutido quando é construído para operar sobre um hardware com poucos recursos de processamento, armazenamento e energia. Ex: µC/OS, Xylnx, LynxOS, VxWorks, µClinux.

• Tempo Real:

– Um SO de tempo real não precisa ser ultra-rápido; sua – Um SO de tempo real não precisa ser ultra-rápido; sua característica essencial é ter um comportamento temporal previsível. Sua estrutura interna deve ser construída de forma a minimizar esperas e latências imprevisíveis, como tempo de acessos a disco e sincronização excessiva. Ex: DCX, RXT Tiny, USX, CMX, ByteBOX, QNX, RT-Linux, VxWorks, ERCOS, RTAI.

(6)

Sistema Operacional Embarcado

Sistema Operacional Embarcado

• Um sistema operacional (SO) é dito embutido (embedded) quando é construído para operar sobre

um hardware com poucos recursos de

processamento, armazenamento e energia.

• Muitas vezes um SO embutido se apresenta na forma de uma biblioteca a ser ligada ao programa forma de uma biblioteca a ser ligada ao programa da aplicação (que é fixa).

• Muitos sistemas embutidos têm características de tempo real, e vire-versa.

• Exemplos de SO para aplicações embarcadas: DCX, RXT Tiny, USX, CMX, ByteBOX, QNX, RT-Linux, VxWorks, ERCOS, µClinux.

(7)

Modelo de Processo

Modelo de Processo

Contexto de Contexto de Registradores Gerais Registrador PC Registrador SP nome PID Owner(UID) prioridade Tempo processador Contexto de software Contexto de hardware Espaço de endereçamento programa Registrador de status Endereços de memória principal alocado Deadline* quotas privilégios

(8)

Organização de um SO

Organização de um SO

• A forma mais simples de organizar um SO é colocar toda sua funcionalidade dentro de um único programa chamado kernel ou núcleo.

• O Kernel inclui o código necessário para prover toda funcionalidade do SO (escalonamento, gerência de memória, sistemas de arquivos, protocolos, device drivers, etc).

(9)

Organização de um SO

Organização de um SO

(10)

Kernel Monolítico

Kernel Monolítico

• Internamente, o código do kernel é dividido

em procedimentos. No entanto, tudo é

ligado junto e qualquer rotina pode chamar

qualquer rotina.

• O conceito de processo existe fora do

• O conceito de processo existe fora do

(11)

Kernel Monolítico

Kernel Monolítico

• Uma interrupção de hardware periférico ou de

software (chamada de sistema) gera um

chaveamento de contexto do processo que estava

executando para o fluxo interno do kernel.

• No que diz respeito as interrupções de hardware, • No que diz respeito as interrupções de hardware,

existem 2 variações do kernel monolítico:

– Não-Interrompível: enquanto o kernel está executando nada mais acontece, nem mesmo interrupções de periféricos como temporizadores e controladores de disco. Isso reduz desempenho

– Interrompível: eventos associados com periféricos e temporizadores ganham imediata atenção.

(12)

Kernel Convencional

Kernel Convencional

• É aquele que além de interrompível, permite uma troca de contexto mesmo quando o código do kernel estiver executando.

• O conceito de processo existe também dentro do kernel, uma vez que o processo pode ser suspenso e liberado mais tarde enquanto executa o kernel. kernel, uma vez que o processo pode ser suspenso e liberado mais tarde enquanto executa o kernel.

(13)

Kernel Convencional

Kernel Convencional

• No kernel monolítico apenas uma pilha

basta, pois a cada momento apenas um

fluxo de execução existe dentro dele.

• No kernel convencional um processo pode

passar o processador para outro processo

passar o processador para outro processo

que também vai executar código do kernel.

Logo, é necessária uma pilha interna ao

kernel para cada processo

(14)

Kernel Convencional Kernel Convencional

• Tipos de Kernel Convencional

– Não-preemptivo: quando o processo que está executando código do kernel não perde o processador para outro processo.

– Com pontos de preempção: quando somente suspende um processo que executa código do kernel em pontos previamente definidos do código, nos quais é sabido que nenhuma estrutura de dados está inconsistente.

nenhuma estrutura de dados está inconsistente.

– Preemptivo: aquele que realiza chaveamento de contexto tão logo o processo de mais alta prioridade seja liberado. Para isso é necessário algum mecanismo como semáforo.

• Threads

– Como existe no kernel convencional possibilidade de execução de vários fluxos de execução simultaneamente, pode-se usar construções chamadas threads. Threads do kernel são fluxos de execução que executam o tempo todo código do kernel. Eles executam tarefas auxiliares.

(15)

Microkernel

Microkernel

• Esta abordagem suporta os serviços mais

elementares

de

um

SO:

gerência

de

processador e uma gerência de memória

simples.

• Subtipos

• Subtipos

– Microkernel com kernel:

(16)

Microkernel

Microkernel com

com kernel

kernel

• O microkernel corresponde a funcionalidade de mais

baixo nível do kernel

convencional preemptivo, aquela responsável por realizar chaveamento dos processos. processos. • Suporta um kernel semelhante ao convencional preemptivo, separado da funcionalidade inserida no microkernel.

(17)

Microkernel

Microkernel com Processos Servidores

com Processos Servidores

• Conjunto de processos servidores autônomos.

• Chamadas de serviço dos processos feitas diretamente para eles, sem passar por uma camada que uniformize a interface do kernel.

• Exemplo o Minix. • Vantagem:

• Facilidade para atualizações • Isolamento entre os

diferentes componentes

• Depuração e manutenção mais fácil

• Temos um microkernel que suporta um conjunto de processos com espaços de endereçamento independentes.

• Alguns processos executam programas de usuário, outros implementam serviços do S.O.

• Cada processo servidor pode conter várias threads para melhorar o desempenho

• Depuração e manutenção mais fácil

• Facilidade para distribuição e tolerância a falhas.

• Desvantagem

• Custo alto associado a chamada do sistema

(18)

Gerenciamento de Tarefas

Gerenciamento de Tarefas

(19)

Controle Temporal

Controle Temporal

• Controle dos instantes de execução das

operações do programa (disparo das

atividades, verificação do cumprimento dos dealines)

• Disparo de tarefas:

– Por tempo (time-trigger) - TT – Por tempo (time-trigger) - TT

• Execução das tarefas é disparada por intermédio de um sinal de controle baseado na progressão do tempo (interrupção periódica)

– Por eventos (event-trigger) - ET

• Execução das tarefas disparada por intermédio de um sinal de controle assíncrono baseado na alteração do estado do sistema (interrupção externa)

(20)

Classificação

Classificação

((Garantias Temporais)

Garantias Temporais)

• Não Tempo Real (time-sharing)

– Tempo ocioso entre processos são

compartilhados com outros processos para

dinamizar o sistema.

• Ex: Unix, Linux, Windows NT

• Soft Real-Time

• Soft Real-Time

– Usam solução de escalonamento de tempo real mas não oferecem garantias temporais

• Ex: OS9, RT-Linux, pSOS, VRTx

• Hard Real-Time

– Oferecem garantias temporais

(21)

Gerenciamento de Tarefas

Gerenciamento de Tarefas

• Escalonamento

– Determina qual a próxima tarefa a ser executada

• Pode ser efetuado

T

• Pode ser efetuado

– Com preempção

• Uma tarefa pode ser suspensa para

execução de uma outra mais

prioritária

– Sem preempção

• Uma tarefa, uma vez iniciada a execução, não pode ser interrompida até terminar.

T2

T1

(22)

Gerenciamento de Tarefas

Gerenciamento de Tarefas

• Técnicas Típicas em Sistemas NRT (Não

tempo-real) ou mesmo em alguns SRT (Soft

real-time)

– FCFS (First Come First Served)

• As tarefas são atendidas na ordem em que elas chegam

– Round Robin

• Executa as tarefas em sequência independente da importância

(23)

FCFS (First Come First Served)

FCFS (First Come First Served)

• Uso

de

uma

lista

de

processos

sem

prioridades

• São atendidos na ordem em que chegam

• Escalonamento não-preemptivo

• Simples e Justo

• Bom para sistemas em batch

B C D E F … N

CPU

CPU

A

(24)

Round Robin

Round Robin

• Características:

– Uso de uma lista de processos sem prioridade – Escalonamento preemptivo

– Simples e justo

– Bom para sistemas interativos – Imune a problemas de starvation* – Imune a problemas de starvation*

• Todos os processos são armazenados em uma fila circular. Uma unidade de tempo definida pelo SO (quantum) determina o tempo de cada interrupção.

– Se processo acaba antes do quantum, ok, pega o próximo. – Se processo não acaba antes do quantum, preempção e o

processo vai para o final da fila circular.

*Starvation: um processo nunca é executado pois processos de prioridade maior impedem

(25)

Gerenciamento de Tarefas

Gerenciamento de Tarefas

• Técnicas Típicas em Sistemas HRT (Hard

tempo-real) e em alguns SRT (Soft

real-time)

– Rate Monotonic Scheduling (RMS) – Rate Monotonic Scheduling (RMS)

• Prioridades Fixas, Menor período maior prioridade

– Earliest Deadline First (EDF)

• Prioridades dinâmicas, Inversas à distância à deadline

– Deadline Monotonic Scheduling (DMS)

(26)

Rate Monotonic Scheduling (RMS)

Rate Monotonic Scheduling (RMS)

• O algoritmo produz escalas em tempo de

execução

através

de

escalonadores

preemptivos, dirigidos a prioridade.

• Modelo de tarefas:

– São periódicas e independentes – São periódicas e independentes

– Deadline coincide com o período (Di=Pi)

– Tempo de computação (Ci) de cada tarefa é conhecido e constante (WCCT – Worst Case Computation Time)

– O tempo de chaveamento entre tarefas é

(27)

Rate Monotonic Scheduling (RMS)

Rate Monotonic Scheduling (RMS)

• Política de Atribuição de Prioridades

– Quanto menor o período, maior sua prioridade no conjunto. – Análise de escalonabilidade baseia-se no cálculo da

Utilização

• Condição Suficiente • Condição Suficiente

(28)

Exemplo (RMS)

Exemplo (RMS)

• Avaliar escalonabilidade de um conjunto de

tarefas periódicas usando RMS;

(29)

Earliest Deadline First (EDF)

• Escalonamento baseado em prioridades: a escala é produzida em tempo de execução por um escalonador preemptivo dirigido a prioridades.

• É um esquema de prioridade dinâmica • Modelo de tarefas idêntica ao RMS

• Modelo de tarefas idêntica ao RMS – São periódicas e independentes

– Deadline coincide com o período (Di=Pi)

– Tempo de computação (Ci) de cada tarefa é conhecido e constante (WCCT – Worst Case Computation Time)

– O tempo de chaveamento entre tarefas é assumido como nulo.

(30)

Earliest Deadline First (EDF)

• Política de Atribuição de Prioridades

– A tarefa mais prioritária é a que tem o deadline di mais próximo do tempo atual.

– A cada chegada de tarefa, a fila de pronto é reordenada considerando a nova distribuição de reordenada considerando a nova distribuição de prioridades

– O novo valor de deadline absoluto é

determinado considerando o número de períodos que antecede a atual ativação (K): dik = kPi.

• Teste de escalonabilidade

(31)

Exemplo (EDF)

Exemplo (EDF)

(32)

Deadline Monotonic Scheduling(DMS)

Deadline Monotonic Scheduling(DMS)

• Estende o modelo de tarefas do RMS.

• Modelo de tarefas:

– São periódicas e independentes

– Deadline coincide com o período (Di=Pi)

• Em substituição a: (Di≤≤≤≤ Pi)

– Tempo de computação (Ci) de cada tarefa é conhecido e constante (WCCT – Worst Case Computation Time)

– O tempo de chaveamento entre tarefas é

(33)

Deadline

Deadline Monotonic

Monotonic Scheduling

Scheduling(DMS)

(DMS)

• Política de Atribuição de Prioridades

– Determina prioridade baseada em di.

• Menor o di maior a prioridade.

– Teste de escalonabilidade – Teste de escalonabilidade

• Condição Suficiente

Diferença em relação ao RMS Exemplo:

(34)

Deadline

Deadline Monotonic

Monotonic Scheduling

Scheduling(DMS)

(DMS)

(35)

Comunicação entre processos

Comunicação entre processos

(36)

Tarefas Dependentes

Tarefas Dependentes

• Em um ambiente multitarefa o compartilhamento de recursos é implícito e determina alguma forma de relação de exclusão entre tarefas.

• Comunicações entre tarefas no mesmo processador, podem se dar através de variáveis compartilhadas, podem se dar através de variáveis compartilhadas, usando mecanismos como: semáforos e monitores para implementar a exclusão mútua entre as tarefas.

(37)

Exemplo de Problema

Exemplo de Problema



Processo A

x := x + 1; 

Processo B

x := x - 1; 

Processo B

LOAD x,Rb SUB 1,Rb STORE Rb,x 

Processo A

LOAD x,Ra ADD 1,Ra STORE Ra,x

Processo comando x Ra Rb

A LOAD x,Ra 2 2 * A ADD 1,Ra 2 3 * B LOAD x,Rb 2 * 2 B SUB 1, Rb 2 * 1 A STORE Ra,x 3 3 * B STORE Rb,x 1 * 1 STORE Rb,x STORE Ra,x

(38)

Soluções

Soluções

• Exclusão Mútua

– Solução mais simples para tarefas dependentes;

– Impede que dois ou mais processos acessem um mesmo recurso simultaneamente;

– Enquanto um processo estiver acessando

– Enquanto um processo estiver acessando

determinado recurso, todos os demais processos

que queiram acessá-lo deverão esperar pelo

término da utilização do recurso.

• Soluções para exclusão mútua:

– Test-and-set

– Algoritmo de Dekker – Algoritmo de Peterson

(39)

Semáforos

Semáforos

• Mecanismo de sincronização não estruturado

que permite implementar, de forma simples,

a exclusão mútua entre processos.

• Um semáforo é uma variável inteira, não

• Um semáforo é uma variável inteira, não

negativa, que só pode ser manipulada por

duas instruções: DOWN e UP.

– As instruções UP e DOWN são indivisíveis, ou seja,

a execução dessas instruções não pode ser

(40)

Monitores

Monitores

• Mecanismo de sincronização estruturado de

alto

nível

tendo

em

vista

que

são

implementados pelo compilador.

• A comunicação do processo com o monitor é

• A comunicação do processo com o monitor é

feita unicamente através de chamadas a seus

procedimentos e dos parâmetros passados.

(41)

Troca de Mensagens

Troca de Mensagens

• Execuções sincronizadas

• Pode ser implementada de 2 maneiras:

– Comunicação Direta: exige que ao enviar uma mensagem, o processo enderece explicitamente o nome do processo receptor ou transmissor.

nome do processo receptor ou transmissor.

– Comunicação indireta: utiliza uma área

compartilhada, onde as mensagens podem ser colocadas pelo processo transmissor e retiradas pelo receptor. (Buffer = Port ou Mailbox)

• Fazem uso de buffer para trocar mensagens através do uso de duas rotinas:

– SEND(receptor, mensagem)

(42)

Sistemas Operacionais para ARM7

Sistemas Operacionais para ARM7

(43)

Sistemas Operacionais para o ARM7

• Os microcontroladores ARM7 costumam ser dispositivos com capacidades de memória limitadas

– Memória de programa entre 16kB e 1MB – Memória de dados entre 16KB e 64KB

• Indisponibilidade de MMU (unidade de

gerenciamento de memória) nos modelos ARM7TDMI dificulta ainda mais a execução de Sos complexos neste tipo de plataforma.

(44)

Sistemas Operacionais para o ARM7

• Apesar das limitações, pode-se encontrar

uma vasta quantidade de sistemas

operacionais, grande maioria RTOS.

– µCLinux

• Variante do Linux, desprovida de MMU • Variante do Linux, desprovida de MMU

– VxWorks

• RTOS (Wind River Systems) com kernel multi-tasking. Possui agendamento preemptivo, rápida resposta a interrupções, comunic. entre processos, sincronização e sistemas de arquivos.

– IAR PowerPAC

• RTOS (IAR), que é um sistemas de arquivos e suporte a cartões de memória SD/MMC e pilha USB.

(45)

Sistemas Operacionais para o ARM7

– RL-ARM

• From Keil, é uma biblioteca de aplicações que inclui um kernel de tempo real (RTX), um sistema de arquivos, pilhas TCP/IP, CAN e USB.

– EmbOS

• By Segger. É um RTOS com um núcleo pequeno • By Segger. É um RTOS com um núcleo pequeno e rápido que pode ser portado para diversas plataformas

– FreeRTOS

• RTOS de código aberto, configurável para multitarefa cooperativa ou preemptiva.

– Contiki

• RTOS de código aberto voltado para sistemas com pequena disponibilidade de memória.

Referências

Documentos relacionados

De acordo com os resultados obtidos, os quais são concordantes com as informações encontradas na literatura, a interação da radiação micro-ondas com a fase

Este trabalho teve por objetivo o estudo da dimensão das doenças crônicas, especificamente o diabetes mellitus, visando à elaboração de um modelo de processo

Conclui-se, portanto, que o processo de implementação da nova organização curricular, que traz o Trabalho de Conclusão de Curso como requisito obrigatório para obtenção do

Para o controle da salivação, gosto muito de usar metáforas, como pedir para o paciente imaginar um ralo dentro de sua boca, por onde a saliva escorre, ou uma torneirinha que vai

Ale´m disso sa˜o apresentadas algumas correlac¸o˜es como: uma correlac¸a˜o parcialmente posi- tiva (+) para o requisito Manutenibilidade, uma correlac¸a˜o

Fundamentos de Lógica Reconfigurável Fabricação de Circuitos Integrados Aplicações, Tecnologias e Arquiteturas. Arquitetura FPGA (LUT, BlockRAM, Distributed RAM, DSP, FF, ARM

O melhor, sem dúvida, é estar atento para esse medo, dar um mergulho na própria vida e perceber que, no fundo, quando alguém está decidido a ficar sozinho por medo de ser

operacionais, compiladores, banco de dados, navegadores entre outras) e software para sistemas embarcados, sistemas móveis, sistemas de computação nas nuvens e sistemas de