paging

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
kermit
Posts: 4
Joined: Mon Jan 03, 2005 12:00 am

paging

Post by kermit »

Time to dive into the wonderfull world of paging and memory management.. I can handle the latter, I just would like a bit of help with paging. Can anybody give me a few pointers on how it works, how to implement it, and what other support functions my paging system should have?

Thanks for your help. (assuming it comes =D)
Da_Maestro
Member
Member
Posts: 144
Joined: Tue Oct 26, 2004 11:00 pm
Location: Australia

Re: paging

Post by Da_Maestro »

Depends what you want to use paging for. There are three main reasons for implementing paging (Maybe all reasons!):

1. You want to extend the memory of your system using Hard disk space to emulate RAM.
2. You want to isolate individual tasks in seperate address spaces.
3. You want to protect memory mapped devices.

For all the above reasons I suggest reading Intel's System Reference Guide (order 253668). All of Intel's documentation is excellently written and contains alot of usefull hints that work on all IA-32 compatable processors.

For reason one, you will also want to make sure that you have working hard disk support in your OS, and that you are using (or designed) a file system that supports virtual memory.

Good luck!!
Last edited by Da_Maestro on Mon Jan 03, 2005 12:00 am, edited 1 time in total.
Two things are infinite: The universe and human stupidity. But I'm not quite sure about the universe.
--- Albert Einstein
kermit
Posts: 4
Joined: Mon Jan 03, 2005 12:00 am

Re: paging

Post by kermit »

that would be reasons two and three, (well reason one, eventually, but not just yet =D). Thanks for your help =].
[AlAdDiN]
Member
Member
Posts: 107
Joined: Fri Oct 22, 2004 11:00 pm
Contact:

Re: paging

Post by [AlAdDiN] »

in general, paging allow you to traslate virtual <--> phisical adresses, and this is typically used to have your processes running allways on the same memory space.

when you do a process/task switch you load a new page table, which will make the processe believing it runs in a given memory address (virtual adress), data/code/bss and stack are allways in the same adresses for a given process.


I suggest to you to read intel manual volum 3, there is an entire chapter in this subject ;)
-----------------------
There are 10 types of people in this world... those that understand binary, and those that don't.
Post Reply