Ferramentas do usuário

Ferramentas do site


socm:start

Diferenças

Aqui você vê as diferenças entre duas revisões dessa página.

Link para esta página de comparações

Ambos lados da revisão anterior Revisão anterior
Próxima revisão
Revisão anterior
socm:start [2019/02/11 11:23]
maziero
socm:start [2019/10/22 16:37] (atual)
maziero [Conteúdo]
Linha 1: Linha 1:
 +====== Sistemas Operacionais:​ Conceitos e Mecanismos ======
 +
 +<​note>​
 +Esta página contém a **versão 2019** do livro de Sistemas Operacionais,​ amplamente revista e atualizada.
 +
 +Para a página da versão anterior, **[[socm-velho:​start|clique aqui]]**.
 +</​note>​
 +
 +===== 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 =====
 +
 +| {{http://​creativecommons.org/​images/​public/​somerights20.png }} Este livro está disponível sob a licença [[http://​creativecommons.org/​licenses/​by-nc-sa/​3.0/​deed.pt_BR|Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported]]. Em resumo, você deve creditar a obra da forma especificada pelo autor ou licenciante (mas não de maneira que sugira que estes concedem qualquer aval a você ou ao seu uso da obra). **Você não pode usar esta obra para fins comerciais**. Se você alterar, transformar ou criar com base nesta obra, você poderá distribuir a obra resultante apenas sob a mesma licença, ou sob uma licença similar à presente. |
 +
 +Livro completo:
 +
 +  * {{socm-livro.pdf|Em formato A4}} (também disponível no [[https://​www.researchgate.net/​publication/​332233385_Sistemas_Operacionais_Conceitos_e_Mecanismos|ResearchGate]])
 +  * {{socm-livro-a5.pdf|Em formato A5}} (para e-readers, tablets, etc)
 +  * [[Errata|Histórico e errata]]
 +
 +Capítulos individuais e //slides//:
 +
 +^ Capítulo ^ texto ^ slides ^
 +| Páginas iniciais, sumário | {{socm-texto-00.pdf}} | |
 +^ Parte I: Introdução ^^^
 +| 1: Conceitos básicos | {{socm-texto-01.pdf}} | {{socm-slides-01.pdf}} |
 +| 2: Estrutura de um SO | {{socm-texto-02.pdf}} | {{socm-slides-02.pdf}} |
 +| 3: Arquiteturas de SOs | {{socm-texto-03.pdf}} | {{socm-slides-03.pdf}} |
 +^ Parte II: Gestão de tarefas ^^^
 +| 4: O conceito de tarefa | {{socm-texto-04.pdf}} | {{socm-slides-04.pdf}} |
 +| 5: Implementação de tarefas | {{socm-texto-05.pdf}} | {{socm-slides-05.pdf}} |
 +| 6: Escalonamento de tarefas | {{socm-texto-06.pdf}} | {{socm-slides-06.pdf}} |
 +| 7: Tópicos em gestão de tarefas | {{socm-texto-07.pdf}} | {{socm-slides-07.pdf}} |
 +^ Parte III: Interação entre tarefas ^^^
 +| 8: Comunicação entre tarefas | {{socm-texto-08.pdf}} | {{socm-slides-08.pdf}} |
 +| 9: Mecanismos de comunicação | {{socm-texto-09.pdf}} | {{socm-slides-09.pdf}} |
 +| 10: Coordenação entre tarefas | {{socm-texto-10.pdf}} | {{socm-slides-10.pdf}} |
 +| 11: Mecanismos de coordenação | {{socm-texto-11.pdf}} | {{socm-slides-11.pdf}} |
 +| 12: Problemas clássicos | {{socm-texto-12.pdf}} | {{socm-slides-12.pdf}} |
 +| 13: Impasses | {{socm-texto-13.pdf}} | {{socm-slides-13.pdf}} |
 +^ Parte IV: Gestão da memória ^^^
 +| 14: Conceitos básicos | {{socm-texto-14.pdf}} | {{socm-slides-14.pdf}} |
 +| 15: Hardware de memória | {{socm-texto-15.pdf}} | {{socm-slides-15.pdf}} |
 +| 16: Alocação de memória | {{socm-texto-16.pdf}} | {{socm-slides-16.pdf}} |
 +| 17: Paginação em disco |  {{socm-texto-17.pdf}} | {{socm-slides-17.pdf}} |
 +| 18: Tópicos em gestão de memória |  {{socm-texto-18.pdf}} | {{socm-slides-18.pdf}} |
 +^ Parte V: Gestão de entrada/​saída ^^^
 +| 19: Hardware de entrada/​saída | {{socm-texto-19.pdf}} | {{socm-slides-19.pdf}} |
 +| 20: Software de entrada/​saída | {{socm-texto-20.pdf}} | {{socm-slides-20.pdf}} |
 +| 21: Discos rígidos | {{socm-texto-21.pdf}} | {{socm-slides-21.pdf}} |
 +^ Parte VI: Gestão de arquivos ^^^
 +| 22: O conceito de arquivo | {{socm-texto-22.pdf}} | {{socm-slides-22.pdf}} |
 +| 23: Uso de arquivos | {{socm-texto-23.pdf}} | {{socm-slides-23.pdf}} |
 +| 24: Sistemas de arquivos | {{socm-texto-24.pdf}} | {{socm-slides-24.pdf}} |
 +| 25: Diretórios e atalhos | {{socm-texto-25.pdf}} | {{socm-slides-25.pdf}} |
 +^ Parte VII: Segurança ^^^
 +| 26: Conceitos básicos de segurança | {{socm-texto-26.pdf}} |  |
 +| 27: Fundamentos de criptografia | {{socm-texto-27.pdf}} |  |
 +| 28: Autenticação | {{socm-texto-28.pdf}} |  |
 +| 29: Controle de acesso | {{socm-texto-29.pdf}} |  |
 +| 30: Mecanismos de auditoria | {{socm-texto-30.pdf}} |  |
 +^ Parte VIII: Virtualização ^^^
 +| 31: O conceito de virtualização | {{socm-texto-31.pdf}} |  |
 +| 32: Tipos de máquinas virtuais | {{socm-texto-32.pdf}} |  |
 +| 33: Construção de máquinas virtuais | {{socm-texto-33.pdf}} |  |
 +| 34: Virtualização na prática | {{socm-texto-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 [[isc:​start|nesta página]].
 +
 +<note warning>
 +**Não respondo e-mails pedindo respostas das questões**. Tomei esta decisão devido ao grande número de estudantes que me escrevem pedindo "​respostas prontas"​ dos exercícios,​ para entregar a seus professores. A maioria das respostas podem ser encontradas facilmente no texto e/ou em outros livros de Sistemas Operacionais.
 +</​note>​
 +
 +===== Laboratório de SO =====
 +
 +Quem ministrar aulas de laboratório de Sistemas Operacionais pode ter interesse em ler minha {{research:​2001-tese-titular.pdf|tese de professor titular}} na PUCPR sobre aulas práticas de SO (ou um {{research:​2002-sbcwei.pdf|artigo}} resumindo a tese, publicado no SBC WEI 2002). Pode também dar uma olhada nos projetos que desenvolvo com meus alunos, [[so:​projetos_desenvolvidos|nesta página]].
 +
 +===== Sobre livros abertos =====
 +
 +Discussão sobre livros abertos:
 +
 +  * [[http://​doi.acm.org/​10.1145/​1378727.1388950|Artigo]] na //​Communications of the ACM//
 +  * [[http://​www.maketextbooksaffordable.org]]
 +  * [[http://​oreilly.com/​openbook/​]]
 +  * [[http://​news.slashdot.org/​article.pl?​sid=08/​08/​19/​1316227|Artigo na Slashdot]]
 +
 +Exemplos de livros de computação abertos:
 +
 +  * [[https://​open.umn.edu/​opentextbooks|Open Textbook Catalog]] da Universidade de Minnesota.
 +  * [[http://​www.cacr.math.uwaterloo.ca/​hac/​|Handbook of Applied Cryptography]],​ Alfred Menezes.
 +  * [[http://​darcs.olsner.se/​Linker/​linker-book/​|Linkers and Loaders]], John Levine.
 +  * [[http://​oreilly.com/​catalog/​linuxdrive3/​book/​index.csp|Linux Device Drivers]], Jonathan Corbet, Alessandro Rubini, Greg Kroah-Hartman.
 +  * [[http://​www.greenteapress.com/​thinkpython/​thinkCSpy/​|How to Think Like a Computer Scientist - Learning with Python]], Allen Downey, Jeff Elkner e Chris Meyers.
 +  * [[http://​en.wikibooks.org/​wiki/​Wikibooks:​Computing_department|Wikibooks on Computing]].
 +  * [[http://​www.das.ufsc.br/​~romulo/​|Sistemas de Tempo-Real]],​ Jean-Marie Farines, Joni Fraga e Rômulo de Oliveira.
 +  * [[http://​valetterobert.free.fr/​enseignement.d/​livroweb101004.pdf|Redes de Petri]], Janete Cardoso e Robert Valette.