Essa é uma revisão anterior do documento!
Sistemas Operacionais: Conceitos e Mecanismos
Apresentação
Os sistemas operacionais são elementos fundamentais para o funcionamento de praticamente qualquer sistema de computação, dos minúsculos sistemas embarcados e telefones celulares aos gigantescos centros de processamento de dados das grandes empresas. Apesar da imensa diversidade de sistemas operacionais existentes, eles tentam resolvem problemas de mesma natureza e seguem basicamente os mesmos princípios.
Conhecer Sistemas Operacionais a fundo não é algo reservado a hackers, mas importante para todo profissional de computação, pois os mecanismos implementados pelo sistema operacional afetam diretamente o comportamento e o desempenho das aplicações. Além disso, o sistema operacional é uma peça chave na configuração de serviços de rede e na segurança do sistema.
Existem muitos livros de sistemas operacionais disponíveis no mercado, quase todos excelentes, escritos por profissionais reconhecidos mundialmente. Entretanto, bons livros de Sistemas Operacionais podem custar centenas de reais, o que os torna inacessíveis a uma parcela significativa da população. Este livro seria apenas mais uma opção nas livrarias, não fosse por um pequeno detalhe: foi concebido como um Livro Aberto, desde seu início. Um livro aberto (do inglês Open Book) é um livro amplamente disponível na Internet em formato digital, sem custo.
Este livro é o resultado de vários anos de trabalho como professor da disciplina de Sistemas Operacionais na UFPR, UTFPR e PUCPR. Embora eu o tenha redigido sozinho, ele nunca teria se tornado uma realidade sem a ajuda e o apoio de muitas pessoas. A todas elas, muito obrigado!
Conteúdo
![]() |
Livro completo:
- Em formato A4 (também disponível no ResearchGate)
- Em formato A5 (com margens menores, para e-readers, tablets, etc)
Capítulos individuais e material complementar:
Capítulo | texto | slides | vídeo |
---|---|---|---|
Páginas iniciais, sumário | socm-00.pdf | ||
Parte I: Introdução | |||
1: Conceitos básicos | socm-01.pdf | socm-slides-01.pdf | socm-video-01.mkv |
2: Estrutura de um SO | socm-02.pdf | socm-slides-02.pdf | socm-video-02.mkv |
3: Arquiteturas de SOs | socm-03.pdf | socm-slides-03.pdf | socm-video-03.mkv |
Parte II: Gestão de tarefas | |||
4: O conceito de tarefa | socm-04.pdf | socm-slides-04.pdf | socm-video-04.mkv |
5: Implementação de tarefas | socm-05.pdf | socm-slides-05.pdf | socm-video-05.mkv |
6: Escalonamento de tarefas | socm-06.pdf | socm-slides-06.pdf | socm-video-06.mkv |
7: Tópicos em gestão de tarefas | socm-07.pdf | socm-slides-07.pdf | socm-video-07.mkv |
Parte III: Interação entre tarefas | |||
8: Comunicação entre tarefas | socm-08.pdf | socm-slides-08.pdf | socm-video-08.mkv |
9: Mecanismos de comunicação | socm-09.pdf | socm-slides-09.pdf | socm-video-09.mkv |
10: Coordenação entre tarefas | socm-10.pdf | socm-slides-10.pdf | socm-video-10.mkv |
11: Mecanismos de coordenação | socm-11.pdf | socm-slides-11.pdf | socm-video-11.mkv |
12: Problemas clássicos | socm-12.pdf | socm-slides-12.pdf | socm-video-12.mkv |
13: Impasses | socm-13.pdf | socm-slides-13.pdf | socm-video-13.mkv |
Parte IV: Gestão da memória | |||
14: Hardware de memória | socm-14.pdf | socm-slides-14.pdf | socm-video-14.mkv |
15: Uso da memória | socm-15.pdf | socm-slides-15.pdf | socm-video-15.mkv |
16: Alocação de memória | socm-16.pdf | socm-slides-16.pdf | socm-video-16.mkv |
17: Paginação em disco | socm-17.pdf | socm-slides-17.pdf | socm-video-17.mkv |
18: Tópicos em gestão de memória | socm-18.pdf | socm-slides-18.pdf | socm-video-18.mkv |
Parte V: Gestão de entrada/saída | |||
19: Hardware de entrada/saída | socm-19.pdf | socm-slides-19.pdf | socm-video-19.mkv |
20: Software de entrada/saída | socm-20.pdf | socm-slides-20.pdf | socm-video-20.mkv |
21: Dispositivos de armazenamento | socm-21.pdf | socm-slides-21.pdf | socm-video-21.mkv |
Parte VI: Gestão de arquivos | |||
22: O conceito de arquivo | socm-22.pdf | socm-slides-22.pdf | socm-video-22.mkv |
23: Uso de arquivos | socm-23.pdf | socm-slides-23.pdf | socm-video-23.mkv |
24: Sistemas de arquivos | socm-24.pdf | socm-slides-24.pdf | socm-video-24.mkv |
25: Diretórios e atalhos | socm-25.pdf | socm-slides-25.pdf | socm-video-25.mkv |
Parte VII: Segurança | |||
26: Conceitos básicos de segurança | socm-26.pdf | ||
27: Fundamentos de criptografia | socm-27.pdf | ||
28: Autenticação | socm-28.pdf | ||
29: Controle de acesso | socm-29.pdf | ||
30: Mecanismos de auditoria | socm-30.pdf | ||
Parte VIII: Virtualização | |||
31: O conceito de virtualização | socm-31.pdf | ||
32: Tipos de máquinas virtuais | socm-32.pdf | ||
33: Construção de máquinas virtuais | socm-33.pdf | ||
34: Virtualização na prática | socm-34.pdf |
Os capítulos e slides da parte de Segurança estão migrando para um novo livro-texto sobre Segurança Computacional. Eles podem ser encontrados nesta página.
Laboratório de SO
Quem ministra aulas de laboratório de Sistemas Operacionais pode ter interesse em ler minha tese de professor titular na PUCPR sobre aulas práticas de SO (ou um artigo resumindo a tese, publicado no SBC WEI 2002). Pode também dar uma olhada nos projetos que desenvolvo com meus alunos, nesta página.
Sobre livros abertos
Discussão sobre livros abertos:
- Artigo na Communications of the ACM
Exemplos de livros de computação abertos:
- Open Textbook Catalog da Universidade de Minnesota
- Handbook of Applied Cryptography, Alfred Menezes
- Security Engineering: A Guide to Building Dependable Distributed Systems, Ross J. Anderson
- Operating Systems: Three Easy Pieces, R. Arpaci-Dusseau and A. Arpaci-Dusseau
- Linkers and Loaders, John Levine
- Linux Device Drivers, Jonathan Corbet, Alessandro Rubini, Greg Kroah-Hartman
- How to Think Like a Computer Scientist - Learning with Python, Allen Downey, Jeff Elkner e Chris Meyers
- Sistemas de Tempo-Real, Jean-Marie Farines, Joni Fraga e Rômulo de Oliveira
- Redes de Petri, Janete Cardoso e Robert Valette
- The Little Book of Semaphores, Allen B. Downey
- Dive into Systems, S.Mathews, T. Newhall, K. Webb