SISTEMAS EMBARCADOS. Controle de Kernel, gerenciamento de Threads e funções de espera. Prof. André Schneider de Oliveira

Documentos relacionados
SISTEMAS EMBARCADOS. Programação Concorrente e CMSIS RTOS. Prof. André Schneider de Oliveira

Sincronismo de threads e Temporizadores

SISTEMAS EMBARCADOS. Acesso a recursos compar,lhados. Prof. André Schneider de Oliveira

SISTEMAS EMBARCADOS. Comunicação entre threads. Prof. André Schneider de Oliveira

Programação Concorrente e CMSIS RTOS

CMSIS. RTOS Keil RTX 5 CMSIS-RTOS API v2. Componente CMSIS-RTOS. Principais Componentes. Documentação. Estrutura de Arquivos 25/04/2019

Processo. Gerência de Processos. Um programa em execução. Centro de Informática/UFPE :: Infraestrutura de Software

Processo. Gerência de Processos. Um programa em execução. Centro de Informática/UFPE :: Infraestrutura de Software

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

Microprocessadores Tópicos Esp. em Eletrônica Industrial

Sistemas Operacionais de Tempo Real. Prof. Andre Luis Meneses Silva

Título: Como configurar o Agente de Backup em Nuvem?

Threads. Agenda. Threads. Processo. Processo. Processo. Processo. (c) Volnys B. Bernal Versão de 22/3/2012

Sistemas Operacionais Processos. Carlos Ferraz Jorge Cavalcanti Fonsêca

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

César Ofuchi CMSIS RTOS parte 2. César Yutaka Ofuchi (adaptado do prof. André Schneider de Oliveira)

Métodos de Sincronização

Threads. O que é uma Thread? Paralelismo

Registradores. Registradores e Instruções Especiais. Link Register. Stack Pointer. Registradores Especiais. Contador de Programa 29/03/2018

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO ESTRUTURA DE UM SISTEMA OPERACIONAL PROFESSOR CARLOS MUNIZ

Programação Concorrente. Prof. Hugo Vieira Neto

Arquitetura de Software em Sistemas Embarcados

Sistemas Operacionais I

Arquitetura Cortex-M

1.2 Registradores relacionados as Interrupções. 3. TOSE Sentido da transição da borda do sinal aplicado am TMR0

Organização de Computadores 1

2º Grupo Capitulo 11 Página 517 a 530 Camada do Núcleo a Manipuladores. Alunos Wanderson da Silva Serradilha Sérgio Vilela Maia Rúlio Márcio

Sistemas Operacionais I

Subsistemas de E/S Device Driver Controlador de E/S Dispositivos de E/S Discos Magnéticos Desempenho, redundância, proteção de dados

Escalonamento (Scheduling)

Capítulo 11 Estudo de Caso 2: Windows 2000

Processos e Threads e em sistemas distribuídos. Prof. Me. Hélio Esperidião

Threads. Pedro Cruz. EEL770 Sistemas Operacionais

ACS 5.x: Exemplo de configuração do servidor ldap

Sistemas Operacionais. Entrada/Saída

Introdução a Programação Concorrente. Aula 02. Prof. André Luis Meneses Silva

Microcontroladores. Contadores e Temporizadores. Prof. Guilherme Peron Prof. Heitor S. Lopes Prof. Ronnier Rohrich Prof. Rubão

Virtualizando Sistema Operacional

Interrupção

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO O SISTEMA OPERACIONAL PROFESSOR CARLOS MUNIZ

Sistemas de Tempo Real: Sistemas Operacionais

Estruturas de Sistemas Operacionais

Sistemas Operacionais

CESNA TECHNOLOGY GERENCIADOR FCM. Manual do software Gerenciador Fcm. Versão 1.0

LABORATÓRIO DE SISTEMAS OPERACIONAIS. PROFª. M.Sc. JULIANA HOFFMANN QUINONEZ BENACCHIO

Organização e Arquitetura de Computadores I

PROGRAMAÇÃO ESTRUTURADA E ORIENTADA A OBJETOS

Sistemas Operacionais. Sistema de entrada e Saída

UTFPR Departamento Acadêmico de Eletrônica Curso Técnico em Eletrônica Microcontroladores 1 - Prof. Cion nov/2010 (atualizado em jul 2015)

Sistemas Operacionais

Sistemas Operacionais

Universidade Tecnológica Federal do Paraná (UTFPR) Departamento Acadêmico de Eletrônica (DAELN) SISTEMAS EMBARCADOS

Processo. Prof. Paulo Cesar F. de Oliveira, BSc, PhD

Programação de Periféricos

Gerência de Dispositivos. Adão de Melo Neto

Registradores. Registradores Especiais e Exceções no ARM Cortex-M4. Link Register. Stack Pointer. Registradores Especiais. Contador de Programa

FERRAMENTA DE CONFIGURAÇÃO DE PAINEL SENSÍVEL AO TOQUE MANUAL DE OPERAÇÃO

Sistemas Operacionais Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios. Aula 06.

14/05/2017. Conceitos de Processos. Conceitos de Processos. Conceito de processo

Sistemas Operacionais

SOP - TADS Fundamentos de Sistemas Operacionais

Fundamentos de Sistemas Operacionais

Sistemas Operacionais

Gerência de Dispositivos. Adão de Melo Neto

Gerência de Redes de Computadores. 05 Gerência de Hospedeiros (Hosts)

Sistemas Embebidos I , Tiago Miguel Dias ISEL, ADEETC - Secção de Eletrónica e Telecomunicações e de Computadores

Estrutura do Sistema Operacional

Sistemas Operacionais Aula 3

Sistemas Operacionais II Weig Tatiele Ludmila

Introdução aos Sistemas Operacionais

Sistemas Distribuídos Aula 2

Introdução. Pedro Cruz. EEL770 Sistemas Operacionais

Sistemas de Tempo Real

Variância dos Tempos de Resposta

ACS 5.X: Fixe o exemplo de configuração do servidor ldap

DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO SISTEMAS OPERACIONAIS I SEM/12 PROVA I. Tempo de Prova: 100 minutos / Escore Máximo: 300 pontos

3 Sistema Operacional Scriptável

6. Mostre os principais modelos de organização interna de um sistema operacional.

Jadsonlee da Silva Sá

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

Sistemas de Tempo-Real

CURSO TÉCNICO DE INFORMÁTICA. Fundamentos de Hardware e Software

Prof. Adilson Gonzaga

Thread. Thread. Sistemas Operacionais. Leonard B. Moreira. UNIVERSIDADE ESTÁCIO DE SÁ fevereiro, / 41

Sistema de entrada e saída (E/S)- Módulos de E/S; tipos de operações de E/S

UFRJ IM - DCC. Sistemas Operacionais I. Unidade IV Gerência de Recursos Entrada e Saída. 02/12/2014 Prof. Valeria M. Bastos

Sistemas de Informação. Sistemas Operacionais

Plano de Aula. 1 o semestre. Aula número 009 Interrupções. Fazer uso das interrupções externas no Arduíno

Técnicas Avançadas de Programação

DRIVER DO ADS2000 PARA LABVIEW FOR WINDOWS 95

Exceções no Fluxo de Execução: Interrupções e Traps

SUMÁRIO. Sistemas Operacional. Windows...2 Linux...6 Mac OS X Lista de Produtos

Processos. Pedro Cruz. EEL770 Sistemas Operacionais

SVMPC2. Manual do Usuário. Versão 1.2

Sistemas Digitais e Microcontrolados

Fundamentos da Informática Aula 03 - Sistemas operacionais: Software em segundo plano Exercícios Professor: Danilo Giacobo

Introdução aos Sistemas Operacionais

Processo de Controle

Sistemas Operacionais. BSI / UAB 2013 Hélio Crestana Guardia

Transcrição:

Universidade Tecnológica Federal do Paraná (UTFPR) Departamento Acadêmico de Eletrônica (DAELN) SISTEMAS EMBARCADOS Controle de Kernel, gerenciamento de Threads e funções de espera Prof. André Schneider de Oliveira andreoliveira@u6pr.edu.br

Kernel Kernel (ou núcleo) é uma abstração do hardware para a programação em alto-nível das interfaces Promove a conexão entre hardware e sowware por processos comunicação entre processos memória virtual sistema de arquivos Contém um conjunto de "device drivers" para gerenciar a interação com os subsistemas de hardware

Tarefas do Kernel

Kernel Através do Kernel RTOS é possível obter informações do sistema e do Kernel obter a versão do CMSIS-RTOS API inicializar o Kernel e criar os objetos RTOS iniciar a execução do Kernel RTOS e do gerenciamento das threads verificar o status da execução do Kernel RTOS

Kernel A função Main é uma thread especial que é iniciada juntamente com o Kernel com prioridade inicial osprioritynormal Na função Main é preciso seguir a seguinte estrutura: 1. Chamar oskernelini?alize() para inicializar o Kernel CMSIS-RTOS 2. Configurar os periféricos, criar variáveis e definir os objetos RTOS 3. Chamar oskernelstart() para iniciar o Kernel e o gerenciamento de threads

Informação e Controle do Kernel É possíver testar a correta inicialização do Kernel oskernelinitialize() - inicializa o kernel oskernelstart() - Ativa o kernel oskernelrunning() - veriifica se o kernel está ativo 0 - RTOS não ativo 1 - RTOS ativo

Informação e Controle do Kernel O CMSIS RTOS emprega o System Tick Timer (SysTick) para gerar pedidos de interrrupção regulares, possibilitando a preempção das tarefas O SysTick pode ser uelizado para gerar atrasos, medir o tempo ou como uma fonte e interrupção para tarefas periódicas oskernelsystick() - Obtém o valor do temporizador do kernel retorna o tempo em um valor 32-bits

Controle de Kernel no RTOS Macros (ou definições possíveis) - "cmsis_os.h" #define osfeature_mainthread 1 define ser a função Main será uma thread 1=habilitada, 0=desabilitada #define osfeature_systick 1 habilita as funções do oskernelsystick 1=habilitada, 0=desabilitada #define oscmsis 0x10002 - versão da API CMSIS #define oscmsis_kernel 0x10000 - Ideneficação e versão do RTOS #define oskernelsystemid "KERNEL V1.00" - String de ideneficação do RTOS #define oskernelsystickfrequency 100000000 - Frequência (Hz) do SysTick #define oskernelsystickmicrosec(microsec) (((uint64_t)microsec * (oskernelsystickfrequency)) / 1000000) Converte um tempo em microssegundos para a frequência do SysTick Comumente uelizado para pequenos atrasos em tarefas de "pooling"

Configurações do Kernel Arquivo RTX_Conf_CM.c Configurações das threads OS_TASKCNT = # de threads executando concorrentemente <padrão 6> OS_STKSIZE = define o tamanho da pilha threads com stackz=0 <padrão 200> OS_MAINSTKSIZE = define o tamanho da pilha para a Main thread <padrão 200> OS_PRIVCNT = # threads com pilhas especificadas pelo usuário <padrão 0> OS_STKCHECK = habilita ou desabilita o teste de "overflow" de pilha na preempção (essa opção atrasa a troca de threads) OS_RUNPRIV = define o modo de execução das threads (0=Unpriv, 1=Priv) <padrão 1>

Arquivo RTX_Conf_CM.c Configurações do SysTick OS_SYSTICK = 1 para uelizar o SysTick emer como RTOS Kernel Timer OS_CLOCK = especifica a frequência do RTOS Kernel emer [Hz], geralmente é idêneco ao core clock OS_TICK = intervalo do Syseck [µs] <padrão 1000 = 1µs> Função de idle Configurações do Kernel void os_idle_demon (void) {...} função que é executada quando nenhuma thread está em estado ready

Gerenciamento de Threads osthreadcreate - Aeva a execução de uma tarefa osthreadterminate - Desaeva a execução de uma tarefa osthreadyield - Passa a execução à próxima tarefa que pronta osthreadgetid - Obtém o ideneficador que referencia a tarefa osthreadsetpriority - Altera a prioridade de uma tarefa osthreadgetpriority - Obtém a prioridade atual de uma tarefa 11

Gerenciamento de Threads osstatus osthreadterminate (osthreadid thread_id) Desaeva a execução de uma tarefa Retorna o status da solicitação Status and Error Codes osok = thread finalizada com sucesso oserrorparameter = thread_id está incorreta oserrorresource = thread_id é de uma thread não aeva oserrorisr = não pode ser chamada de uma ISR

Gerenciamento de Threads osstatus osthreadyield () Passa o contole para a próxima thread pronta Caso não exista outra thread ready, conenua executando a thread atual Retorna o status da solicitação Status and Error Codes osok = função executada corretamente oserrorisr = não pode ser chamada de uma ISR

Gerenciamento de Threads osthreadid osthreadgetid () Busca o ideneficador uma thread Retorna o o thread_id ou NULL se for incorreto

Gerenciamento de Threads ospriority osthreadgetpriority (osthreadid thread_id) Busca a prioridade de uma thread Retorna o a prioridade

Gerenciamento de Threads osstatus osthreadsetpriority (osthreadid thread_id, ospriority priority) Muda a prioridade de uma thread O thread_id pode ser obedo do osthreadcreate or osthreadgetid Retorna o status da solicitação Status and Error Codes osok = prioridade alterada oserrorparameter = thread_id está incorreta oserrorvalue = o valor de prioridade está incorreto oserrorresource = thread_id é de uma thread não aeva oserrorisr = não pode ser chamada de uma ISR

Funções de espera 1. osdelay: Suspende a execução de uma thread por um intervalo de tempo 2. oswait: Aguarda um evento não especificado por um período de tempo Macros (ou definições possíveis) - "cmsis_os.h" #define osfeature_wait 1 1=habilitado, 0=não habilitado

Funções de espera osstatus osdelay (uint32_t millisec) Retorna o status da solicitação Status and Error Codes oseventtimeout = delay executado oserrorisr = não pode ser chamada de uma ISR

Funções de espera osevent oswait (uint32_t millisec) Aguarda um evento não especificado milisec: emeout ou 0 para sem emeout Retorna o evento com um componente RTOS ou erro Eventos Um signal enviado para uma thread explicitamente Um mail ou message registrado para uma thread Status and Error Codes oseventsignal = ocorreu um evento de signal oseventmessage = ocorreu um evento de message oseventmail = ocorreu um evento de mail oseventtimeout = não ocorreu um evento dentro do tempo especificado (emeout) oserrorisr = não pode ser chamada de uma ISR

osevent oswait (uint32_t millisec) Funções de espera