Apresentação

Disciplina ministrada na Faculdade Cenecista de Joinville (FCJ), campus Joinville/SC, para o curso de Bacharel em Sistemas de Informação, durante os semestres de 2009.

Objetivo

Apresentar conceitos básicos de sistemas operacionais visando proporcionar aos acadêmicos o entendimento da arquitetura de sistemas operacionais necessário quando em situações de análise e gerência de projetos.

Ementa

Princípios de Sistemas Operacionais. Gerenciamento de processos, dispositivos, arquivos e memória. Escalonamento de processos. Deadlock. Thread. Linguagem de máquina. Microinstruções. Carregadores. Ligadores. Programação concorrente. Montadores. Principais sistemas operacionais.

Horário

  • Quarta-feira, 2 últimos horários.

Softwares Utilizados

Outros Materiais

Aulas

Referências

  • TANENBAUM, Andrew S. and WOODHULL, Albert S. Sistemas Operacionais: Projeto e Implementação. Prentice Hall, 2001.

Proposta de um Micro Sistema Operacional para Microprocessador ATMEGA8

O Micro-SO

  1. Um inicializador deixaria o terreno pronto e chamaria o gerenciador de processos
  2. O gerenciador de processos entraria em loop, esperando a criação de novos processos (forking?!). Os processos poderiam realizar operações de cálculo (ALU), leitura/escrita (gerenciador de E/S) e afins
  3. O gerenciador de E/S trataria os bytes vindos de um teclado/matriz-de-botões/sensores, assim como os bytes indo para um LCD/DAC plugado
  4. Gerenciador de memória usaria o 1k de SRAM disponível no ATMEGA8, armazenando, por exemplo, bytes lidos pelo gerenciador de E/S em um buffer
  5. O gerenciador de arquivos poderia armazenar arquivos de bytes em um SD plugado

Porém, já seria interessante para uma primeira versão:

"Um inicializador que dá boot no ATMEGA8 e chama um gerenciador de processos mono-processo. O processo principal fica em loop e pode fazer operações de cálculo e leitura/escrita chamando o gerenciador de E/S. O gerenciador de E/S chama o gerenciador de memória para guardar o que for lido em um buffer na SRAM do ATMEGA8. O gerenciador de E/S também pode escrever o que está no buffer em uma saída qualquer (LCD ou DAC)."

Com isso só estaria faltando o gerenciador de arquivos:

  • Inicializador (boot): rotina simples que inicializa o gerenciador de processos
  • Gerenciador de Processos: rotina simples que roda um processo principal, deixando-o em loop e coordenando as chamadas à interrupções
  • Gerenciador de E/S: rotinas read/write que abstraem dispositivos/sensores de E/S plugados: LCD, DAC, piezoeletros, botões, leds, ...
  • Gerenciador de Memória: rotina que controla um buffer para a E/S

Metodologia

  • Alunos formariam grupos e construiriam suas Arduinos na protoboard
  • Aulas de programação em linguagem C diretamente no ATMEGA8
  • Aulas expositivas sobre tópicos de Sistemas Operacionais com exemplos dirigidos para a programação do Micro-SO
  • A avaliação seria em duas vertentes: (1) provas conceituais e (2) cada uma das partes do SO. Peso maior para (2).

Pré-Requisitos

  • Algoritmos
  • Linguagem de programação C
  • Arquitetura de Computadores

Prós e Contras

  • Como programar diretamente o ATMEGA8? Poderia ser usado o framework Arduino?
  • Necessidade de programação em C
  • Como acessar memória interna, ALU, registradores, interrupções do ATMEGA8?
  • Integração com disciplina de Arquitetura de Computadores e Linguagem de Programação (Algoritmos)
  • Pode-se introduzir temas extras como síntese sonora, computação gráfica e afins
  • Desmistifica-se a eletrônica analógica e digital
  • Custo baixo: protoboards, componentes eletrônicos baratos, ferramentas utilizadas em grupos. Valor mais caro concentrado na protoboard e no CI ATMEGA8 (R$ 4,60 aprox.)
  • Aulas intensivamente práticas
  • Pode-se utilizar práticas rápidas de programação em Assembly para provar conceitos

Agenda

Referências


Page last modified on February 01, 2010, at 10:13 PM