[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