Memory Management: Where do I start?

Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
Post Reply
Unexpected

Memory Management: Where do I start?

Post by Unexpected »

Hello,
now I need to design the MM(Memory Management).
I know that the paging is like segmentation with atributes .
What is the address syntax, page:offset? And what is the maximum value of page?
I read the Tim's documents.. But I don't understand all things...
Now reading once again..
Please explain something
nullify

Re:Memory Management: Where do I start?

Post by nullify »

What is the address syntax, page:offset? And what is the maximum value of page?
The maximum value of a page defaults to 4096 bytes (4K), although I believe newer Intel systems can change this...

The address syntax is still seg:offset, but in protected mode, segments can be anywhere and any size, specified by the GDT. The segment selectors (e.g., cs, ds, ss) are loaded with the active code segment, data segment, etc. so when you address a memory location, you just specify the offset from the active segment.

You can't turn off segmentation on Intel systems, but you can elect to use paging instead of segmentation for address translation (i.e., converting virtual addresses to physical addresses). You'll need to learn about how paging works.

Try : http://osdev.neopages.net/tutorials/pagetables.php
and http://osdev.neopages.net/tutorials/paging.php
Whatever5k

Re:Memory Management: Where do I start?

Post by Whatever5k »

Programming a memory manager is not only enabling paging and all that stuff, but also providing a useful virtual/phyiscal memory allocator...
Post Reply