====== Sistemas Operacionais: Conceitos e Mecanismos ====== /* Entrada velha, que apaguei por erro | **Referência**: | [[https://www.researchgate.net/publication/332233385_Sistemas_Operacionais_Conceitos_e_Mecanismos|MAZIERO, C. Sistemas Operacionais: Conceitos e Mecanismos. Editora UFPR, 2019. 456 p. ISBN 978-85-7335-340-2]]. | */ | **Referência**: | [[https://www.researchgate.net/publication/343921399_Sistemas_Operacionais_Conceitos_e_Mecanismos|MAZIERO, C. Sistemas Operacionais: Conceitos e Mecanismos. Editora da UFPR, 2019. 456 p. ISBN 978-85-7335-340-2]]. | ===== 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/343921399_Sistemas_Operacionais_Conceitos_e_Mecanismos|ResearchGate]]) * {{socm-livro-a5.pdf|Em formato A5}} (com margens menores, para e-readers, tablets, etc) * [[Errata|Histórico e errata]] * [[socm-velho:start|Versão antiga deste livro]] 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: Discos rígidos | {{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 [[sc:start|nesta página]]. **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. ===== Laboratório de SO ===== Quem ministra 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 * [[https://www.cl.cam.ac.uk/~rja14/book.html|Security Engineering: A Guide to Building Dependable Distributed Systems]], Ross J. Anderson * [[http://pages.cs.wisc.edu/~remzi/OSTEP|Operating Systems: Three Easy Pieces]], R. Arpaci-Dusseau and A. Arpaci-Dusseau * [[https://www.iecc.com/linker/|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 * [[https://greenteapress.com/wp/semaphores/|The Little Book of Semaphores]], Allen B. Downey * [[https://diveintosystems.org/|Dive into Systems]], S.Mathews, T. Newhall, K. Webb