Programação de Sistemas. Histórico de Sistemas Operacionais. Arquitetura de Sistemas Operacionais. Funcionalidades de Sistemas Operacionais. Gerência de Processos e Threads: Controle e Escalonamento. Impasses: Modelagem e Tratamento. Memória: Alocação, Gerência e Memória Virtual. Entrada e Saída: princípios de hardware e software, dispositivos periféricos. Sistema de Arquivos: Arquivos, Diretórios e Implementação. Proteção e Segurança. Sistemas com Múltiplos Processadores.
3. Cursos Relacionados
CIÊNCIAS DA COMPUTAÇÃO (208) - Currículo: 2007-1 (Obrigatória)
4. Objetivos
4.1 Objetivo Geral:
Possuir uma visão sistêmica e abrangente da estrutura, funções, técnicas, mecanismos, implementação, utilização e configuração de sistemas operacionais modernos, compreendendo sua relação com os demais níveis de organização de um computador e tendências futuras, e estar apto a avaliar mecanismos alternativos e a desenvolver os principais componentes de um sistema operacional e aplicativos que utilizem diretamente sua API.
4.2 Objetivos Específicos:
Compreender e descrever mecanismos, técnicas e conceitos relacionados aos sistemas operacionais e suas inter-relações.
Compreender e descrever a API, estrutura, funções, implementação e utilização de sistemas operacionais.
Analisar e comparar diferentes mecanismos, técnicas e algoritmos, e justificar uma escolha em cenário específico.
Projetar, modelar, simular, implementar e avaliar os principais componentes de um sistema operacional.
Modelar e implementar aplicativos que utilizem diretamente a API um sistema operacional.
Utilizar e configurar um sistema operacional.
Conhecer tendências em sistemas operacionais.
Desenvolver o espírito científico e reflexivo e o trabalho de pesquisa científica.
Utilizar práticas de estudo independente e atitudes profissionais e éticas.
5. Conteúdo Programático
Fundamentos [12 horas-aula]
Organização de sistemas computacionais
Plataformas computacionais
Organização de computadores
Hierarquia de memória
Comunicação com dispositivos de E/S
Suporte de hardware para sistemas operacionais
Classificação de sistemas operacionais
Histórico de sistemas operacionais
Décadas de 1940 a 2010
Projeto orientado a objetos
Serviços e interface um sistema operacional
Componentes e estrutura de um sistema operacional
Estudos de casos reais
Gerência de processos e threads [12 horas-aula]
Conceito de processos e fluxos de execução
Ciclo de vida de processos
Operações sobre processos e threads
Modelos de threads
Escalonamento da CPU
Algoritmos de escalonamento
Escalonamento de vários processadores
Escalonamento em tempo real
Avaliação de algoritmos de escalonamento
Gerência de memória [12 horas-aula]
Fundamentos
Requisitos
Relocação de código
Endereço lógico e endereço físico
Memória contígua
Partições Estáticas
Partições Dinâmicas
Buddy System
Swapping
Memória não contígua
Paginação
Segmentação
Proteção
Memória Virtual
Paginação
Segmentação
Segmentação paginada
Algoritmos de alocação e substituição
Paginação excessiva
Gerência de Entrada e Saída [12 horas-aula]
Hardware de E/S
Tipos de E/S
Acesso a dispositivos
Componentes do subsistemas de E/S
Tratadores de interrupção
Drivers de dispositivos
E/S independente de dispositivo
Gerenciamento de requisições de E/S
Estudos de casos
Timer
Disco
RAID
Sistemas de Arquivos [12 horas-aula]
A interface com o sistema de arquivos
Conceitos e operações
Métodos de acesso
Estrutura de diretórios
Proteção e coerência
Implementação do sistema de arquivos
Estruturação do sistema de arquivos
Métodos de alocação
Gerenciamento do espaço livre
Representação de diretórios
Eficiência, Recuperação e Proteção
Sistemas de arquivos remotos
Tendências em sistemas operacionais [12 horas-aula]
Projeto de sistemas operacionais
Administração de sistemas operacionais
Proteção e segurança em sistemas operacionais
Sistemas operacionais distribuídos
Sistemas operacionais embarcados
Sistemas multiprocessados
Sistemas operacionais para arquiteturas não convencionais
6. Bibliografia Básica
Tanenbaum, A. S., Sistemas Operacionais Modernos, 3a. edição, Prentice-Hall do Brasil, 2010.
7. Bibliografia Complementar
Oliveira, R. S. de, Toscani, S. S., Carissimi, A. da S., Sistemas Operacionais, Sagra Luzzatto, 2001.
Silberschatz, A., Galvin, P. B., Gagme, Greg. Fundamentos de sistemas operacionais: princípios básicos, Elsevier, 2011.