Como desmontar o trabalho no contexto de paginação sob demanda?

0

Pelo que entendi, o Linux usa paginação por demanda, o que significa que quando um processo é iniciado, apenas as páginas do processo são realmente carregadas do sistema de arquivos que são tocadas durante a execução.

Mas, o que isso significa se um sistema de arquivos é desmontado? A desmontagem implica que as páginas restantes dos processos afetados sejam carregadas antes de a desmontagem se tornar efetiva (também 'travando' as páginas de memória afetadas)? Ou, se não, poderia desmontar o lead para problemas posteriores com a execução de processos em caso de falhas de página?

Atualização: Depois que Stephen Kitt forneceu uma resposta (ou seja, que a desmontagem é simplesmente evitada em tal caso), encontrei algumas informações adicionais sob a seguinte pergunta: Um carregador de boot desmonta o ramdisk ANTES de montar o sistema de arquivos raiz no disco rígido? . A explicação dada lá leva à mesma conclusão, embora o aspecto da paginação sob demanda não seja abordado lá.

    
por Dirk Herrmann 24.01.2018 / 11:38

1 resposta

3

O kernel resolve isso evitando a desmontagem de um sistema de arquivos que é usado como repositório de suporte para um processo em execução:

$ dd if=/dev/zero of=test.img bs=1M count=50
$ /sbin/mke2fs test.img
$ sudo mount test.img /mnt/temp
$ sudo cp /usr/bin/sleep /mnt/temp
$ /mnt/temp/sleep 120 &
$ sudo umount /mnt/temp
umount: /mnt/temp: target is busy.
$ sudo umount -f /mnt/temp
umount: /mnt/temp: target is busy.
$ wait; sudo umount /mnt/temp

O sistema de arquivos só pode ser desmontado quando o processo em execução a partir dele terminar.

    
por 24.01.2018 / 12:48