Sistemas Operativos

Ano
3
Ano lectivo
2014-2015
Código
01000495
Área Científica
Sistemas Digitais e Computadores
Língua de Ensino
Português
Outras Línguas de Ensino
Inglês
Modo de Ensino
Presencial
Duração
Semestral
Créditos ECTS
6.0
Tipo
Obrigatória
Nível
1º Ciclo - Licenciatura

Conhecimentos de Base Recomendados

Programação de Computadores; Estrutura de Dados e Algoritmos; Sistemas de Microprocessadores.

Métodos de Ensino

Aulas teóricas do tipo magistral com exposição, recorrendo a meios audiovisuais, dos conceitos, princípios, teorias e metodologias e com a apresentação de exemplos de concretização e aplicação.

Aulas práticas laboratoriais com a orientação do docente: nestas, haverá algum tempo dedicado a apresentação de tópicos relevantes para a execução das fichas e trabalhos práticos; e o restante tempo será dedicado à realização de fichas e trabalhos práticos que exijam a aplicação e conjugação de conceitos distintos.

Resultados de Aprendizagem

Adquirir conhecimentos sobre o funcionamento de sistemas operativos e dos seus módulos, incluindo, escalonamento de processos, gestão de memória, memória virtual, escalonamento em disco, sistemas de ficheiros, e programação concorrente; e conhecimentos básicos sobre sistemas distribuídos. Adquirir conhecimentos sobre técnicas e algoritmos relacionados com os sistemas operativos. Adquirir capacidades para escrever bom código de sistema que explore de uma forma optimizada as funcionalidades de um sistema operativo.

Aquisição de competências em análise e síntese, conhecimentos de informática relativos ao âmbito do estudo, aprendizagem autónoma, aplicação prática de conhecimentos teóricos, resolução de problemas, trabalho em grupo, adaptabilidade a novas situações, planear e gerir.

Estágio(s)

Não

Programa

Conceitos introdutórios e de suporte a sistemas operativos; Noções gerais sobre arquitectura de computadores; Funções dos sistemas operativos; Processos: descrição e controlo; Fios de execução; Concorrência: exclusão mútua, sincronização e comunicação, deadlocks e starvation; Gestão de memória; Memória virtual; Escalonamento de processos e fios de execução; Gestão de periféricos e escalonamento de disco; Sistemas de ficheiros; Segurança em sistemas operativos; Introdução aos sistemas operativos distribuídos; Exemplos de sistemas operativos tais como Unix e Windows; Programação de sistema.

Docente(s) responsável(eis)

Rui Alexandre de Matos Araújo

Métodos de Avaliação

Avaliação
Frequência ou mini-testes: 20.0%
Trabalho laboratorial ou de campo: 30.0%
Exame: 50.0%

Bibliografia

• Stallings, W. (2004) – Operating Systems - Internals and Design Principles, 5ed, Prentice-Hall.

• Silberschatz, A., Galvin, P.B., Gagne, G. (2002) – Operating System Concepts, 6ed, John Wiley and Sons.

• Robins, K.A., Robins, S. (2003) – Unix Systems Programming: Communication Concurrency, and Threads, Prentice-Hall.

• Marshall, D.A. (1999) – Programming in C: UNIX System Calls and Subroutines Using C, Cardiff University, UK, Internet.

• Kernighan, B.W., Ritchie, D.M. (1988) – The C Programming Language, 2ed, Prentice-Hall.

• Stevens, W.R. (1991) – UNIX Network Programming, 1ed, Prentice-Hall.

• Hall, B.B. (2007) – Beej's Guide to C Programming, Internet.

• Hall, B.B. (2009) – Beej's Guide to Unix Interprocess Communication, Internet.

• Stevens, W.R., Rago, S.A. (2005) – Advanced Programming in the UNIX Environment, 2ed, Addison-Wesley.

• Rockind, M.J. (2004) – Advanced UNIX Programming, 2ed, Pearson.