CI-1215: Sistemas Operacionais
- Disciplina: CI1215/CI215 - Sistemas Operacionais
- Carga Horária: teoria 30h, prática 30h, total 60h
- Professor: Carlos A. Maziero
- Cronograma 2020-1 (suspenso)
A nova versão de 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 do conjunto de trabalhos desenvolvidos em cada bimestre.
- M = média(P1, P2, T1, T2), para aulas e avaliações presenciais
- P1: prova do 1º bimestre (parcial)
- P2: prova do 2º bimestre (parcial)
- T1: trabalhos do 1º bimestre (projetos P0 a P8)
- T2: trabalhos do 2º bimestre (projetos P9 a P15)
Estas regras são aplicadas em semestres com aulas presenciais. Durante os períodos com ensino remoto emergencial (ERE), as regras de avaliação estão definidas na página de cronograma do respectivo período.
Bibliografia
Básica:
- Sistemas Operacionais: Conceitos e Mecanismos (livro do professor).
- 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.
- UNIX Systems Programming: Communication, Concurrency and Thread. Robbins & Robbins, Prentice Hall, 2007.
- Advanced Linux Programming. Mitchell, Oldham, Samuel. Ed. New Riders, 2001.
- 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:
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.