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. O BJECTIVOS
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. P ROGRAMA R ESUMIDO
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. I NFORMAÇÕES G ERAIS
Responsável pela Disciplina: Prof. Doutor Nuno Jardim Nunes
Docentes: Prof. Doutor Nuno J. Nunes (Teóricas) 291 705150/60, e-mail: [email protected] Eng. Pedro Campos (Práticas)
291 705150/59, email: [email protected]
Informações aos Alunos: http://dme.uma.pt/edu/so
Maria José / Nelson Vasconcelos / Anita Ferraz (Dep. de Matemática e Engenharias - Secretaria)
Apoio Laboratorial: NETI – http://neti.uma.pt
4. CALENDÁRIO E HORÁRIO
Carga Horária Semanal:
Aulas Teóricas: 2 aulas de 1h (+1h para dúvidas) Aulas Práticas: 1 aula de 2h (+1h para dúvidas)
Calendário:
Início das aulas 4 de Mar.
Férias da Páscoa 5 de Abr. a 12 de Abr.
Semana Académica 29 Abr. a 1 de Mai.
Fim de aulas 18 de Jun.
Férias de Ponto 19 a 22 de Jun.
Exames (época normal) 23 de Jun. a 21 de Jul.
Férias de Ponto 22 a 25 de Jul.
Exames (época recurso) 26 a 31 de Jul.
5. P REVISÃ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 1 4 1 4
* Os turnos com aulas nos dias feriados terão aulas de reposição por forma a uniformizar o nº total de aulas.
6. B IBLIOGRAFIA
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
7. A VALIAÇÃ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. P ROGRAMA D ETALHADO
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.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
1 0 .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
10.8. Sincronização e Comunicação no Sistema V
1 1 .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
1 2 .Outros Sistemas Operativos 12.1. Windows NT/2000/2003 12.2. Linux
12.3. MacOS X 12.4. PalmOS 12.5. Symbian