fundamentos de sistemas operacionais de tempo real - criando seu próprio escalonador de tarefas...

Download Fundamentos de Sistemas  Operacionais de Tempo Real - Criando seu próprio escalonador de tarefas (apresentação)

If you can't read please download the document

Upload: marcelo-barros-de-almeida

Post on 19-May-2015

1.807 views

Category:

Technology


0 download

DESCRIPTION

Neste artigo são explorados os princípios básicos de criação de um sistema operacional de tempo real (RTOS). Usando um microcontrolador MSP430 como referência e um compilador GNU GCC, as tarefas mais importantes no processo de criação de um RTOS são detalhadas através de um projeto conhecido como “Basic RTOS” [1], criado especificamente para este fim e requerendo apenas 128 bytes de RAM e 1150 bytes de flash. Mesmo sistemas com grandes restrições de memória podem se beneficiar de RTOSs como o descrito aqui, evitando estratégias tradicionais de funcionamento apenas baseado em interrupções e facilitando o desenvolvimento. Os conceitos abordados são gerais e não estão restritos ao MSP430 muito menos ao compilador empregado, provendo um conhecimento indispensável para desenvolvedores interessados em aplicar técnicas similares aos seus projetos.

TRANSCRIPT

  • 1. Fundamentos de SistemasOperacionais de Tempo Real Criando seu prprio escalonador de tarefas Marcelo Barros de Almeida [email_address]

2. A obra Fundamentos de Sistemas Operacionais de Tempo Real - Criando seu prprio escalonador de tarefas de Marcelo Barros de Almeida foi licenciada com uma LicenaCreative Commons - Atribuio - Uso No-Comercial - Partilha nos Mesmos Termos 3.0 No Adaptada . Com base na obra disponvel em http://code.google.com/p/basicrtos/Podem estar disponveis permisses adicionais ao mbito desta licena atravs do contato direto ao autor via email [email_address] Licenciamento Creative Commons 3. Marcelo Barros de Almeida [email_address]

  • Formao:
  • Engenheiro eletrnico (UNIFEI, 1996), mestre (UFMG, 1998), doutor (UFMG, 2002)

Atualmente:

  • Engenheiro P&D (Smar Equip. Industriais LTDA)

4. Professor do Baro de Mau (RP) Detalhes:

  • http://jedizone.wordpress.com

5. http://www.twitter.com/marcelobarros 6. http://linuxabordo.com.br/wiki/index.php?title=Marcelo_Barros 7. http://lattes.cnpq.br/0711663486251657 smar 8. Sumrio

  • Objetivos

9. Dividindo o tempo do processador 10. Troca de contexto 11. O escalonador 12. Adicionando tarefas 13. Inicializando o sistema 14. Objetivos

  • Interrupt driven x Multitasking

15. Explorar os princpios de um RTOS 16. Descrever via um exemplo didtico: Basic RTOS

  • Nmero fixo de tarefas (mesma prioridade)

17. Time slice diferentes 18. Requer apenas um timer 19. No preemptivo 20. ~1150 bytes de flash, ~128 bytes de RAM 21. Fontes: http://code.google.com/p/basicrtos/ 22. Como dividir o tempo do processador ?

  • Time slicing
  • Tempo de tarefa

23. Tempo do RTOS

  • Escalonador, interrupes, timers, etc

Estratgia:

  • Definio de um tick para o sistema

24. Interrupo peridica de timer de alta prioridade 25. Avaliao peridica das tarefas em execuo 26. Dividindo o tempo do processador Implementando no MSP430/GCC um timer cclico: 27. Troca de contexto

  • Como compartilhar um s conjunto de registros ?

R1 (SP) R2 (SR) R4 a R15 Stack pointer Status register Registros gerais R3 (CG) Constant generator R0 (PC) Program counter 28. Troca de contexto

  • O que acontece no momento da interrupo do temporizador ?

29. Para o MSP430:

  • PC e SR salvos na pilha, automaticamente

30. A instruo reti recupera os registros da pilha, ao sair Todo o resto do trabalho precisa ser feito para a troca de contexto SR ... Estado antes da interrupo ... PC Endereo de retorno Stack Pointer 31. Troca de contexto

  • Salvando o restante dos registros, no contexto da tarefa corrente (no mudamos o SP ainda)

R15 R14 Stack pointer ... R3 PC SR ... 32. Troca de contexto

  • Falta salvar o SP atual antes de usar um outro contexto

33. Informaes sobre a tarefa: Task Block Control (TCB) 34. Troca de contexto

  • O novo contexto o do escalonador

35. O escalonador decide qual a prxima tarefa a ser executada 36. A nova tarefa tem o seu contexto restauradao e ganha o controle do processador 37. O escalonador 38. O escalonador

  • Processar timers pode ser feito em uma tarefa tambm

39. Round Robin no a nica forma de escalonar, talvez voc no queira ser justo sempre 40. Adicionar prioridades pode melhorar o nvel de controle do sistema 41. Uma tarefa nula pode ser interessante quando o sistema estiver ocioso 42. Economizar energia pode ser um requisito 43. Adicionando tarefas

  • Em geral, um processo simples:
  • Definir uma funo para a tarefa

44. Reservar espao para a pilha da tarefa 45. Especificar prioridade e slice de tempo As tarefas entram no vetor de TCBs, na partida do sistema 46. Alguns cuidados essenciais:

  • Criar o contexto inicial da tarefa na pilha dela

47. Criar um contexto para o caso de a tarefa retornar 48. Alinhe a rea do stack 49. Adicionando tarefas 50. Adicionando tarefas

  • Criando o contexto inicial

R15 R14 pusStackPtr ... R3 PC SR BRTOS_TaskEnd pusStackBeg 51. Adicionando tarefas 52. Adicionando tarefas

  • One more thing ...

53. Inicializando o sistema

  • Basicamente, preciso:
  • Inicializar as variveis de controle do RTOS

54. Definir as tarefas (no existe suporte criao dinmica de tarefas) 55. Chamar o escalonador 56. Comentrios, dvidas ? [email_address] http://twitter.com/marcelobarros http://code.google.com/p/basicrtos/