CI-1215: Sistemas Operacionais
- Disciplina: CI1215/CI215 - Sistemas Operacionais
- Carga Horária: teoria 30h, prática 30h, total 60h
- Professor: Carlos A. Maziero
Meu livro de sistemas Operacionais se encontra nesta página.
Objetivos
Capacitar o aluno a conhecer os fundamentos de sistemas operacionais, permitindo que o mesma tenha um entendimento do funcionamento deste. Também é objetivo capacitar o aluno a escrever programas concorrentes.
Ementa
Componentes de um sistema. Administração dos recursos: memória principal e secundária. Administração dos processos: prioridades, interrupção, filas. Comunicação entre processos: semáforos e mensagens. Segurança.
Conteúdo
- Visão geral de sistemas operacionais: objetivos, tipos, funcionalidades, estrutura interna, arquiteturas, mecanismos de hardware utilizados.
- Gerência de tarefas: contextos e processos, threads, escalonamento de tarefas.
- Comunicação entre tarefas: tipos de comunicação, mecanismos intra- e interprocessos.
- Coordenação entre tarefas: concorrência, condições de disputa, algoritmos básicos, semáforos, variáveis de condição, monitores, problemas clássicos, impasses.
- Estruturas de memória: tipos de memória, endereços físicos e lógicos, estrutura interna de um processo, segmentação, paginação, compartilhamento, localidade de referências, memória virtual, algoritmos de substituição de páginas.
- Sistemas de entrada e saída: dispositivos de entrada/saída, barramentos e interfaces, estratégias de interação, software de entrada/saída, drivers, principais sub-sistemas.
- Gerência de arquivos: o conceito de arquivo, atributos e operações, formatos de arquivos, semânticas de acesso, compartilhamento, nomeação e caminhos, diretórios, sistemas de arquivos, caching, alocação de arquivos, gerência de espaço livre.
Metodologia
- Teoria: aulas expositivas, com análise e discussão dos temas propostos.
- Prática: atividades referentes aos temas abordados nas aulas teóricas.
Avaliação
A média final da disciplina é composta pelas médias das provas e dos trabalhos desenvolvidos. A forma de cálculo está detalhada no cronograma de cada oferta.
Bibliografia
Básica:
- Sistemas Operacionais: Conceitos e Mecanismos (livro-texto).
- Sistemas Operacionais Modernos, 2a ed. Tanenbaum, Ed. Pearson, 2003.
- Operating system concepts. 7. ed. Silberschatz, Galvin & Gane. Wiley, 2005.
Complementar:
- Operating Systems: Three Easy Pieces, R. Arpaci-Dusseau and A. Arpaci-Dusseau (online).
- Advanced Linux Programming. Mitchell, Oldham, Samuel. Ed. New Riders, 2001.
- UNIX Systems Programming: Communication, Concurrency and Thread. Robbins & Robbins, Prentice Hall, 2007.
- Understanding the Linux Kernel. 3rd Edition. Cesati & Bovet. O'Reilly, 2005.
- C - A Linguagem de Programação Padrão ANSI. Kerningham, Ritchie. Editora Campus, 1989.
Material de apoio
Construção de sistemas operacionais:
- Livro The Design of the Unix Operating System, de Maurice Bach
- Livro UNIX Internals: The New Frontiers, de Uresh Vahalia
- Livro Linux Device Drivers, de Jonathan Corbet, Alessandro Rubini, e Greg Kroah-Hartman
Programação:
- Projeto de Algoritmos do prof. Paulo Feofiloff, IME/USP
UNIX/Linux:
- Excelente guia de BASH
Editores:
Outros recursos:
Podem ocorrer mudanças nesta página, com a devida divulgação prévia aos alunos.