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
Última revisãoAmbos lados da revisão seguinte
so:start [2023/07/31 08:25] – [CI-1215: Sistemas Operacionais] mazieroso:start [2024/02/01 10:43] 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 2023/1]]
 +  * <del>Cronograma 2023/2</del> (turma cancelada)
 +  * [[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>
  
  • so/start.txt
  • Última modificação: 2024/03/01 11:24
  • por maziero