Crie um arquivo em tempo de montagem (Assim como ifs_fork e ifs_prctl do trabalho2), chamado ifs_swap. Esse arquivo deve implementar write e open (se necessário) especiais, com a seguinte semântica:
Escritas devem receber um vetor de inteiros de duas posições. Cada posição indica um endereço virtual. Você deve então inverter o mapeamento físico-virtual dos dois endereços fornecidos
Declare dois vetores (chr1 e chr2) de caracteres do tamanho de uma página de memória. Estse vetores devem estar alinhados em page-boundary, ou seja, seus endereços devem ser múltiplos do tamanho da página.
Em seguida, preencha os vetores (não precisa preencher completamente), com um pequeno texto de sua preferência (O bom humor é bem vindo). Em seguida, execute o seguinte código:
printf("Vetor chr1:\n"%s\nVetor chr2:\n%s\n", chr1, chr2);
Faça no arquivo ifs_swap, uma escrita de um vetor de 2 posições. A primeira deve conter o endereço de chr1, e a segunda, o endereço de chr2
Repita o printf fornecido. O que você espera que aconteça?
Formato de entrega: arquivo do islenefs, (modificado a partir do islenefs-v3), e arquivo swap-pages-grpXX.c