Sistemas Operacionais Embarcados TE244 


Avisos:

  1. A especificação do primeiro trabalho está disponível.
  2. Está disponível uma lista de exercícios para primeira prova. Bom estudo.
  3. Notas da primeira prova.
  4. A entrega do trabalho 1 foi adiada para 05/02/2013.
  5. Lista de presenças até 14/02/2013.
  6. O segundo trabalho será a lista de exercícios sobre filas. A entrega será no dia da prova.
  7. Notas do primeiro trabalho.
  8. Prova de segunda chamada: 19/03 18:30h Alterado para 20:30h. A prova será aplicada pela Prof. Gisele na sala PK1.
  9. Notas do Semestre e Lista de Presenças.
  10. As notas foram atualizadas com o resultado da prova de segunda chamada.
  11. As notas foram atualizadas com o resultado do exame final.

Lista de Temas Tratados nas Aulas

  1. Arquitetura básica de computadores. Processador. Barramento. Interrupções. Memória. Dispositivos de E/S.
  2. Organização básica do sistema operacional. Histórico de evolução dos sistemas operacionais e hardware.
  3. Escalonamento de processos. Sistemas batch. Sistemas de tempo compartilhado. Algoritmos de escalonamento. Princípios de escalonamento em sistemas de tempo real.
  4. Visualização de processos e comandos do sistema Unix.
  5. Concorrência e sincronização de processos. Problemas de concorrência. Alocação de recursos e deadlocks.
  6. Semáforos. Implementação em sistemas Unix.
  7. Sistemas de arquivos:
    1. Hardware de disco, bloco, cilindro, cabeças de leitura.
    2. Atributos de arquivos em sistemas Unix e Windows
    3. FAT - File Alocation Table
    4. Implementação com Nós I
    5. NTFS (NT File System)
  8. Segurança: princípios de criptografia. Armazenamento de senhas.
  9. Avaliação de desempenho de sistemas. Introdução à teoria de filas.
  10. Sistema Embarcado Android

Critérios de Avaliação

Média do semestre: (P1+P2+T1+T2)/4
P1- Prova1, P2- Prova2, T1- Trabalho 1, T2- Trabalho 2

Datas das provas:


Especificação de Trabalhos

  1. Trabalho 1. Data de Entrega: 21/12/2012 Adiado para 5/02/2013
  2. Trabalho 2 . Lista de exercícios sobre filas. Data de entrega: 14/03/2013.

Exemplos vistos em sala

  1. Programa consumidor de CPU
  2. Programa consumidor de CPU versão multi-thread
  3. Comandos Unix - Processos
  4. Exemplo de problema com condições de corrida. Para compilar, use gcc -o ex1 ex1.c -pthread
  5. Solução para o problema acima utilizando semáforo. Para compilar, use gcc -o ex1-solucao ex1-solucao.c -pthread -lrt
  6. Simulação do problema produtor-consumidor. Neste exemplo, 2 produtores e 1 consumidor.
  7. Simulação do problema do jantar dos filósofos. A simulação usa semáforos para representar os garfos.

Listas de Exercícios

  1. Lista de Exercícios para prova 1

Referências

  1. TANENBAUM, A. S. Sistemas Operacionais Modernos. Ed. Pearson Prentice-Hall.
  2. SILBERCHATZ, A., J. L. Peterson. Sistemas Operacionais . Ed. Pearson Prentice-Hall.
  3. TANENBAUM, A. S. e A.S. Woodhull. Sistemas Operacionais - Projeto e Implementação. Ed. Bookman.
  4. DAVIS, W. S. Sistemas Operacionais. Ed. Campus.
  5. SHAY, W. A. Sistemas Operacionais. Ed. Makron Books
  6. MAZIERO, C. Sistemas Operacionais. On line: http://dainf.ct.utfpr.edu.br/~maziero/doku.php/so:livro_de_sistemas_operacionais


Curiosidades

  1. Em 1997 pousou em Marte uma sonda da NASA, na missão chamada Mars Pathfinder. Inicialmente, tudo parecia bem até que o sistema embarcado começar a apresentar problemas. O watch dog do sistema detectava problemas e produzia uma reinicialização geral de tempos em tempos. O problema foi debugado e solucionado. A questão central foi um problema de inversão de prioridades, levando a resultados inesperados e perda de deadlines das tarefa no escalonamento de tarefas pelo sistema operacional embarcado. Para obter mais informações: http://research.microsoft.com/en-us/um/people/mbj/Mars_Pathfinder/Mars_Pathfinder.html e http://en.wikipedia.org/wiki/Priority_inversion