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
so:start [2023/07/31 08:26] mazieroso:start [2024/03/01 11:24] (atual) maziero
Linha 1: Linha 1:
 +====== CI-1215: Sistemas Operacionais ======
 +
 +  * **Disciplina**: CI1215/CI215 - Sistemas Operacionais
 +  * **Carga Horária**: teoria 30h, prática 30h, total 60h
 +  * **Professor**: Carlos A. Maziero
 +
 +  * [[Cronograma 2024/1]]
 +
 +<note>
 +Meu livro de sistemas Operacionais se encontra [[socm:start|nesta página]].
 +</note>
 +
 +===== 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.
 +
 +/*  * **Proteção e segurança**: propriedades e princípios de segurança, vulnerabilidades e ataques, infraestrutura de segurança, aspectos de autenticação de usuários, mecanismos de controle de acesso, controle de uso de recursos, mecanismos de auditoria. */
 +/*  * **Virtualização**: conceitos básicos, definição formal, suporte de hardware, tipos de máquinas virtuais, técnicas de virtualização, aplicações e ambientes. */
 +
 +===== Metodologia =====
 +
 +  * **Teoria**: aulas expositivas, com análise e discussão dos temas propostos.
 +  * **Prática**: atividades referentes aos temas abordados nas aulas teóricas.
 +  * [[Projetos desenvolvidos]]
 +  * [[teaching:Regras das atividades de laboratório]]
 +
 +===== 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:
 +
 +  * [[socm:start|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:
 +
 +  * [[http://pages.cs.wisc.edu/~remzi/OSTEP|Operating Systems: Three Easy Pieces]], R. Arpaci-Dusseau and A. Arpaci-Dusseau (online).
 +  * //[[https://mentorembedded.github.io/advancedlinuxprogramming/|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
 +  * [[https://wiki.osdev.org|OsDev wiki]]
 +  * [[http://www.memorymanagement.org|Memory Management Reference]]
 +
 +Programação:
 +
 +  * [[http://www.ime.usp.br/~pf/algoritmos/|Projeto de Algoritmos]] do prof. Paulo Feofiloff, IME/USP
 +  * [[http://beej.us/guide/bgc|Beej's Guide to C Programming]]
 +  * [[http://beej.us/guide/bgipc|Beej's Guide to Unix Interprocess Communication]]
 +
 +UNIX/Linux:
 +
 +  * [[unix:Histórico do Unix e Linux]]
 +  * Comandos básicos ([[unix:comandos básicos]], [[unix:permissões em arquivos]], [[unix:gestão de processos]])
 +  * Uso do shell BASH ([[unix:shell básico]], [[unix:shell avançado]], [[unix:shell scripts]])
 +  * [[unix:Desenvolvimento em Linux]]
 +  * Excelente [[http://wiki.bash-hackers.org|guia de BASH]]
 +  * [[http://www.guiafoca.org|Guias FOCA Linux]]
 +
 +Editores:
 +
 +  * [[http://qref.sourceforge.net/Debian/reference/ch-edit.pt-br.html|Diversas informações sobre editores]]
 +
 +Outros recursos:
 +
 +  * [[https://code.google.com/p/kvnix/|Projeto KVNIX]]
 +  * [[Termos de SO em português]]
 +
 +<note important>
 +Podem ocorrer mudanças nesta página, com a devida divulgação prévia aos alunos.
 +</note>