Paging, Multitasking, help!!!

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
falconfx

Paging, Multitasking, help!!!

Post by falconfx »

Hello, folks!

I've just finished writing my virtual memory manager and it works very well. I've also managed to run user-space tasks and now I'm trying to implement a V86 monitor.

When I allocate some memory in the current address space, I don't know how to modify all the other ones. In practise, if I allocate some memory within the kernel's page directory, I want all the other tasks to use the same address in their own page directories.

Any suggestions?
User avatar
Candy
Member
Member
Posts: 3882
Joined: Tue Oct 17, 2006 11:33 pm
Location: Eindhoven

Re:Paging, Multitasking, help!!!

Post by Candy »

falconfx wrote: Any suggestions?
1. Using PAE, make a shared PD for the kernel, giving it 1GB reserved for kernel global space
2. Synchronize your address spaces and make a function that adds it in all that exist
3. Share page tables for the kernel

Most of all, go use the global-bit if present, it speeds it up again.
User avatar
kataklinger
Member
Member
Posts: 381
Joined: Fri Nov 04, 2005 12:00 am
Location: Serbia

Re:Paging, Multitasking, help!!!

Post by kataklinger »

If you are willing to sacrify 1MB of memory you can map all page table for kernel space(from 0xc0000000 to 0xffffffff).
Post Reply