Tuesday, November 23, 2010

android pmem and ashmem

1.pmem -- allocation code in kernel but used at usermode
ensures that memory is returned as
PAGE_SIZE,offset,len ... PAGE_SIZE,0,len, PAGE_SIZE,0,len
2.ashmem
named memory block that is shared between processes and kernel is allowed to free. ker is not allowed to free standard shared memory.
http://cs736-android.pbworks.com/w/page/5834465/ASHMEM

surfaceflinger has a total of 8mb heap,it shares this heap with all processes for their surfaces.
when a process requests space,it allocates from this heap,but returns a pointer to the allocated chunk.once process is out of focus pointer is nulled
This is not for surface data ...but for surface control.control contains pointer to 2 data buffers

Each layer has a corresponding surface
layerbuffer doesnt have one
each surface has 2 buffers
these 2 can be from ashmem or pmem

a canvas can be over layer
a canvas can be associated with multile bitmaps

it seems that surfaceflinger allocater uses pmem and/or normal-memory.some activities use pmem heap and some use normal heap.surface flinger passes this buffer down in two different ioctls to fb driver.

pattern matching algos and artificial brain

1.efficient pattern matching algos will lead to artificial intel
2.pattern matching leads to precise quantization info and making of tokens
3.so obtained tokens can be compared with token database
4.from a set of tokens, it can create context database dynamically
5.transactions involves tokens,contexts and outputs
6.a processing loop can generate permutation of transactions
7.outputs can be labeled desirable,deffered,expel
9.based on the above states,transactions can be chained

An implementation
a game involving transaction doers and decision makers.Within a set of token database and set of
rules for desired,deferred,expel states.

android top down

1.activity ---- in process 1
2.windowserver ---- in process 2
4.mediaserver --- in process 4
5.surfaceflinger -- in process 5
6.audioflinger ---in process 6
7.rild -- in process 7