dilan1998
(usa Debian)
Enviado em 24/05/2023 - 02:44h
Boa *
Senhores, estou lendo o livro "Sistemas operacionais modernos", porém eu realmente não consigo passar pra página dois sem entender, validar e testar. Li que um processo tem um "apontador na memória", oque faz com que se um processo tome um sinal "STOPPED" o SO retoma ele no exato momento em que estava executando sua "tarefa".
Para validar isso de forma que pudesse visualizar tive a idéia de criar um script, esse faria um simples dd :
dd if=/dev/zero of=file bs=1024M bs=1 status=progress
Utilizei 1024M pois é demorado e deve ter ferrado o disco kkk, mas enfim, preferi usar somente um bloco para ser mais acertivo.
O intuito foi executar um sinal de stop nesse script.
Cenário
bash script.sh
awk '{print "KILL -STOP",$3}' <<<$(ps -ef | grep "dd if") | bash
awk '{print "KILL -STOP",$2}' <<<$(ps -ef | grep "dd if") | bash
testei ambos, o pid do processo pai e filho
O processo realmente toma o stop, porém o esperado era que parasse o dd de gravar então fiz um script pra executar o comando acima nessa config
if [[ $(find /opt/file -size 500M) ]] ; then awk '{print "KILL -STOP",$2}' <<<$(ps -ef | grep "dd if") | bash ; fi
pode ser que os comandos tenham algum erro de sintaxe pois escrevi eles manualmente agora, porém durante o teste foi real.
Conclusão
O processo dd, tomava o STOP, porém continuava a gravar, gostaria de entender se esse teste é funcional, oque parece não ser, busquei entender o porque e infelizmente não consegui encontrar, talvez lendo mais alguns capitulos entenda, porém estou longe de adentrar nos processos de verdade no livro e queria muito realizar esse teste, para inclusive utilizar em scripts.