Engenharia de Sistemas Embarcados 2006.2 Aula 9: Salvo RTOS.

Slides:



Advertisements
Apresentações semelhantes
Sistemas Operacionais
Advertisements

Sistemas Operacionais
Sistemas Operacionais
IC - UFF Sistemas Operacionais Threads. IC - UFF Processos e threads Vimos o conceito de processo englobando duas características básicas: propriedade.
Sistemas Operacionais Sincronismo e Comunicação entre processos
Sistemas Operacionais Gerência de Processador
INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES E SISTEMAS OPERACIONAIS VIVIANE LUCY Sistemas Operacionais Gerência de Processador WebDesign Redes de Computadores.
Profa. Priscila Facciolli
Gerência do Processador
Gerência do Processador
Escalonamento Linux.
Arquitetura de Sistemas Operacionais
Arquitetura de Sistemas Operacionais
Sistemas Operacionais II
SSC SISTEMAS OPERACIONAIS I Aulas 6 – Escalonamento de Processos
Disciplina de TSDAC Érico Bastos Sergio Bressan
Sistemas Operacionais
AULA6 – tecnologia TOWER complemento
Escalonamento Aula 7.
Threads.
Sistemas Operacionais
Exclusão Mútua A solução mais simples para evitar os problemas de compartilhamento é impedir que dois ou mais processos estiver acessando determinado recurso,
Sistemas Operacionais
Protocolo CMB em simulação distribuída
Sistemas em Tempo Real Módulo 2: Concorrência: Conceito de processos; estados de processos; algoritmos para escalonamento de processos; Regiões Críticas;
Sistemas Operacionais Aula 4
Concorrência em Java Threads em Java.
Unidade 1-1 Processos e Threads
Sistemas Operacionais
Gerência de Recursos Processador
Tópicos em redes e sistemas distribuídos Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Processo Entidade dinâmica e efêmera
Sistemas Operacionais Profª Adriana Vettorazzo
Conteúdo 1. Introdução Threads 2. Ambiente Monothread 3. Ambiente Multithread 4. Arquitetura e Implementação 5. Modelos de Programação.
Unidade 2 - Parte 1 Programação Concorrente
Escalonamento de Processos
Escalonamento de Tempo Real
Processos.
SISTEMAS OPERACIONAIS I
Concorrência e thread Petrônio Júnior(pglj) Márcio Neves(mmn2)
Sistemas Operacionais
Escalonamento com prioridades
Sistemas Operacionais
Escalonamento de Processos e Threads
Processos.
GERÊNCIA DE PROCESSOS Disciplina: Sistemas Operacionais II.
SISTEMAS OPERACIONAIS I
Objeto Núcleo Operacional para Sistemas Embarcados Arquiteturas RISC de 32 bits.
Conceitos de thread Faculdade PITÁGORAS – Outubro de 2012
Sistemas Operacionais
S ISTEMAS OPERACIONAIS PROCESSOS Horácio Ribeiro.
Multiprocessamento Sérgio Cavalcante CIn GRECO - CIn / UFPE.
Capítulo 4: Processos.
SISTEMAS OPERACIONAIS
Engenharia de Sistemas Embarcados Aula 5: Técnicas Especiais de Software.
Bruno Affonso Diego Chiquito Ruan Berté.   O código de Escalonamento no Windows é implementado no Kernel.  A rotina que desempenha as tarefas do Escalonador.
Redes e Sistemas Distribuídos II – Cód Prof. MSc. Ronnison Reges Vidal.
Implementação Distribuída Escalonamento de Tempo-Real Prof. Dr. Norian Marranghello Grupo 8 Daniela Gonçalves Strozi – Sayuri Watanabe
Programação Concorrente
Sistemas Operacionais
Sistemas Operacionais
Faculdade Pernambucana - FAPE Sistemas Operacionais Prof. Flávio Gonçalves da Rocha.
Redes e Sistemas Distribuídos II – Cód Prof. MSc. Ronnison Reges Vidal.
SVC  GRECO Escalonador de Processos de Tempo Real RTX Tiny.
Sistemas Operacionais Multimídia Aula 12. Gerência de Processos Mapeamento de processos sobre recursos de acordo com política de escalonamento Possíveis.
Processos, Threads e Sincronização em Windows NT Alisson Felipe Coelho Garcia Lucas Mateus Malaquias Rogerio Junio Leachenski.
Alocação Dinâmica Dilvan Moreira. Objetivos  Entender o que são e como usar:  Gerenciamento de Memória  Alocação Dinâmica em C.
Bruna Cavallero Martins Universidade Católica de Pelotas.
ProgramaçãoConcorrente Glêdson Elias
Transcrição da apresentação:

Engenharia de Sistemas Embarcados Aula 9: Salvo RTOS

2006.2Engenharia de Sistemas Embarcados2 Salvo RTOS Sistema Operacional –Cooperativo –Multitarefa –Suporte a eventos –Suporte a temporização Serviços –Comunicação entre tarefas –Gerenciamento de recursos –Semáforos –Mensagens –Fila de mensagens

2006.2Engenharia de Sistemas Embarcados3 Como se parece um código no Salvo Função main() tarefas Código específico

2006.2Engenharia de Sistemas Embarcados4 RTOS Cooperativo Foco principal do Salvo –Minimização do tamanho do código Gerenciamento explícito de mudança de tarefa Não existe uma pilha de propósito geral –Redução do tamanho do código gerado Mudança de tarefa deve ocorrer a nível de tarefa –Não pode ser feita em funções chamadas pelo código da tarefa

2006.2Engenharia de Sistemas Embarcados5 Programação ANSI-C Compilador –Compatível com ANSI-C –Suporte a in-line assembly –Exemplo: Keil

2006.2Engenharia de Sistemas Embarcados6 Processadores e Compiladores Suportados

2006.2Engenharia de Sistemas Embarcados7 Sistemas Foreground/Background void main() { while (1) { func1(); func2(); func3(); func4(); } Superloop

2006.2Engenharia de Sistemas Embarcados8 Problemas de Sistemas Foreground/Background Tempo do loop afetado por mudanças nas funções ou ISR Resposta do sistema a entradas é pobre –Função é executada apenas quando é chamada Pouca flexibilidade ao programador Complicado implementar um sistema que seja crítico em termos de temporização Se o super loop ficar muito grande fica muito difícil prever a sua temporização

2006.2Engenharia de Sistemas Embarcados9 Tarefa 3 Tarefa 4 Sistemas Multitarefa e Mudança de Contexto escalonador Tarefa 1 Tarefa 2 Tarefa 1 Tarefa 2 independentes Tarefa 3 Tarefa 4 concorrentes

2006.2Engenharia de Sistemas Embarcados10 Tarefas e Interrupções

2006.2Engenharia de Sistemas Embarcados11 Escalonador Preemptivo Tarefa pode ser preemptada Ocorre quando tarefa de mais alta prioridade se torna elegível para ser executada Requer uso de interrupção Requer uso de gerenciamento de pilha –Garantir a corretude da mudança de contexto Seção crítica de código –Desabilitar preempção

2006.2Engenharia de Sistemas Embarcados12 Escalonador Preemptivo Uso de intensivo de pilha Utilização de uma pilha para cada tarefa Mudança de contexto a qualquer tempo –Aumento da complexidade do escalonador

2006.2Engenharia de Sistemas Embarcados13 Escalonador Cooperativo Tarefas devem cooperar para mudança de contexto Mais simples que o preemptivo Escalonador menor Potencialmente mais rápido Escalonador menos dependente de interrupções Programador sabe exatamente onde mudança de contexto ocorre Mais simples de lidar com regiões críticas

2006.2Engenharia de Sistemas Embarcados14 Escalonador Cooperativo Vantagens –Tempo de resposta de interrupção menor –Menor tempo de recuperação –Maior simplicidade geral Desvantagens –Menor capacidade de resposta –Tarefa de menor prioridade não é preemptada por tarefa de maior prioridade

2006.2Engenharia de Sistemas Embarcados15 Estrutura de Tarefa Initialize(); for (;;){ } Initialize(); for (;;){... Taskswitch(); } Escalonador cooperativo

2006.2Engenharia de Sistemas Embarcados16 Prioridade de Tarefas Multitarefa simples –Tarefas com a mesma prioridade –Round robin Multitarefa baseado em prioridades –Garante que o processador vai estar executando as tarefas mais importantes –Tipos de prioridades Estática Dinâmica Como garantir que um sistema não execute apenas a tarefa de mais alta prioridade?

2006.2Engenharia de Sistemas Embarcados17 Estados das Tarefas

2006.2Engenharia de Sistemas Embarcados18 Atrasos e Temporização Maneira tradicional de gerar atraso Atraso via RTOS Dependente do processador Processamento em background é complicado

2006.2Engenharia de Sistemas Embarcados19 Temporização via RTOS Utilização do timer do sistema Utilização de interrupção periódica Contador de ticks do sistema Dimensionamento do contador de ticks Overhead devido ao timer do sistema é inevitável Resolução e precisão do timer do sistema –Atraso de n ticks variará na faixa de n-1 a n ticks de tempo real (milisegundos por exemplo)

2006.2Engenharia de Sistemas Embarcados20 Multitarefa Orientada a Eventos Exemplo de Evntos

2006.2Engenharia de Sistemas Embarcados21 Interação entre Tarefas e Eventos Criação de um evento –Torna o evento disponível para o sistema (tarefas) Sinalização de evento –Identifica a ocorrência do evento –Pode ser sinalizado por tarefa ou outro código em background, ISR Espera de um evento –Tarefas pode ficar esperando a ocorrência de um evento –Tarefa pode esperar apenas um evento por vez –Várias tarefas podem esperar ocorrência de um mesmo evento –RTOS deve ter uma política bem definida para decidir que tarefa deve ser elegível para ser executada quando da ocorrência de evento esperado por várias tarefas

2006.2Engenharia de Sistemas Embarcados22 Como pensar um sistema baseado em eventos O que o sistema faz? Como dividir sua ações em tarefas? O que cada tarefa faz? Quando cada tarefa executa? Quais são os eventos? Que eventos causam a execução de que tarefas?

2006.2Engenharia de Sistemas Embarcados23 Comunicação Intertarefa Alguns tipos de comunicação –Semáforos –Mensagens –Fila de mensagens Comunicação –Criação do mecanismo de comunicação –Sinalização –espera

2006.2Engenharia de Sistemas Embarcados24 Semáforos Binários –Assumem valor 0 ou 1 Por contagem –Podem assumir n valores Semáforo deve ser inicializado com um valor Quando tarefa espera pela sinalização de um semáforo ela fica no estado bloqueado Semáforo binário Semáforo por contagem

2006.2Engenharia de Sistemas Embarcados25 Semáforos Sinalização de evento Sinalização de evento sem espera Sinalização de evento com espera

2006.2Engenharia de Sistemas Embarcados26 Sincronização de Tarefas por Eventos

2006.2Engenharia de Sistemas Embarcados27 Sincronização de Tarefas por Eventos

2006.2Engenharia de Sistemas Embarcados28 Gerenciamento de Recursos via Semáforos

2006.2Engenharia de Sistemas Embarcados29 Mensagens Envio de informação arbitrária para uma tarefa Tipos de informação –Número –String –Função –Pointeiro Mensagens no sistema –Podem ser diferentes –Sender e receiver devem entender o seu conteúdo Mecanismos do RTOS –Criação –Sinalização –Espera de mensagens

2006.2Engenharia de Sistemas Embarcados30 Mensagens Mensagens de propósito geral –Contéudo da mensagem são ponteiros –Ponteiro de dereferenciação Mensagem vazia –Ponteiro nulo (NULL) –Não pode ser dereferenciado Espera de mensagem –bloqueante

2006.2Engenharia de Sistemas Embarcados31 Mensagens Espera de mensagem –bloqueante Mensagem contém no máximo um item de informação (Ponteiro) Mensagem vazia  pode ser sinalizada Mensagem cheia  não pode ser enviada

2006.2Engenharia de Sistemas Embarcados32 Filas de Mensagens (Message Queues) Extensão de mensagens Uma fila de mensagens pode conter múltiplas mensagens –Número máximo é normalmente um parâmetro do sistema O envio de mensagens pode continuar até que a caixa de mensagens esteja cheia Uma tarefa que espera a fila de mensagens receberá mensagens até que a fila de mensagens esteja vazia RTOS deve alocar mais RAM para o gerenciamento de cada fila de mensagens –Controlar o número de mensagens na fila de mensagens –Controlar a ordem das mensagens na fila de mensagens