Matar o aplicativo que usa mais RAM do que você não garante que o arquivo de troca não seja usado. Se esse aplicativo estivesse em execução, suas demandas de memória poderiam fazer com que qualquer outro processo tivesse algumas de suas páginas trocadas para o dispositivo de troca. Matar o processo com fome de memória não trará as páginas de volta até que sejam recarregadas.
Uma possibilidade seria acabar com o dispositivo de troca de nível do kernel e reescrever o processo problemático para que, em vez de malloc
ing mais memória do que o sistema tenha acesso e contando com o kernel para tratar swap, apenas mmap
do dispositivo USB (ou um arquivo no dispositivo se o dispositivo também for usado para outras coisas) e manipular manualmente suas necessidades de memória no espaço do usuário além da memória disponível (implementar efetivamente um heap adicional que resida no seu dispositivo USB). Então, quando o dispositivo precisar desaparecer, basta matar ou suspender esse processo para impedir que o sistema tente acessar o dispositivo.