[OSy] Uvolneni prostredku vlakna pri thread_kill

Cestmir Houska czestmyr at gmail.com
Thu Nov 4 14:22:54 CET 2010


Dobry den,

resime s kolegy zpusob, jakym by se mely uvolnovat prostredky vlakna pote,
co je na nej zavolana funkce thread_kill. Prostredky jsou mysleny
naplanovane (pripadne prave osetrovane) timery, zamknuta synchronizacni
primitiva a alokovana pamet. Muj napad je ve funkci thread_kill vlakno
zneplatnit nastavenim nejakeho flagu a pote nastavit program counter vlakna
na nejakou funkci, ktera by se postarala o uklid prostredku vlakna. Pokud
ale bude zrovna vlakno v nejake kriticke sekci zamcene nejakym
synchronizacnim primitivem, mohlo by vynuceni odemknuti tohoto primitiva
zanechat jadro v nekonzistentnim stavu. Ja ale tvrdim, ze tam, kde by neco
takoveho hrozilo, jsou (nebo by mely byt) stejne vypnute interrupty a
thread_kill tam toto vlakno nemuze prerusit (at uz diky timer interruptu
nebo IPI). Mam pravdu? A je tento pristup k zabijeni vlaken krok spravnym
smerem?

Predem dekuji za odpoved.

Cestmir Houska
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://d3s.mff.cuni.cz/pipermail/nswi004/attachments/20101104/fcbaeb92/attachment.html>


More information about the NSWI004 mailing list