Sistemas Informáticos


Ano lectivo: 1994/95

Curso: Licenciatura em Engenharia Electrotécnica e de Computadores

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


Docentes

Aulas teóricas: Francisco José de Oliveira Restivo, Professor Associado

Aulas teórico-práticas (4 turmas): João António Correia Lopes, Assistente


Aulas Realizadas

Aulas teóricas: 13

Aulas teórico-práticas:

turma TC 1: 14

turma TC 2: 14

turma IS 1: 14

turma IS 2: 14.


Objectivos

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.


Programa

Aulas Teóricas

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.

Aulas Teórico-Práticas

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.


Metodologia

Aulas Teóricas

Exposição detalhada da matéria e resolução de problemas ilustrativos.

Aulas Teórico-Práticas

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.

Avaliação

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)

com

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).


Resultados

Globais

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 melhoraram a classificação: 5

Total:

Alunos que compareceram: 67

Alunos aprovados: 57

Classificações

01234567891011121314151617181920
------22511871085513---


Textos de Apoio

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)


Documentos

Trabalho nº 1

Trabalho nº 2

Trabalho nº 3

Trabalho nº 4

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 ([email protected]) usando HTML Author. Modificada pela última vez em 22-02-96.