[osy] Re: frame_alloc

  • From: Jaroslav Keznikl <jaroslav.keznikl@xxxxxxxxx>
  • To: osy@xxxxxxxxxxxxx
  • Date: Sat, 15 Nov 2008 20:18:15 +0100

hele tohle bych ted neresil, to neni problem potom upravit
podstatne je aby to alespon nejak fungovalo co nejdriv, protoze na tom je postaveny cely zbytek. Ja potom planuju udelat nad tim nejakou strukturu, kde se budou drzet cele bloky ramcu rozdelene na volne a obsazene (pointer na zacatek a udaj, kolik ramcu ten blok obsahuje) a nejlepe setridene podle velikosti...
ale zatim chci aby to bylo co nejjednodussi a funkcni, tohle zatim staci.
Bitova mapa  by se nedala tak hezky prochazet, takze zatim zustanu u pole ;)
J.

Jiri Horky napsal(a):
Jo, to zni rozumne,ze zacatku jsem to tak taky chtel delat. Jen mi prijde, ze pole charu, kde kazda pozice je jeden blok je zbytecne moc ne? Staci ti vlatne jenom jeden bit informac,e jestli to je plne nebo neni :-) tzn. 8x mensi pole.

Jirka

Jaroslav Keznikl wrote:
no zatim tu spravu alokace udelam strasne jednoduse a pak to vylepsim
core business je prece alokovat a uvolnovat ramce, nic jinyho se nechce,
takze ja si na zacatku startu najdu kolik mam volny pameti, zjistim si kolik je potencionalne ramcu a spocitam si jak velky by bylo pole charu kde by byl pro kazdej ramec zaznam jestli je volnej (takova mapa). pak si poznamenam ze zacatek volny pameti je _kernel_end + velikost toho pole a reknu si ze pole zacina na _kernel_end
(vsude pocitej ze zarovnavam na spravny adresy)

no a pak uz jen to pole nainicailizuju a pak pri malloc a free ho prochazim a koukam jestli mam dost velkej souvislej blok framu. Da se to pak vylepsit o nejakou dalsi strukturu, a staci k tomu jen posunout zacatek volny pameti o kousek dal a tim si vyhradit misto pro tu novou strukturu.

J.

Jiri Horky napsal(a):
Ahoj,
...a jak to teda budes delat?
Podivam se na to, ale vypada to, ze az v pondeli, jsem v Amstru a nevypada to tu na moc pracovni naladu :/

Jirka H.

Jaroslav Keznikl wrote:
ahoj
Jirko hele jestli budes neco programovat, tak ja jsem zacal ten frame alloc a myslim ze asi vim jak to budu delat, zkus se treba podivat, jak upravit stavajici malloc na halde jadra tak, aby pouzival to api frame_*

Jarda







Other related posts: