Keeping track of free memory, Operating System

How do we keep track of where the free pieces of memory are? One idea is to maintain a set of linked-lists of free space; each linked-list will store free chunks of some given size (say, one list for chunks of 4 bytes, one for chunks of 8, 16, etc). This approach resembles the best-?t algorithm, since we can easily ?nd the list with chunks of memory that are the closest to what we need; the difference, of course, is that usually the linked lists store not objects of arbitrary size, but only powers of two. Also, we can never coalesce adjacent elements of the lists, or split elements, since then the very idea of segregating by size classes wouldn't make sense anymore. Another possible technique to keep track of free memory is called Big Bag of Pages (BiBOP). In this technique, a bunch of pages, usually segregated by size classes, is maintained such that there is a header on each page; on this header, among other things, we can ?nd a pointer to the next page of objects of that given size, and also a pointer to the ?rst free "slot" inside that page. Using the right optimizations we can make BiBOP ?nd and manage free slots of memory in O(1).

Posted Date: 3/12/2013 6:06:16 AM | Location : United States







Related Discussions:- Keeping track of free memory, Assignment Help, Ask Question on Keeping track of free memory, Get Answer, Expert's Help, Keeping track of free memory Discussions

Write discussion on Keeping track of free memory
Your posts are moderated
Related Questions
Define throughput? Throughput in CPU scheduling is the number of processes that are completed per unit time. For long processes, this rate might be one process per hour; for sh

Explain the Advantage of Assembly Language The advantages of assembly language program is: a)    Reduced errors  b)    Faster translation times  c)    Changes could be ma

What is single and multithreading and thread pool?

how the system call is work?

You must use fork and pipe to complete this project. This project creates processes to add all numbers in a file. The user will enter a number (1, 2, or 4) of parallel processes

Basic concepts When a process is to be changed in, the pager guesses which pages will be used before the process is changed out again. Instead of swapping in a entire process,

How is memory management done using linked lists?   Each one node of the l list will have 4 fields as follows 1-this tells whether it s a hole or a process 2-starting ad



At the end of this lecture, and into the next lecture, we will discuss the last major type of logical error that can occurwhen programming with threads. A deadlock occurswhen two t