UNIVERSIDADE DA MADEIRA Sistemas Operativos Licenciatura em Engenharia Informática (LEI) Licenciatura em Engenharia de Telecomunicações e Redes (LETR) Licenciatura em Ensino de Informática (LEnsI) 2003/2004-1º Ano 2º Semestre 1. OBJECTIVOS Dotar os alunos de conhecimentos teóricos e práticos sobre sistemas operativos, em particular, as funções e estrutura de um sistema operativo, as suas abstracções principais, identificar e usar os serviços de um sistema operativo e compreender os principais algoritmos subjacentes ao funcionamento de um sistema operativo. 2. PROGRAMA RESUMIDO Introdução: objectivos dos sistemas operativos, evolução história, tipos de sistemas operativos, arquitectura e modelo computacional. Processos: pseudoparalelismo, processador, processo e programa, mecanismos de sincronização, exclusão mútua, semáforos, gestão de recursos, cooperação entre processos, interblocagem. O núcleo do sistema operativo: estrutura e gestçao de processos, implementação da sincronização e das funções de sistema. Mecanismos de gestão de memoria: endereçamento real e virtual. Algoritmos de gestão de memória: alocação de memória, algoritmos de transferência, algoritmos de substituição, segmentação e paginação. Comunicação de processos: o modelo de comunicação, produtos e consumidor. Entradas e Saídas: modelo das E/S, gestores de periféricos, partilha de periféricos. Sistemas de Ficheiros: estruturas internas e controlo de dispositivos de memória secundária. Acontecimentos Assíncronos e Excepções: o modelo multitarefa, rotinas assíncronas, excepções. Modelo computacional do UNIX: conceitos fundamentais, processos, acontecimentos assíncronos, espaço de endereçamento, sistema de ficheiros e comunicação entre processos. O núcleo do sistema UNIX: organização, gestão de processos, sincronização interna, signals, gestão de memoria, E/S, comunicação e sincronização. Outros sistemas operativos: Windows NT/2K, Linux, MacOS X, PalmOS, Symbian.
3. INFORMAÇÕES GERAIS Responsável pela Disciplina: Docentes: Informações aos Alunos: Apoio Laboratorial: Prof. Doutor Nuno Jardim Nunes Prof. Doutor Nuno J. Nunes (Teóricas) 291 705150/60, e-mail: njn@uma.pt Eng. Pedro Campos (Práticas) 291 705150/59, email: pcampos@uma.pt http://dme.uma.pt/edu/so Maria José / Nelson Vasconcelos / Anita Ferraz (Dep. de Matemática e Engenharias - Secretaria) NETI http://neti.uma.pt 4. CALENDÁRIO E HORÁRIO Carga Horária Semanal: Aulas Teóricas: Aulas Práticas: Calendário: Início das aulas Férias da Páscoa Semana Académica Fim de aulas Férias de Ponto Exames (época normal) Férias de Ponto Exames (época recurso) 2 aulas de 1h (+1h para dúvidas) 1 aula de 2h (+1h para dúvidas) 4 de Mar. 5 de Abr. a 12 de Abr. 29 Abr. a 1 de Mai. 18 de Jun. 19 a 22 de Jun. 23 de Jun. a 21 de Jul. 22 a 25 de Jul. 26 a 31 de Jul. Ficha da Disciplina Pág. 2
5. PREVISÃO DO NÚMERO DE AULAS: Semana Datas Feriados Teóricas Práticas 1 01/03/04 2ª, 3ª, 4ª 0-2 08/03/04-1 1 3 15/03/04-1 1 4 22/03/04-1 1 5 29/03/04-1 1 6 05/04/04 Páscoa 0 0 7 12/04/04 2ª 0/1* 1 8 19/04/04-1 1 9 26/04/04 5ª,. 6ª 1 0/1* 10 03/05/04-1 1 11 10/05/04-1 1 12 17/05/04-1 1 13 24/05/04-1 1 14 31/05/04-1 1 15 07/06/04 5ª 1 0/1* 16 14/06/04-1 1 Total 14 14 * Os turnos com aulas nos dias feriados terão aulas de reposição por forma a uniformizar o nº total de aulas. 6. BIBLIOGRAFIA Principal Transparências da Disciplina José Alves Marques, Paulo Guedes, Fundamentos de Sistemas Operativos, Editorial Presença, 1998 Auxiliar Silberschatz, A., Galvin, P. B., Operating System Concepts, Addison-Wesley, 1998 Andrew S. Tanenbaum, Operating System: Design and Implementation, Prentice-Hall International, 1987 Bourne, S. R., The Unix System V Environment, Addison-Wesley, 1987 Deitel, H, M., An Introduction to Operating Systems, Addison-Wesley, 1984 Eckel, B., Thinking in Java (2ª Ed.), Prentice-Hall, 2001, http://www.bruceeckel.com/. Pereira, F., Linux Curso Completo, FCA - Editora de Informática, 2000 Ficha da Disciplina Pág. 3
7. AVALIAÇÃO Componente Teórica (60%) Exame escrito sem consulta sobre os conceitos desenvolvidos nas aulas teóricas. Duração: 2h00m (sem tolerância). Peso: 60% da nota final. Nota Mínima: 7,5 valores. Componente Prática (40%) Projecto prático em Java sobre UNIX. Peso: 40% da nota final. Nota Mínima: 9,5 valores. 8. PROGRAMA DETALHADO 1. Introdução 1.1. Objectivos dos Sistemas Operativos 1.2. Evolução Histórica 1.3. Tipos de Sistemas Operativos 1.4. Arquitectura do Sistema Operativo 1.5. Modelo Computacional 2. A Gestão de Processos 2.1. O Pseudoparalelismo 1.2. Processador, Processo e Programa 1.3. Os Processos no Modelo Computacional 1.4. A Função dos Mecanismos de Sincronização 1.5. Exclusão Mútua 1.6. Semáforos 1.7. Gestão de Recursos 1.8. Cooperação entre Processos 1.9. Sincronização no Modelo de Programação 1.10. Interblocagem 1.11. Processos e Threads 1.12. Implementação User Level threads 1.13. Implementação Kernel Level threads 1.14. Microkernel 3. O Núcleo do Sistema Operativo 3.1. Arquitectura Típica de um Processador 3.2. Estrutura do Núcleo Ficha da Disciplina Pág. 4
3.3. Gestão de Processos 3.4. Implementação da Sincronização 3.5. Implementação das Funções de Sistema 4. Mecanismos de Gestão de Memória 4.1. Introdução 4.2. Endereçamento Real 4.3. Endereçamento Virtual 5. Algoritmos de Gestão de Memória 5.1. Introdução 5.2. Alocação de Memória 5.3. Algoritmos de Transferência 5.4. Algoritmos de Substituição 5.5. Análise Comparativa da Segmentação e Paginação 6. Comunicação de Processos 6.1. Modelo de Comunicação 6.2. Relações entre Processo Produtor e Processo Consumidor 6.3. Comunicação no Modelo Computacional 7. Entradas/Saídas 7.1. O Modelo das Entradas/Saídas 7.2. O Modelo Computacional das E/S 7.3. Gestores de Periféricos 7.4. Partilha de Periféricos 8. Sistema de Ficheiros 8.1. O Modelo Computacional 8.2. Estruturas Internas do Sistema de Ficheiros 8.3. Controlo de Dispositivos de Memória Secundária 9. Acontecimentos Assíncronos e Excepções 9.1. Acontecimentos Assíncronos 9.2. Modelo Multitarefa 9.3. Rotinas Assíncronas 9.4. Excepções 10. Modelo Computacional do UNIX 10.1. A Evolução do UNIX 10.2. Conceitos Fundamentais 10.3. Processos 10.4. Acontecimentos Assíncronos 10.5. Espaço de Endereçamento dos Processos 10.6. O Sistema de Ficheiros 10.7. Comunicação Entre Processos Ficha da Disciplina Pág. 5
10.8. Sincronização e Comunicação no Sistema V 11. Núcleo do Sistema UNIX 11.1. Organização do Núcleo 11.2. Gestão dos Processos 11.3. Sincronização Interna 11.4. Implementação dos Signals 11.5. Gestão de Memória 11.6. Entradas/Saídas 11.7. Sincronização e Comunicação no Sistema V 12. Outros Sistemas Operativos 12.1. Windows NT/2000/2003 12.2. Linux 12.3. MacOS X 12.4. PalmOS 12.5. Symbian Ficha da Disciplina Pág. 6