[OSy] ukonceni user vlakna

Martin Decky decky at d3s.mff.cuni.cz
Fri Jan 20 18:56:22 CET 2012


> Nebo mohu na problém nahlížet tak, že pokud si někdo v user mode zničí své vlastní vlákno, které se pak bude tvářit tak, že stále běží a něco vykonává, je to jeho problém?

Ano, tohle je naprosto bezny pristup. Kernel totiz v principu nemuze 
zjistit, kdy vlakno "skoncilo", pokud mu tento fakt to vlakno samo nejak 
neoznami -- bud explicitne (treba syscallem) nebo nejak implicitne 
dosazenim nejakeho stavu nebo vyvolanim nejake vyjimky (napr. podtecenim 
zasobniku).

Program, ktery si svuj kod nebo data poskodi tak, ze sve ukonceni 
neoznami, se v principu nelisi od programu, ktery zamerne obsahuje 
nekonecny cyklus.

Kdyby kernel dovedl nejak spolehlive sam poznat, kdy vlakno uz skoncilo, 
tak by vlastne umel resit halting problem.

> Nebo je celý tento přístup pomocí envelope_function špatně?

Je to zcela standardni reseni. Asi ne jedine mozne, ale rozhodne ne spatne.


M.D.




More information about the NSWI004 mailing list