Sistemas de Operação › 42509

código no paco
42509
área científica
Informática / Arquitetura dos Sistemas Computacionais
créditos
6
escolaridade
ensino teórico (T) - 2 horas/semana
ensino prático e laboratorial (PL) - 2 horas/semana
idioma(s) de lecionação
a inserir brevemente
objectivos
  • apresentar os conceitos mais importantes sobre a organização dos sistemas de operação actuais;

  • introduzir a programação concorrente e os mecanismos principais de comunicação e de sincronização entre processos;

  • familiarizar os alunos com a organização interna do Unix.

competências
  • compreensão do mecanismo da multiprogramação e da organização geral de um sistema de operação;

  • capacidade de projecto de aplicações concorrentes simples;

  • capacidade para integrar uma equipa de desenvolvimento de software ao nível da programação de sistemas.

conteúdos
  1. Conceitos Introdutórios

    O que é um Sistema de Operação

    Evolução dos Sistemas de Operação

    Arquitectura interna do Linux

  2. Gestão do Processador em Multiprogramação

    Conceito de Processo

    Modelação de processos

    Comutação de processos

    Scheduling do processador

    Processos em Linux

  3. Comunicação entre Processos

    Condições de corrida no acesso a estruturas de dados partilhadas

    Soluções para o problema de acesso a uma região crítica com exclusão mútua

    Sincronização

    Deadlock

    Estudo de alguns problemas gerais em programação concorrente

    IPC em Linux

  4. Gestão da memória

    Hierarquia da memória principal

    Organização da memória

    Memória real vs. memória virtual

    Papel da área de swapping

    Memória real

    Memória virtual

  5. Input / Output

    Objectivos a serem cumpridos num ambiente multiprogramado

    Rotinas de serviço à interrupção

    Device drivers

    Software independente do dispositivo

    Estudo de alguns exemplos concretos

    Modelo usado em Linux

  6. Sistema de ficheiros

    Modelo lógico da memória de massa

    Organização hierarquizada da informação

    Tipos de sistemas de ficheiros (Linux)

  7. Protecção e Segurança

    Noções introdutórias

avaliação
  1. A classificação final da disciplina é determinada pela média pesada das notas obtidas em dois tipos de avaliação

    avaliação teórica: 50%

    avaliação prática: 50%.

  2. A avaliação teórica é constituída pelo exame escrito final.

  3. A avaliação prática é formada por três provas obrigatórias e uma optativa

    miniteste intercalar: 30%

    trabalho 1: 40%

    trabalho 2: 30%

    trabalho 3: valorização para av. prática > 17.

  4. O processo de avaliação do trabalho prático 1 supõe uma demonstração prática de validação feita pelos membros do grupo, onde são testados vectores próprios e vectores propostos, e a resposta a questões suscitadas pela implementação. O processo de avaliação do trabalho prático 2 supõe uma análise do código submetido para verificação do cumprimento das especificações e um interrogatório aos elementos do grupo sobre questões relativas à sua implementação.

  5. A aprovação na disciplina supõe a satisfação em simultâneo das condições seguintes

    - avaliação prática >= 8,5

    - avaliação teórica >= 8,5

    - média pesada das notas das duas avaliações >= 10.

requisitos

Tem os pré-requisitos seguintes

  • noções básicas sobre arquitectura de computadores e sobre protocolos de comunicação com os dispositivos de entrada-saída (pooled I/O, interrupt driven I/O e DMA based I/O);

  • domínio da Linguagem C;

  • conhecimento operacional das estruturas de dados estáticas e dinâmicas mais comuns e da sua aplicação à construção de diferentes tipos de memória (RAMs, stacks, FIFOs e memórias associativas).

metodologia

O objectivo das aulas teóricas é a apresentação de tópicos específicos da matéria da disciplina. A abordagem seguida pressupõe quase sempre uma metodologia de participação directa dos alunos na discussão, procurando desenvolver competências de raciocínio crítico e de aprendizagem de técnicas gerais de resolução de problemas.

As aulas práticas seguem uma filosofia do saber fazer e visam a realização de pequenos trabalhos distribuídos por grupos de aulas.

  1. Trabalho 1 - Sistema de ficheiros (grupo de trabalho: 4 a 6 elementos)

    Modelação de um sistema de ficheiros através da implementação de diferentes componentes da sua arquitectura interna.

  2. Trabalho 2 - Programação concorrente (grupo de trabalho: 2 a 3 elementos)

    Construção de pequenas aplicações concorrentes usando os mecanismos de comunicação e sincronização mais comuns em ambiente Unix: pipes, semáforos e memória partilhada, monitores e passagem de mensagens.

    Resolução de um problema proposto.

bibliografia base
Modern Operating Systems, A.S. Tanenbaum, Prentice-Hall International Operating Systems, W. Stallings, Prentice-Hall International Operating Systems Concepts, Silberschatz, Galvin e Gagne, John Wiley & Sons
bibliografia recomendada

Principal

Modern Operating Systems, A.S. Tanenbaum, Prentice-Hall International

Operating Systems, W. Stallings, Prentice-Hall International

Operating Systems Concepts, Silberschatz, Galvin e Gagne, John Wiley & Sons

Apoio

The design of the Unix Operating System, M.J. Bach, Prentice-Hall International

C - A software engineering approach, P.A. Darnell, P.E. Margolis, Springer-Verlag

Introdução à Programação usando C, A. Adrego da Rocha, FCA - Tecnologias de Informação

Programação Avançada usando C, A. Adrego da Rocha, FCA - Tecnologias de Informação

Advanced Programming in the Unix Environment, W.R. Stevens, Addison-Wesley Professional Computer Series

Linux Programming, Wall, Watson e Whitis, SAMS

Este sítio web utiliza cookies sem recolher informação pessoal que permita a identificação dos utilizadores. Ao navegar neste sítio está a consentir a sua utilização.saber mais
Para que esta página funcione corretamente deve ativar a execução de Javascript. Se tal não for possível, algumas funcionalidades poderão estar limitadas.