Sistemas de Computação I - Trabalho 2

Alterações no Minix

O objetivo desse trabalho ainda é que você entenda o funcionamento interno do sistema operacional Minix... Por isso, em primeiro lugar, os grupos que não tiverem terminado o trabalho 1 na data de entrega deverão fazê-lo agora... Na segunda parte, deve ser feita uma alteração no sistema de arquivos.

Primeira Parte:

Altere o escalonamento do minix para incluir vários níveis de prioridade (por exemplo, três) de processos usuários. Ao ser criado, um novo processo deve sempre ter o nível mais alto de prioridade de usuário. Criar uma função

int nice(int prio)
que permita alterar a prioridade de um processo. O parâmetro prio indica o novo nível de prioridade. O retorno da função deve indicar se a operação foi efetuada com sucesso ou nío. Em geral, só deve ser permitido a um processo diminuir seu nivel de prioridade. Se o processo pertence ao super-usuário (root), ele pode também pedir para aumentar seu nível de prioridade.

Desenvolva uma aplicação exemplo, que demonstre todos os casos (sucesso e diferentes motivos de insucesso) da nova função. A aplicação também deve tornar clara a existência dos diversos níveis de prioridade (ou seja, deve ficar óbvio que alguns processos estão sendo preteridos em favor de outros).

Segunda Parte:

Altere o sistema de arquivos do minix para que ele trabalhe com links simbólicos. Você terá que criar ou alterar chamadas de sistema para criar e remover links simbólicos (veja a documentação da chamada POSIX symlink no linux!) e alterar o comando ln para que aceite o parâmetro '- s', para criação de link simbólico. Além disso, altere o comando rm, se necessário, para que funcione corretamente para links simbólicos e o comando ls para que alguma de suas opções permita ver que uma determinada entrada de diretório corresponde a um link simbólico.

Data de entrega: 4/7

ATENÇÃO: Questões de Ordem