[OSy] Preempce
Nodir Yuldashev
y_nodir at yahoo.com
Tue Jan 9 13:47:45 CET 2007
Hezky den.
Takze, kopirovani jsem pridal do vlakna, a funguje to.
Diky moc vsem za odpovedi. :)
Narazil jsem na dalsi vec. Mam dva processy, jeden
idle (nekonecny for-cyklus, bez thread_yield, ale i
thread_yield v cyklu nepomaha), a druhy loaduje
(kopiruje) program a pak prejde take do vecneho
for-cyklu.
Kdyz ten druhy process prejde do vecneho cyklu, tak se
uz nepreplanuje idle vlakno. Musim v tele cyklu
druheho vlakna explicitne volat fci thread_yield() aby
preplanovani fungovalo.
V cem by mohl byt problem? Nechal jsem vypisovat
tick_left, ale jakmile prejde do for-cyklu, uz se nic
nevypisuje. Zda se ze je to nejaky problem s timerem,
ne?
NY.
--- Martin Decky <decky at dsrg.mff.cuni.cz> wrote:
> To ano, ale nove mapovani plati uvnitr vlakna, ktere
> bylo pomoci
> thread_create_new_map() vytvoreno, nesdili se
> mapovani s vlaknem (obecne
> kontextem), ktere tu funkci vyvolalo.
>
> Takze naalokovat (presnejsi je asi "namapovat")
> pamet pro obraz procesu
> musite uvnitr toho nove vznikleho vlakna a take
> pouze tam muzete
> bezpecne do teto namapovane pameti obraz zkopirovat
> (nebo pouzit funkci
> copy_to_thread() pro kopirovani pameti mezi ruznymi
> adresnimi prostory).
>
>
> BTW: Kdyz uz jsme u toho, tak pripominam, ze by bylo
> dobre, abyste
> spousteni noveho procesu udelali nejak univerzalne
> (prestoze se v praxi
> bude spoustet jen jeden proces), treba tak, ze si
> vytvorite funkci
> process_create() s vhodnymi parametry. Neni vhodne,
> abyste to
> "nabastlili" rovnou do kernelove main().
>
>
> M.D.
> _______________________________________________
> OSy mailing list
> OSy at dsrg.mff.cuni.cz
> http://dsrg.mff.cuni.cz/mailman/listinfo/osy
>
__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com
More information about the NSWI004
mailing list