Roteiro de Aulas - Sistemas Operacionais

14/3

Apresentação do Curso

16/3

Processos

  1. o modelo de processos
  2. contexto: contador de programa, registradores, pilha, etc
  3. multiprogramação e troca de contexto
  4. estados e transições

Criação de novos processos

referência: Tanenbaum, 2.1, 2.1.1, 2.1.2

21/3

Processos

Criação de novos processos (cont)

Sinais

referência: Tanenbaum, 4.7.7

obs: A discussão das primitivas fork, exec e wait não consta no livro texto. A documentaçAo dessas primitivas pode ser obtida através das páginas man de qualquer Unix, Linux ou minix.

23/3

Processos

Threads ou Processos Leves

referência: Tanenbaum, 2.1.3.

28/3

Processos

Escalonamento de Processos

referência: Tanenbaum, 2.4, 2.4.1, 2.4.2, 2.4.3, 2.4.4, 2.4.5, 2.4.8.

30/3

Processos

Comunicação entre Processos por Memória Compartilhada

Introdução

Soluções para garantir exclusão mútua

referência: Tanenbaum, 2.2.1, 2.2.2, 2.2.3 (parte), 2.2.5.

4/4

Processos

Semáforos

referência: Tanenbaum, 2.2.4 (só definição do problema produtor-consumidor), 2.2.5, 2.3.1.

6/4

Processos

Semáforos

discussão de exemplos (na verdade, padrões de concorrência)

referência: Tanenbaum, 2.3.2.

11/4

exercícios

13/4

18/4

Processos

Monitores

referência: Tanenbaum, 2.2.6.

25/4

Processos

Troca de Mensagens

Exemplo: pipes no Unix

referência: Tanenbaum, 2.2.7 e Stevens, 3.4.

2/05

PROVA

4/05

Deadlocks

Condições para ocorrência de deadlock

Grafo de Alocação de Recursos

Formas de Tratamento

Detecção

Prevenção Estrutural

A idéia é negar uma das quatro condições necessárias para ocorrência do deadlock!

  1. negação da exclusão mútua
  2. negação do hold and wait
  3. negação da espera circular
  4. negação da não preempção

Prevenção Dinâmica

Algoritmo da Avestruz

referência: Tanenbaum, 3.3.

9/05

apresentação do primeiro trabalho

11/05

Transações Atômicas

propriedades:

Atomicidade

Serialização

Nada se pode afirmar sobre a ordem em que duas transações concorrentes serão executadas, mas o efeito das transações deve ser coerente com a término completo de cada transação antes do início da próxima.

Formas de garantir a serialização

16/05

Gerência de Memória

endereços físicos e endereços lógicos ou virtuais

amarração de endereços lógicos (do programa executável) com físicos (da memória principal)

Alocação de Espaço para Processos

Swapping

Segmentação

Paginação

referência: Tanenbaum, 4.1, 4.2, 4.3.

18/05

Gerência de Memória (cont.)

Paginação

Memória virtual

  • necessidade de encontrar uma página física livre
  • alocação de páginas global e local
    Algoritmos de Substituição de Páginas

    referência: Tanenbaum, 4.3, 4.4.1, 4.4.2, 4.4.3.

    20/05

    Memória Virtual (cont.)

    Algoritmos de Substituição de Páginas (cont)
    Thrashing
    discussão sobre tamanho da página
    Segmentação com Paginação

    referência: Tanenbaum, 4.4.6, 4.4.7, 4.5.1, 4.5.3, 4.6.

    1/06

    Memória Virtual (cont.): exemplo - System V

    6/06

    Sistemas de Arquivos

    Visão do Usuário (programador)

    arquivos
    diretórios

    Implementação

    descricao de localização de arquivos

    referência: Tanenbaum, 5.1, 5.2.1, 5.3.1.

    8/06

    Sistemas de Arquivos (cont)

    Implementação

    descrição de localização de blocos livres

    implementação de diretórios

    referência: Tanenbaum, 5.3.2, 5.3.3.

    13/06

    Sistemas de Arquivos (cont)

    verificações de consistência
    desempenho de acesso a arquivos

    Segurança

    referência: Tanenbaum, 5.3.4 (só consistência), 5.3.5, 5.5.2, 5.5.3.

    15/06

    Sistemas de Arquivos (cont)

    Segurança (cont.)

    referência: Tanenbaum, 5.4.1, 5.4.2, 5.4.3, 5.4.5.

    20/06

    discussão do segundo trabalho

    Last update: Mon Jun 26 11:51:34 GRNLNDST 2000 by Noemi