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)
paging
-
- Member
- Posts: 144
- Joined: Tue Oct 26, 2004 11:00 pm
- Location: Australia
Re: paging
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!!
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
--- Albert Einstein
Re: paging
that would be reasons two and three, (well reason one, eventually, but not just yet =D). Thanks for your help =].
Re: paging
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
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.
There are 10 types of people in this world... those that understand binary, and those that don't.