Sistemas Informáticos, 1994/1995
Ano lectivo: 1994/95
Ano Lectivo: 4º ano, ramos IS e TC, 2º semestre
Escolaridade: 3 horas de aula teórica + 1 hora de aula teórico-prática por semana
Aulas teóricas: Francisco José de Oliveira Restivo, Professor Associado
Aulas teórico-práticas (4 turmas): João António Correia Lopes, Assistente
turma TC 1: 14
turma TC 2: 14
turma IS 1: 14
turma IS 2: 14.
Introduzir os conceitos fundamentais dos sistemas operativos actuais, quer do ponto de vista funcional quer do ponto de vista arquitectural.
Formar programadores de sistema em UNIX.
Conceitos Fundamentais: Evolução Histórica dos Sistemas Oerativos; Tipos de Sistemas Operativos; Linguagem de Comandos e Chamadas ao Sistema; Requisitos Funcionais;
Processos: Conceito de Processo; Ponto de Vista do Programador; Ponto de Vista do Sistema Operativo; Process Control Block (PCB); Estado dos Processos; Serviços de Gestão de Processos; Escalonamento; Algoritmos de Escalonamento; Avaliação da Performance;
Sincronização entre Processos: Exclusão Mútua; Semáforos; Requisitos em Hardware; Problemas Clássicos;
Comunicação e Sincronização entre Processos: Regiões Críticas; Monitores; Mensagens; Encravamentos (deadlock): Prevenir, Evitar; Detectar e Recuperar;
Gestão de Memória: Alocação Contígua: Partições Estáticas; Partições Dinâmicas; Segmentação; Protecção e Partilha da Memória;
Gestão da Memória: Alocação não Contígua: Paginação; Memória Virtual: Algoritmos de Substituição; Requisitos em Hardware; Protecção e Partilha da Memória;
Gestão de Ficheiros: Linguagem de Comandos; Serviços do Sistema Operativo; Organização dos Discos; Gestão dos Discos: Alocação Contígua e Alocação não Contígua;
Segurança e Protecção: Autenticação; Protecção e Controlo de Acessos; Criptografia; Virus;
Sistemas Multi-processador: Classificação; Interligações; Tipos de Sistema Operativo; Programação Paralela; Sincronização;
Sistemas Distribuídos: Redes; Protocolos de Comunicação e Modelo OSI; Exclusão Mútua; Encravamentos; Sistemas Operativos.
Introdução ao curso (Programação avançada no ambiente UNIX).
Introdução ao UNIX. História das diversas implementações; standards; arquitectura do UNIX; perspectiva do utilizador; introdução ao Kernel.
Serviços fornecidos pelo UNIX: login & shells; ficheiros e directórios; entrada/saída (E/S); programas e processos; tratamento de erros; identificação de utilizadores; sinais; datas; system calls & library functions.
Ficheiros e E/S: descritores de ficheiros; funções para manipulação de ficheiros; estruturas de gestão de ficheiros; partilha de ficheiros; utilização de fcntl().
Manuaseamento de ficheiros e directórios: tipos de ficheiros; utilização de lstat(); tamanho de ficheiros; sistemas de ficheiros; links; permissões; definição do modo; datas; criação e leitura de directórios; sincronização de discos e ficheiros.
Controlo de terminais: comunicação série; a estrutura termios; funções para controlo de terminais; atributos de terminais; modos de funcionamento.
Biblioteca standard de E/S: streams & FILE; buffering; ficheiros temporários; E/S formatado.
Ambiente do processo: a função main(); terminação; argumentos da linha de comando; manipulação do ambiente; mapa de memória de um programa em C; alocação de memória; setjmp(), longjmp() e stack frames; variáveis automatic, register & volatile; recursos.
Controlo de processos: identificadores de processos; criação de processos ; utilização de fork(); partilha de ficheiros; terminação.
Substituição de processos; utilização de exec(); mudanças de identificação.
Relação entre processos: login por terminal; sessõees; terminal de controlo; gestão de processos; influencia de job control.
Sinais: tratamento de sinais; utilização de signal(); sinais e chamadas ao sistema; conjuntos de sinais; utilização de sigsuspend()
Comunicação interprocessos: pipes; coprocessos; FIFO; comunicação clientes - servidor; IPC do sistema V; filas de mensagens; semáforos; memória partilhada.
Exposição detalhada da matéria e resolução de problemas ilustrativos.
Exposição da matéria e resolução dos exercícios necessários à sua compreensão clara.
Estímulo à abertura de contas numa máquina UNIX (tom), para a resolução de exercícios e comunicação com o docente.
Em quatro aulas, resolução de pequenos trabalhos individuais, com incidência na avaliação final.
Uma prova escrita em duas partes de 60 minutos, a primeira, sem consulta de elementos de estudo, referente à matéria das aulas teóricas e a segunda referente à matéria das aulas práticas. O peso de cada uma das partes da prova escrita na classificação final foi de 40%.
A classificação dos trabalhos individuais foi considerada na classificação final, com um peso de 20%.
Excepcionalmente, utilizou-se a seguinte expressão para o cálculo da classificação final
f = t + p + max (i, p/2)
t - classificação da parte teórica (0 a 8)
p - classificaão da parte prática (0 a 8)
i - classificação do conjunto dos trabalhos individuais (0 a 4).
Alunos inscritos na disciplina: 107
Alunos que frequentaram as aulas: 73
Prova de frequência de 19 de Junho de 1995:
Alunos que compareceram: 22
Alunos aprovados: 13
Exame de 5 de Julho de 1995:
Alunos que compareceram: 40
Alunos aprovados: 27
Alunos que melhoraram a classificação: 5
Exame de 22 de Setembro de 1995 (época de recurso):
Alunos que compareceram: 34
Alunos aprovados: 17
Alunos que compareceram: 67
Alunos aprovados: 57
- - - - - - 2 2 5 1 18 7 10 8 5 5 1 3 - - -
M. Milenkovic, Operating Systems. Concepts and Design (2nd edition), McGraw-Hill (1992)
Este é o texto base para a parte teórica desta disciplina.
Para a parte prática, além dos elementos fornecidos, recomenda-se
W.R. Stevens, Advanced Programming in the UNIX Environment, Addison-Wesley (1992)
Recomenda-se ainda qualquer dos dois seguintes livros para o estudo da parte teórica desta disciplina
A. S. Tanenbaum, Modern Operating Systems, Prentice-Hall (1992)
A. Silberschatz, P.B. Galvin, Operating Systems Concepts (4th edition), Addison-Wesley (1994)
Exame de 19 de Junho de 1995
Exame de 5 de Julho de 1995
Exame de 22 de Setembro de 1995
Página mantida por Francisco J. Restivo (fjr@fe.up.pt) usando HTML Author. Modificada pela última vez em 22-02-96.