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.
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).
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.