Ministério da Educação UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ Câmpus Toledo PLANO DE ENSINO CURSO Superior de Tecnologia em Sistemas para Internet MATRIZ 30 FUNDAMENTAÇÃO Resolução nº 043/2013 do COGEP em 20 de agosto de 2013 LEGAL DISCIPLINA/UNIDADE CURRICULAR Fundamentos de sistemas operacionais CÓDIGO PERÍODO TSI32E 2.º AT 17 CARGA HORÁRIA (aulas) AP APS AD APCC 34 07 00 00 Total 58 AT: Atividades Teóricas, AP: Atividades Práticas, APS: Atividades Práticas Supervisionadas, AD: Atividades a Distância, APCC: Atividades Práticas como Componente Curricular. PRÉ-REQUISITO EQUIVALÊNCIA Não tem. OBJETIVOS Sistemas Operacionais gerenciam a operação de computadores disponibilizando a seus usuários flexibilização, eficiência, segurança, transparência e compartilhamento de recursos. A disciplina visa proporcionar ao discente uma visão aprofundada das arquiteturas e implementações de sistemas operacionais, enfocando sua importância e grande influência em outras áreas da computação. Essa visão diferenciada permitirá que o aluno possa recomentar o sistema operacional mais adequado às necessidades do usuário, bem como instalar e configurar sistemas operacionais em ambientes de produção. EMENTA Componentes e estrutura; Processos; Gerenciamento de memória; Sistema de arquivos; Dispositivos de I/O; Comunicação, concorrência e sincronização de processos. CONTEÚDO PROGRAMÁTICO ITEM EMENTA 1 Componentes e estrutura; 2 Processos; 3 Gerenciamento de memória; CONTEÚDO 1.1 Conceitos básicos 1.1.1 SO como máquina estendida 1.1.2 SO como gerente de recursos 1.2 Histórico evolutivo dos sistemas operacionais 1.3 Tipos de sistemas operacionais 1.3.1 Monoprogramáveis/monotarefa 1.3.2 Multiprogramáveis/multitarefa 1.4 Sistemas com múltiplos processadores 1.4.1 Sistemas paralelos 1.4.2 Sistemas distribuídos 1.5 Estrutura do sistema operacional 1.5.1 Serviços 1.5.2 Interface Usuário-Sistema Operacional 1.5.3 Chamadas de Sistema 1.5.4 Tipos de chamadas de sistema 1.5.5 Máquinas virtuais 2.1 Processos 2.1.1 Conceitos 2.1.2 Escalonamento 2.1.3 Operações 2.1.4 Comunicação entre processos 3.1 Memória Principal 3.1.1 Conceitos 4 5 6 3.1.2 Swapping 3.1.3 Paginação 3.1.4 Segmentação 3.2 Memória Virtual 3.2.1 Aspectos Básicos 3.2.2 Paginação por demanda 3.2.3 Cópia na escrita 3.2.4 Substituição de página. 4.1 Sistema de Arquivos 4.1.1 Nomeação 4.1.2 Estrutura 4.1.3 Tipos 4.1.4 Acesso 4.1.5 Atributos 4.1.6 Operações 4.2 Diretórios Sistema de arquivos; 4.2.1 Sistemas de diretório em nível único 4.2.2 Sistemas de diretórios hierárquicos 4.2.3 Nomes de caminhos 4.2.4 Operações 4.3 Implementação do Sistema de Arquivos 4.4 Gerenciamento e otimização 4.4.1 Gerenciamento de espaço em disco 4.4.2 Desempenho dos sistemas de arquivos 5.1 Princípios de hardware de E/S 5.1.1 Dispositivos 5.1.2 Controladores 5.1.3 DMA 5.2 Princípios de Software Dispositivos de I/O; 5.2.1 Objetivos 5.2.2 E/S Programada 5.2.3 E/S usando interrupção 5.2.4 E/S usando DMA 5.3 Interfaces com o usuário 5.4 Gerenciamento de energia 6.1 Comunicação entre processos 6.1.1 Especificação de concorrência 6.2 Threads 6.2.1 Visão Geral 6.2.2 Multithreading 6.2.3 Exemplos em Sistemas Operacionais 6.3 Escalonamento de CPU 6.3.1 Conceitos e critérios Comunicação, concorrência e sincronização 6.3.2 Avaliação de algoritmo de processos. 6.4 Sincronização de Processos 6.4.1 Fundamentos e o problema da seção crítica 6.4.2 Semáforos 6.4.3 Monitores 6.4 Deadlocks 6.4.1 Caracterização 6.4.2 Tratamento 6.4.3 Prevenção 6.4.4 Recuperação PROCEDIMENTOS DE ENSINO AULAS TEÓRICAS Nas aulas teóricas prevalecerão as explanações expositivo-dialogadas, com exemplificação e/ou discussões dos assuntos inerentes à disciplina. AULAS PRÁTICAS Nas aulas práticas serão utilizados softwares preferencialmente livres no Laboratório de Informática PROCEDIMENTOS DE AVALIAÇÃO A avaliação será composta por: provas, trabalhos e APS. REFERÊNCIAS Referências Básicas: FILHO, João Eriberto Mota. Descobrindo o Linux. 3. ed. São Paulo: Novatec, 2012. 928 p. ISBN 9788575222782 SILBERSCHATZ, Abraham; GALVIN, Peter Baer; GAGNE, Greg. Sistemas operacionais com java. 7. ed. Rio de Janeiro: Campus, 2008. 696 p. ISBN 9788535224061 FOROUZAN, Behrouz; MOSHARRAF, Firouz. Fundamentos da ciência da computação. 2. ed. São Paulo - SP: Cengage Learning, 2012. 576 p. ISBN 9788522110537. Referências Complementares: DEITEL, Harvey M.; DEITEL, Paul J.; CHOFFNES, David R. Sistemas operacionais. 3. ed. São Paulo: Pearson, c2005. 760 p. ISBN 9788576050117. NEVES, Julio Cezar. Programação shell linux. 8. ed. Rio de Janeiro: Brasport, 2010. 596 p. ISBN 9788574524405. PANNAIN, Ricardo; BEHRENS, Frank Herman; PIVA JR., Dilermano. Organização básica de computadores e linguagem de montagem. Rio de Janeiro: Campus, 2012. 424 p. ISBN 8535250212. OLIVEIRA, Rômulo Silva de; CARISSIMI, Alexandre da Silva; TOSCANI, Simão Sirineo. Sistemas operacionais. 4. ed. Porto Alegre: Bookman, Instituto de Informática da UFRGS, 2010. 374 p. ISBN 9788577805211. MORIMOTO, Carlos E. Linux: guia prático. Porto Alegre: Sul Editores, 2010. 719 p. ISBN 978859959315-8.