UFPR · DELT · Contact
Sistemas Operacionais Embarcados TE244

Avisos
  1. Notas finais, com trabalhos, provas e exame.
  2. Vistas de provas e trabalhos: 16/12, 18:50-20:30.
  3. A prova de segunda chamada será realizada na segunda feira, 16/12, 18:50-20:30.
  4. Na semana de 4 a 8 de novembro não serão apresentados conteúdos novos nas aulas devido a realização da semana acadêmica do curso. Na segunda (4/11) serão apresentadas as provas e resolvidas dúvidas do trabalho. Faltas serão abonadas com a apresentação de certificado de participação na SEATEL.

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. Gerência de Memória.
  8. 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)
  9. Segurança: princípios de criptografia. Armazenamento de senhas.
  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 de provas

Especificação de trabalhos
  1. Trabalho 1 - Parte 1. Data de entrega: 10/10/2013.
  2. Trabalho 2 . Data de entrega: 2/12/2013.

Exemplos apresentados em aula
  1. Programa consumidor de CPU
  2. Exemplo Fork
  3. Programa consumidor de CPU versão multi-thread
  4. Comandos Unix - Processos
  5. Exemplo de problema com condições de corrida. Para compilar, use gcc -o ex1 ex1.c -pthread
  6. Solução para o problema acima utilizando semáforo. Para compilar, use gcc -o ex1-solucao ex1-solucao.c -pthread -lrt
  7. Simulação do problema produtor-consumidor. Neste exemplo, 2 produtores e 1 consumidor.
  8. 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 (atualizada) para prova 1. Entregar no dia da prova para completar o trabalho 1 (individual, com peso de 20% do primeiro trabalho).

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

Links
  1. Padrão POSIX.
  2. Design and Implementation of the Second Extended Filesystem
  3. Linux File System (EXT2)
  4. Organização de diretórios no Unix.
  5. Microsoft TechNet: How NTFS works.
  6. Microsoft TechNet: How FAT works.
  7. Métodos de criptografia clássica.

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