[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