Sistemas Operativos

Código

0105935

Créditos ECTS

6

Objetivos

O sistema operativo é a componente fundamental de qualquer sistema computacional. Assim sendo, é objetivo desta disciplina fornecer aos alunos os conceitos fundamentais que presidem à conceção dos sistemas operativos atuais. Serão estudados os modelos de computação oferecidos pelos sistemas operativos, sua organização, operações primitivas e programação elementar. Algumas destas noções serão consolidadas com pormenores de sistemas reais. Desta forma, pretende-se que o aluno conheça os conceitos fundamentais subjacentes aos sistemas operativos, com ênfase nos seus mecanismos e algoritmos, assim como a estrutura interna dos sistemas operativos mais relevantes. Programe, ao nível do sistema, usando todas as funcionalidades dos sistemas operativos tendo em conta os modelos de programação sequencial e concorrente.

Programa

1. Arquitetura: definições. Arquitetura de um computador. Estrutura de um sistema operativo. Funções e Modelos.

2. Processos e Escalonamento: processo. Threads. Algoritmos de Escalonamento. Sincronização. Comunicação entre Processos. Interbloqueio.

3. Gestão de Memória: paginação. Segmentação. Memória Virtual.

4. Gestão de Armazenamento: sistema de ficheiros. Sistemas de Entradas e Saídas

5. Programação Shell: introdução ao Shell script – bash - em Linux . Comandos da programação Shell. Desenvolvimento e execução de Shell scripts.

6. Chamadas ao Sistema Operativo em Linguagem de Programação C: desenvolvimento e execução de programas, em linguagem de programação C, para implementação dos conceitos teóricos, sobre processos, threads, sincronização de tarefas, memória e armazenamento.

Métodos de Ensino

Lecionação das aulas com recurso a apresentações eletrónicas para melhor explanamento dos conteúdos programáticos. As mesmas são construídas com base na participação dos alunos e exemplos ilustrativos enumerados por eles, para uma maior envolvência dos alunos na construção dos saberes e no desenvolvimento da aula. Desta forma os alunos conseguem fazer ponte de ligação com outros conteúdos já ministrados na cadeira e/ou em outras do curso e transpô-los para sala de aula e incuti-los de melhor forma. Para melhor assimilação dos conteúdos, são realizadas fichas de trabalho com situações problema para os alunos as resolverem.

Bibliografia

Abraham Silberschatz, Peter Baer Galvin, Greg Gagne. Operating System Concepts. 7th Edition. John Wiley & Sons. 2005.

José Alves Marques, Paulo Ferreira, Carlos Ribeiro, Luís Veiga, Rodrigo Rodrigues. Sistemas Operativos. FCA. 2009.

Andrew S. Tanenbaum. Sistemas Operacionais Modernos. 2a Edição. 2003.

William Stallings. Operating Systems. 4th Edition. Prentice Hall International Editions. 2002.

Fernando Pereira. Linux - Curso Completo. 3a Edição. 2000.FCA.

Chet Ramey, Brian Fox. The GNU Bash Reference Manual. Free Software Foundation. 2009.

Luís Manuel Dias Damas. Linguagem C. FCA. 1999.

Mike Banahan, Declan Brady and Mark Doran. The C Book. 2th Edition. Addison Wesley

Método de Avaliação

  • 2 testes teóricos - 50 %
  • Trabalho de grupo de Programação C - 30 %
  • Trabalho grupo Shell Script - 20 %