[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