Sistemas Operativos

Código

0105935

Créditos ECTS

6

Objetivos

1. Conhecer os conceitos fundamentais dos sistemas operativos.
2. Conhecer a estrutura interna e funcionamento dos sistemas operativos.
3. Saber usar os mecanismos de segurança proporcionados pelos sistemas operativos.
4. Conhecer os modelos de computação oferecidos pelos sistemas operativos.
5. Saber utilizar as interfaces de programação disponíveis nos sistemas operativos.

Programa

1. Conceitos básicos sobre os sistemas operativos
1.1.  Estrutura e funções de um sistema operativo
1.2.  Evolução dos sistemas operativos

2. Processos e escalonamento
2.1. Processos e Threads
2.2. Algoritmos de Escalonamento
2.3. Algoritmos de Sincronização
2.4. Comunicação entre Processos e interbloqueio

3. Gestão de Memória
3.1.  Paginação
3.2.  Segmentação
3.3.  Memória Virtual

4. Gestão de Armazenamento
4.1.  Organização de um sistema de ficheiros.
4.2.  Indexação, Diretorias e Gestão de espaço livre

5. Entradas e saídas
5.1.  Arquiteturas de entradas e saídas (E/S)
5.2.  Gestão de periféricos

6. Arquiteturas e mecanismos de segurança
6.1.  Isolamento (confinamento)
6.2.  Autenticação e autorização

7. O modelo computacional do Linux
7.1.  Visão global do sistema
7.2.  Programação em Shell
7.3.  Programação em C

Métodos de Ensino

As aulas teóricas são expositivas em que se apresentam os conceitos elementares de sistemas operativos com recurso a exemplos e demonstrações, usando a linguagem C.

As aulas práticas laboratoriais funcionam articuladas com as aulas teóricas e são preenchidas pela exploração das funcionalidades do sistema operativo Linux, nomeadamente a utilização da interface de linha de comandos a construção de scripts em shell e codificação de programas em C.

Os estudantes desenvolvem um projeto que é o elemento aglutinador dos conteúdos aprendidos ao longo da unidade curricular, que permite explorar a API do sistema operativo numa situação mais próxima da realidade e adquirir competências de trabalho autónomo e em equipa.

A plataforma de e-Learning Moodle da UAc (em http://moodle.uac.pt) é utilizada como repositório de material pedagógico e didático de apoio à aprendizagem, bem como de plataforma de agendamento, divulgação e promoção de atividades complementares e de gestão de elementos de avaliação.

AVALIAÇÃO:

Em cada edição da unidade curricular, a avaliação, contínua e periódica, é constituída por uma componente individual teórico-prática que tem peso entre 50% e 70% e uma componente de projeto em grupo que tem peso entre 30% e 50%, ambas com nota mínima de 10 valores.

Bibliografia

Essencial

  • Abraham Silberschatz, Peter Baer Galvin, Greg Gagne. Operating System Concepts, 10th Edition. John Wiley & Sons. 2018
  • José Alves Marques, Paulo Ferreira, Carlos Ribeiro, Luís Veiga, Rodrigo Rodrigues. Sistemas Operativos. FCA. 2012.

Complementar

  • Andrew S. Tanenbaum. Modern Operating Systems, 4th Edition. Pearson. 2014.
  • William Stallings; Operating Systems: Internals and Design Principles, 8th Edition, Prentice Hall, 2014.
  • Fernando Pereira, Rui Guerreiro. LINUX: Curso Completo, 7ª Edição. FCA. 2015

Método de Avaliação

    De acordo com Métodos de Ensino - 100 %