110 likes | 267 Views
VM Algorithm Improvement. Student’s Name: Kamlesh Patel Date: Oct 13, 2008 Advisor’s Name: Dr. Chung-E-Wang Prof. Dick Smith Department of Computer Science California State University Sacramento. Motivation.
E N D
VM Algorithm Improvement • Student’s Name: Kamlesh Patel • Date: Oct 13, 2008 • Advisor’s Name: Dr. Chung-E-Wang Prof. Dick Smith Department of Computer Science California State University Sacramento
Motivation • 1. I am highly interested in the development of different Kernel modules . • 2. Virtual Memory is my most interesting part in Kernel. • 3. I would like to work for Open Source Community. • 4. My Interesting classes: • Algorithm and Paradigms, Data structure • Operating System Pragmatics • 5. VM algorithm improvement covers all the above criteria. So, it is suitable for my master project.
About FreeBSD • FreeBSD is an advanced operating system for x86 compatible, amd64 compatible UltraSPARC, IA-64, PC-98 and ARM architectures. • It is derived from Berkeley Software Distribution (BSD), the version of UNIX developed at the University of California, Berkeley. • It is developed and maintained by a large team of individuals.
Page-level Allocation • Operating system’s virtual memory manager uses different data structures to organize memory pages. • Kernel maintains a list of free page frames (physical memory). • Pages are allocated from the free list. • Memory management operations have been measured to consume up to 10% of the CPU time on a busy system.
Splay tree in VMM • The FreeBSD operating system uses splay trees to organize memory pages in it its virtual memory manager. • A splay tree is a self-adjusting binary search tree. • If we search for an element that we looked up recently, we will find it very quickly because it is near the top. This is a nice property because many real-world programs will access some values much more frequently than other values.
Splay tree penalties • First, in the worst case, a lookup in a splay tree may take O(N) time, even though amortized over many operations, it is guaranteed to be O(log N) on average. • The second penalty is that lookups modify the tree as they perform rotations to move the recently accessed element to the root. The fact that a lookup performs O(log N) writes into the tree significantly adds to its cost on a modern hardware. • It seems that at least some contributors do not consider splay trees to be ideal for this purpose and trying to modify the virtual memory manager to use a different data structure.
Project Objective • Implementing Better Data Structures and Algorithms to Support Large VM Objects of freeBSD kernel in place of splay tree data structure. • The objective is efficient use of memory and faster performance • For the management of resident pages the splay trees are used, which are not suitable for the purpose • To replace the splay tree with another data-structure such that even ordered traversal is possible. • The ordered traversal will allow us to reduce size of structure vm_page.
Project Plan • To implement the new data structure in user-space first. Test for memory leaks and correctness. Evaluate space and time efficiency. • The new data structure is generalized radix tree. • Move the code to kernel and run the new data structure parallel to old data structure, test for identical functionality. • Performance evaluation.
To Do List • Understand VM Space Management. • Test for memory leaks and functional correctness. • Test strategy: For memory leaks add/remove/lookup operations for long time. • Test for different tree configurations. • Integrate a new tree with kernel code and run in parallel with the existing splay tree, check if the values returned are identical. • Remove the splay tree and measure performance for the new data structure.
Future Expansion • Future Operating Systems can use the concept of memory management by using different data structures for faster performance.