Unidade Curricular: | Sistemas Operativos | ||||||
Código: | EIC0027 | ||||||
Área Científica: | Sistemas Operativos e Redes | ||||||
Cursos: |
|
||||||
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 |
Português
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).
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"
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)) |
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 |
- 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.
Sistema de desenvolvimento em C
Sistema operativo LINUX
Avaliação distribuída com exame final
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.
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.
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.
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.
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.