[OSy] Vlakna v Kaliste

Martin Decky decky at dsrg.mff.cuni.cz
Mon Oct 27 22:44:04 CET 2008


> Mel bych (mozno, ze hloupy) dotaz, tykajici se Kalisto:
> Co se stane s vlaknem (v Kaliste), kdyz se vrati funkce, ktera zavolal?

Zrejme trochu michate pojmy. Kdyz zavolate z funkce, ktera je telem 
vlakna, nejakou jinou funkci, tak po navratu z teto funkce pokracuje 
provadeni kodu v puvodni funkci zcela standardne (pokud samozrejme v 
prubehu volani vnorenych funkci nepretece zasobnik nebo se nestane neco 
jineho neprijemneho).

Pravdepodobne jste se ale chtel zeptat, co se stane, kdyz se pokusi o 
navrat funkce, ktera je telem vlakna. Tato operace je v Kalistu skutecne 
nedefinovana, protoze telo vlakna neni obaleno zadnou jinou funkci, 
ktera by se postarala o korektni uklid a odstraneni vlakna ze struktur 
planovace. Navic tim navratem z tela vlakna podtecete jeho zasobnik a 
zacne se pravdepodobne provadet kod na nahodnem miste v pameti. 
Zjistovat v take situaci, proc se vyvola nejaky assert, je uz jen 
stopovani zavlecenych chyb.


Asi je dulezite (opet) upozornit, ze Kalisto je skutecne jen jakesi 
embrio kernelu a pro implementaci Vasich zadani bude nutne upravit i ty 
casti, ktere v ramci jeho omezenych vlastnosti funguji.


M.D.




More information about the NSWI004 mailing list