[OSy] Par dotazu k 2. zadani

Jiri Tousek jiri.tousek at gmail.com
Tue Nov 21 17:44:04 CET 2006


On 11/21/06, Martin Kruliš <bobrik at matfyz.cz> wrote:
> Dobry den.
> Mam par dotazu k druhemu zadani:
> - mame pocitat s moznosti, ze by operacni pameti bylo vic nez 1GB (tzn.
> nebyla by videt primo v segmentech KSEG0 a KSEG1)?

To bylo diskutovano na cviceni, staci pocitat s max. 512MB
(mimochodem, KSEG0 a ! jsou podle mne mapovany oba od fyzicke adresy
0, cili pres sebe).

> - musi byt adresy @src a @dest a delka @len ve funckic:
>     int copy_from_thread (thread_t thr, void * dest, const void * src,
> const size_t len);
>     int copy_to_thread (thread_t thr, void * dest, const void * src,
> const size_t len);
> zarovnane na min. velikost stranky - tzn 4kB, nebo tyto funkce umi
> kopirovat i nezarovnane bloky dat? 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?

Pokud jsem to pochopil spravne, copy_from_thread a copy_to_thread maji
naopak alokovat bloky pomoci vmalloc pro sve kopie a vracet chybu,
pokud uz na zadane dest adrese neco je. Jinak vmalloc a vsechny
ostatni rutiny, ktere delame, pracuji jen se zarvnanymi bloky
zarovnane velikosti.


Disclaimer: neberte moje odpovedi za autoritativni :D

Jiri Tousek


More information about the NSWI004 mailing list