[OSy] Par dotazu k 2. zadani
Martin Decky
decky at nenya.ms.mff.cuni.cz
Wed Nov 22 10:53:20 CET 2006
Hezky den,
> - mame pocitat s moznosti, ze by operacni pameti bylo vic nez 1GB (tzn.
> nebyla by videt primo v segmentech KSEG0 a KSEG1)?
Jak uz kolega uvedl, ten limit, o ktery asi jde, je ve skutecnosti
512 MB a odpustime Vam, pokud nebudete podporovat vice fyzicke pameti
(jiste to lze, ale je to komplikace). Nezapomente ovsem duvod, proc tak
necinite, vysvetlit v dokumentaci.
> - musi byt adresy @src a @dest a delka @len ve funckic copy_from_thread, copy_to_thread
> zarovnane na min. velikost stranky - tzn 4kB
Nemusi, funkce mohou byt pouzity i ke kopirovani struktur mensich nez
stranka.
> Co se ma stat v pripade, ze v jednom
> z vlaken neni cast kopirovaneho bloku alokovana (pomoci vmalloc). Mame
> vratit chybovy navratovy kod, nebo vlakno zastrelit, jako kdyz se
> pokousi sahat na nealokovanou adresu?
V pripade copy_from_thread() otestujte, zda je korektni mapovani from
(pokud neni, funkce vrati EINVAL) a zapis provedte standardne (tj. pokud
se bude zapisovat do nekorektne mapovane pameti, volajici vlakno bude
zabito vyjimkou pristupu do pameti).
U copy_to_thread() opacne. Nasledky tedy vzdy nese volajici vlakno, ne
to druhe.
M.D.
More information about the NSWI004
mailing list