Ficha de unidade curricular da Ocorrência 2011/2012 - 2S

Unidade Curricular: Sistemas Operativos
Código: EIC0027
Área Científica: Sistemas Operativos e Redes
Cursos:
Sigla Anos Curriculares Nº de Estudantes
MIEIC 124
Ano Lectivo: 2011/2012
Período: 2S
Créditos: 6
ECTS: 6
Unidade: Departamento de Engenharia Informática
Horas/Semanas: T: 2 TP: 2
Docentes: Jorge Alves da Silva - Professor Auxiliar
António Miguel Pontes Pimenta Monteiro - Professor Auxiliar
João Isidro Araújo Vila Verde - Assistente Convidado
José Manuel Magalhães Cruz - Professor Auxiliar

Língua de Ensino

Português

Objectivos, Competências e Resultados de aprendizagem

No final desta disciplina, os alunos deverão ser capazes de:
- descrever as funções e a estrutura de um sistema operativo, e identificar as suas abstracções principais;
- descrever o funcionamento dos componentes essenciais de um sistema operativo, a forma como esses componentes interagem entre si e os algoritmos fundamentais usados na sua implementação;
- desenvolver programas que utilizem e explorem a API de um sistema operativo concreto (UNIX/LINUX).

Programa

INTRODUÇÃO AOS SISTEMAS OPERATIVOS
- Objectivos e funções de um S.O.
- Evolução dos sistemas operativos; estrutura dos S.O.'s modernos
- Abstracções suportadas por um S.O. e sua interface de programação
- Necessidades de suporte e de protecção de hardware

GESTÃO DE PROCESSOS
- Processos e "threads"; sua descrição; estados de um processo
- Estratégias de escalonamento
- Execução concorrente: problemas e soluções
- Mecanismos de sincronização entre processos
- Bloqueio mútuo

GESTÃO DE MEMÓRIA
- Gestão básica de memória: "overlays", "swapping" e partições
- Sistemas de memória virtual: paginação e segmentação
- Implementação de memória virtual; estratégias de alocação/libertação de memória

SISTEMAS DE ENTRADA/SAÍDA
- Hardware e software de entrada/saída
- Abstracção das diferenças entre dispositivos

SISTEMA DE FICHEIROS
- Interface do sistema de ficheiros
- Implementação do sistema de ficheiros; gestão do disco

Tema complementar (coberto ao longo da unidade curricular):
PROGRAMAÇÃO DE SISTEMA (utilização da API do UNIX/LINUX)
- manipulação de ficheiros e directórios
- criação e controlo de processos e "threads"
- sincronização e comunicação entre processos e "threads"

Bibliografia Principal

Avi Silberschatz, Peter Baer Galvin, Greg Gagne;Operating System Concepts (8th edition), John Wiley & Sons, Inc., 2008. ISBN: ISBN 0-470-12872-0
Robbins, Kay A.;UNIX systems programming. ISBN: 0-13-042411-0
Miguel Pimenta Monteiro;O Sistema Operativo Unix - Alguns aspectos da sua API ((disponível na página da disciplina, no Moodle da FEUP))

Bibliografia Complementar

Andrew S. Tanenbaum;Modern operating systems. ISBN: 0-13-813459-6
William Stallings;Operating Systems: Internals and Design Principles, 6/E, Prentice Hall, 2008. ISBN: 0136006329
Richard W. Stevens, Stephen A. Rago;Advanced Programming in the UNIX Environment (2nd edition), Addison-Wesley Professional, 2005. ISBN: 0201433079
Stevens, W. Richard;Unix network programming. ISBN: 0-13-081-081-9
José Alves Marques, Paulo Ferreira, Carlos Ribeiro, Luís Veiga, Rodrigo Rodrigues;Sistemas Operativos, FCA, 2009. ISBN: 978-972-722-575-0

Métodos de Ensino

- Aulas teóricas: exposição das matérias do programa, com apresentação e encaminhamento da resolução de pequenos exercícios ilustrativos.
- Aulas práticas: resolução de exercícios de programação envolvendo a utilização da API do Unix/Linux.
- Realização de trabalhos práticos, fora do período das aulas, sujeitos a avaliação, envolvendo a utilização da referida API.

Software

Sistema de desenvolvimento em C

Sistema operativo LINUX


Modo de Avaliação

Avaliação distribuída com exame final

Obtenção de Frequência

Não exceder o limite de faltas estabelecido nas Normas e obter uma classificação mínima de 40%  em cada um dos trabalhos práticos.
A classificação de frequência (Cfreq) é dada pela seguinte fórmula:
Cfreq = 0,5*Ctp1 + 0,5*Ctp2 ,
onde Ctp1 e Ctp2 representam as classificações obtidas em cada um dos trabalhos práticos.
Os alunos que obtiveram frequência no ano lectivo anterior, podem optar pela nota correspondente, ficando dispensados das aulas e dos trabalhos práticos; para isso, deverão manifestar a sua intenção ao regente da disciplina, até ao final da 2.a semana de aulas.
Apesar de os trabalhos práticos serem efectuados por alunos em grupo, membros do mesmo grupo poderão ter classificação diferente, dependendo da opinião do docente face ao decurso da realização do trabalho e da sua apresentação pública.

Cálculo da Classificação Final

A classificação final é dada pela fórmula:
Cfinal = 0,5 * Cfreq + 0.5 * Cexame
onde Cfreq e Cexame representam, respectivamente, a classificação de frequência e a classificação do exame escrito.

É condição necessária para aprovação a obtenção de uma classificação mínima de 30% em qualquer uma das componentes.

Avaliação Especial (TE, DA, ...)

Os alunos com estatuto especial, embora possam estar dispensados da frequência das aulas práticas, estão sujeitos às mesmas condições de avaliação dos alunos regulares, isto é, devem realizar e submeter os trabalhos práticos nos períodos e datas estabelecidos para os restantes alunos.

Melhoria de Classificação Final/Distribuída

A nota de frequência pode ser melhorada na ocorrência seguinte desta unidade curricular.
A nota do exame escrito pode ser melhorada nas épocas legalmente previstas.

Observações

Pré-requisitos: conhecimento e prática de programação em linguagem C.
Os trabalhos práticos são efectuados por grupos de dois ou, excepcionalmente, de três alunos.