Need help on memory management
Posted: Wed Aug 08, 2007 7:25 pm
I am currently reading up on memory management.I have enabled paging.(I am using higher half kernel). Now I have understood that the next step is the low level physical memory manager. There are some parts of thiss that I dont understand and some parts I want to verify my understanding.
1) i have enabled paging , without setting aside any space for a bitmap or a stack. So I suppose that s what i have to do next. For a stack based approach Ill have to set aside some space (unsigned long stack [1MB]) to allocate and free pages.
(This is all physical addresses, i mean no concept of a private address space here right??)
2) Allocation - pop from the stack
3)Deallocation - push into teh stack
4)(This is the part I dont understand ) A memory mapper. To map physical memory to your address space??????. I dont understand that.
I mean in order to enable paging i set aside two global variables , page dir , and page table0 , and filled in entries so that my higher half kerenel is correctly mapped to the actual location. Now for this memory mapper
(I dont understand its purpose fully yet). One suggested technique is to map the last entry of the page directory , to the page directory. Now how does this memory mapper fit into the low level memory manager. I mean isnt the allocation and deallocation of pages through the stack enough, for the low level memory manager. I dont undertand the role of the memory mapper
1) i have enabled paging , without setting aside any space for a bitmap or a stack. So I suppose that s what i have to do next. For a stack based approach Ill have to set aside some space (unsigned long stack [1MB]) to allocate and free pages.
(This is all physical addresses, i mean no concept of a private address space here right??)
2) Allocation - pop from the stack
3)Deallocation - push into teh stack
4)(This is the part I dont understand ) A memory mapper. To map physical memory to your address space??????. I dont understand that.
I mean in order to enable paging i set aside two global variables , page dir , and page table0 , and filled in entries so that my higher half kerenel is correctly mapped to the actual location. Now for this memory mapper
(I dont understand its purpose fully yet). One suggested technique is to map the last entry of the page directory , to the page directory. Now how does this memory mapper fit into the low level memory manager. I mean isnt the allocation and deallocation of pages through the stack enough, for the low level memory manager. I dont undertand the role of the memory mapper