Sistemas Operacionais Ementa: Introdução a Sistemas Operacionais; Multiprogramação (Multitarefa); Gerência do Processador;Gerência de Memória; Gerência de Entrada e Saída; Desenvolvimento de Sistemas Operacionais. Objetivo: Compreensão da importância dos sistemas operacionais para o controle e aproveitamento dos recursos do computador; conhecimento das características e dos diversos tipos de mecanismos de gerenciamento dos recursos do computador; compreensão da necessidade de estruturação adequada de sistemas operacionais; experiência prática em desenvolvimento de componentes de um sistema operacional em ambiente real ou de simulação. Carga-horária: 60h Conteúdo programático: 1. Introdução a Sistemas Operacionais 1.1. Conceito básico 1.2. Objetivos do sistema operacional 1.3. Sistema operacional na visão do usuário 1.4. Sistema operacional na visão de projeto 1.5. Histórico de sistemas operacionais 2. Multiprogramação (Multitarefa) 2.1. Mecanismo básico 2.2. O conceito de processo 2.3. Ciclos de um processo 2.4. Relacionamento entre processos 2.5. Estados de um processo 2.6. Gerência de filas 2.7. Mecanismo de interrupções 2.8. Proteção entre processos 3. Gerência do Processador 3.1. Bloco descritor de processo 3.2. Chaveamento de contexto 3.3. Threads 3.4. Escalonadores 3.5. Algoritmos de escalonamento 4. Gerência de Memória 4.1. Memória lógica e memória física 4.2. Partições fixas 4.3. Partições variáveis 4.4. Swapping 4.5. Paginação 4.6. Segmentação 4.7. Segmentação paginada 5. Gerência de Entrada e Saída 5.1. Princípios básicos de hardware 5.2. Princípios básicos de software de entrada e saída 5.3. Dispositivos periféricos típicos 6. Desenvolvimento de Sistemas Operacionais 6.1. Aspectos de um projeto de sistema operacional 6.2. Implementação de módulos de um sistema operacional 6.3. Simulação e Emulação de Sistemas operacionais Bibliografia básica: ARAUJO, Jário. Comandos do linux : uso eficiente e avançado. Rio de Janeiro: Ciência Moderna, 2001. MACHADO, Francis Berenger. Arquitetura de sistemas operacionais. Rio de Janeiro: LTC, 2002. OLIVEIRA, Rômulo Silva; CARÍSSIMI, Alexandre da Silva; TOSCANI, Simão Sirineo. Sistemas Operacionais. Porto Alegre: SAGRALUZZATTO, 2002. SILBERSCHATZ, Abraham. Sistemas operacionais: conceitos e aplicações. Rio de Janeiro: Campus, 2001. TANENBAUM, Andrew S.; Sistemas Operacionais Modernos. São Paulo: PRENTICE-HALL, 2003. TOSCANI, Simão Sirineo. Sistemas operacionais e programação concorrente. Porto Alegre: Sagra Luzzatto, 2003. Bibliografia complementar: BOVET, Daniel P.; CESATI, Marco.Understanding Kernel.O´Reilly, 3rd edition, 2005. the Linux DEITEL, Choffnes. Sistemas Operacionais com Java. 3ª edição. Pearson, 2005. LOVE, Robert. Linux Kernel Development. Novell Press, 2nd edition, 2005. TANENBAUM, Andrew S.; WOODHULL, Albert S..Operating Systems Design and Implementation.Prentice-Hall, 3rd edition, 2006.