Dar ao aluno as bases conceituais e técnicas para compreender o funcionamento, utilizar, especificar e avaliar sistemas operacionais para uso nas diversas aplicações profissionais. Familiarização com a aplicação e com os diversos aspectos da implementação de sistemas operacionais. Atividades práticas, realizadas fora de classe, são essenciais à fixação dos conceitos (por exemplo, projetos envolvendo desenvolvimentos de simuladores ou de alterações no código de um sistema operacional moderno).
Introdução; Gerenciamento de processadores; Gerenciamento de entrada/saída; Gerenciamento de memória; Sistemas de arquivos; Estudo comparativo de casos. Projeto de subconjunto de funções de um sistema operacional.
I Conceitos e fundamentos a) Introdução, história, tipos, conceitos, estrutura dos S.O. e suas interfaces; Tratamento de interrupções; b) Processos e threads, comunicação, escalonamento; multiprogramação; problemas clássicos. c) Espaços de endereçamento, gerenciamento de memória real e virtual. d) Memória física: alocação contígua; particionamento simples e relocável; overlays; swapping; e) Memória virtual: Paginação, algoritmos de substituição. Segmentação pura e segmentação com paginação; f) Sistemas de arquivos, diretórios, hierarquia, compartilhamento, proteção; g) Gerenciamento de entrada e saída, discos, relógios, interfaces com o usuário, energia; conceito de spooling; h) Deadlocks: conceito, algoritmos de detecção, recuperação e prevenção; i) Multiprocessamento, virtualização, sistemas distribuídos; j) Segurança, criptografia, proteção, autenticação, vulnerabilidades, malware, ataques, defesas. k) Sistemas embarcados, sistemas distribuídos. l) Estudos comparativos de sistemas operacionais para microcomputadores, sistemas embarcados, distribuídos e para mainframes: DOS, UNIX, LINUX, MS-Windows, p-system, Mach, Amoeba, OS-360, OS-390, Open VMS Alpha e outros. II Projeto: Projeto e implementação de um subconjunto das funcionalidades de um sistema operacional: Elaboração de um software (simulador ou extensões a um sistema operacional existente) que implemente um conjunto de funções típicas dos sistemas operacionais, em conformidade com especificações fornecidas.
[1] Andrew S. Tanenbaum “Sistemas Operacionais Modernos” Pearson, 2009 – 3a. edição ISBN 978-85-7605-237-1 [2] Andrew S. Tanenbaum “Sistemas Operacionais – projeto e implementação” Bookman, 2008 – 3a. edição ISBN 978-85-7780-057-5 [3] Abraham Silberschatz, Peter B. Galvin, Greg Gagne "Operating System Concepts", 8th (update) Edition, 2011 ISBN-13: 978-1118112731 [4] William Stallings "Operating Systems: Internals and Design Principles" 7th Edition, 2011 ISBN-13: 978-0132309981