Detalhes sobre o projeto final

Como dito na aula de terça-feira (dia 08 de junho), o trabalho final da disciplina será feito sobre algum dos temas indicados, e envolverá uma apresentação oral de cerca de 40 minutos (30 minutos para a apresentação e 10 minutos para perguntas, os grupos devem preparar slides) e um texto sobre o assunto abordado, além de uma modificação no código de um kernel escolhido (relacionada ao assunto abordado), que deverá ser mostrada durante a apresentação. Essa mudança pode ser bem simples, servindo principalmente para ilustrar a apresentação do grupo; no entanto, é importante ressaltar que o grupo deverá demonstrar domínio do código original do componente do kernel que foi modificado.
Tanto o rascunho da apresentação, como a versão final do texto deverão ser colocados no site da disciplina com, no mínimo, dois dias de antecedência com relação à apresentação.
Atenção

  • Todos os alunos devem escolher seus grupos, temas e suas datas de apresentação até a próxima terça-feira, dia 15 de junho.
  • As datas disponíveis para apresentações são 22/06, 24/06, 29/06 e 01/06: nos dias 22 e 29 haverá um máximo de três apresentações e nos dias 24 e 01 haverá um máximo de quatro apresentações.
  • Os grupos que ainda não escolheram datas ou assuntos a serem abordados, deverão enviar suas escolhas através de comentários na página de temas.

Notas do laboratório 4

As notas do laboratório 4 já estão disponíveis, assim como os relatórios de cada correção, estão disponíveis como comentários nas páginas que cada grupo enviou com a resolução da tarefa.

Caso haja erro na constituição de algum dos grupos ou na nota passada na tabela abaixo, por favor me avisem pelo e-mail godoy@dca.fee.unicamp.br.

Notas do laboratório 3

As notas do laboratório 3 já estão disponíveis, assim como os relatórios de cada correção, estão disponíveis como comentários nas páginas que cada grupo enviou com a resolução da tarefa.

Caso haja erro na constituição de algum dos grupos ou na nota passada na tabela abaixo, por favor me avisem pelo e-mail godoy@dca.fee.unicamp.br.

Prova 2

Arquivo com as questões da prova 2. Todos estão convidados a postar respostas e comentários sobre as questões.

Temas para o projeto final

No projeto final da disciplina, vocês terão de fazer trabalhos sobre alguns temas pré-determinados, listados abaixo. Para facilitar o trabalho, coloquei algumas sugestões e explicações sobre o que deve ser feito (as sugestões não precisam ser seguidas, cabendo ao grupo decidir qual tema específico ele irá abordar).

Lista de exercícios

Laboratório 4 - Algumas dicas

Criando uma chamada de sistema

Você deve adicionar as entradas para suas chamadas de sistema no arquivo arch/i386/kernel/syscall_table.S, enquanto que no arquivo include/asm-i386/unistd.h você deve incluir os números de suas chamadas, e também atualizar a constante NR_syscalls, que indica a quantidade de chamadas no sistema. Os cabeçalhos de suas chamadas de sistema devem ser adicionadas no arquivo include/linux/syscalls.h; atente para usar o tipo correto para a variável identificadora do pid. Você pode criar sua chamada de sistema em um arquivo já existente, ou em um arquivo separado. Caso você opte pela segunda opção, atente para modificar o Makefile da pasta onde o arquivo se encontra.

Aula - Sistemas de arquivos

Aulas dadas em 18 e 20 de maio.
Assuntos abordados:

  • Introdução a sistemas de arquivos
    • Arquivos e diretórios
    • Formas de acesso a dados
    • Nomes e caminhos
    • Montagem de sistemas de arquivos
  • Implementação:
    • Arquivos e diretórios
      • Controle de blocos
        • Hard e soft links
      • Controle de Acesso
    • Gerencia de blocos livres
    • Consistência do sistema de arquivos
      • Sistemas de arquivos com log e com journaling
    • Cópias de segurança
    • Melhoria de desempenho
  • Estudos de caso
    • Virtual File System -- GNU/Linux
    • NTFS -- Microsoft Windows

Laboratório 4 - Alterando o escalonador do Linux

Objetivo

O objetivo deste laboratório é implementar uma interface com o kernel Linux e modificar o escalonador para promover a redução da fatia de tempo destinada pelo escalonador a alguns processos escolhidos pelo usuário. Esta redução pode ser utilizada em situações nas quais haja desconfiança sobre algum processo ou em momentos em que se deseje que algum processo libere o escalonador mais rapidamente para serem executadas funções que o usuário julgue prioritárias. Deverão ser implementadas as seguintes chamadas de sistema:

Aula - Escalonador (Parte 2)

Aula dada em 13 de maio de 2010.
Assuntos abordados:

  • Revisão sobre escalonador
  • Algoritmos de escalonamento
    • Escalonamento em sistemas em lote
    • Escalonamento em sistemas interativos
    • Escalonamento em sistemas de tempo real
  • Escalonamento de threads
  • Estudo de caso: GNU/Linux
Divulgar conteúdo