Conservative garbage collection, Operating System

Assignment Help:

Conservative GC can be used for languages such as C and C++, which were not explicitly designed for garbage collection. This is a non-copying technique. A conservative garbage collector is one that, instead of knowing the exact location of each object, discovers the set of live objects by scanning a region of memory, looking for areas that may be objects. Because C and C++ allow casting, anything that can hold a pointer could conceivably be a pointer, such as an unsigned long which is cast as a pointer, or a ?oating-point type which is cast as a pointer, etc. Conservative GC more or less uses the "duck test", paraphrased here as "if it looks like a pointer and acts like a pointer, it's probably a pointer". Starting from the roots, we can ?nd all objects which look like pointers, and the objects to which they would point if they were in fact pointers, and mark those objects as live. By doing this, we can provide garbage collection to languages which otherwise would not support it.

The possible objects found may or may not actually be objects, but we are ensured that all live objects referred to from that particular area are found by the garbage collector. Since we must discover the areas that might be objects, we also have to know how to identify pointers; usually, if something looks like a pointer, we assume it is a pointer. Then, conservative GC traces through those "pointers", marking everything that is still live.

Some of the drawbacks of this method are: 1) areas of memory that look like pointers to objects, but aren't, cause garbage objects to be retained as long as the fake pointer exists; this increases memory usage of the garbage collector, and can cause other limited resources to be exhausted; and 2) the methods of ?nding exactly which areas to trace aren't always portable.


Related Discussions:- Conservative garbage collection

Explain additional-reference-bits algorithm, Additional-reference-bits algo...

Additional-reference-bits algorithm We can keep an 8-bit byte for every page in a table in memory. The operating system shifts the reference bits right 1 bit, discarding the lo

Explain what is semaphores, Explain what semaphores are, their usage, imple...

Explain what semaphores are, their usage, implementation given to avoid busy waiting and binary semaphores. Semaphore definition Usage for mutual exclusion and process synch

What is preallocation, What is preallocation? Why do it? Allocating spa...

What is preallocation? Why do it? Allocating space for a file before making the file to allow for expansion. This reserves space for a certain file so that other files can't gr

Replacement algorithm for tlb, Consider the following C program where M, N,...

Consider the following C program where M, N, K are predefined constants. Assume int is 4 bytes. Suppose this program is run on a machine with 4KB page size and 32 TLB entries. Init

Define the conditions of deadlock prevention, What are the four necessary c...

What are the four necessary conditions of deadlock prevention?       Ans:  Four essential conditions for deadlock prevention: a. The meaning of removing the mutual exclusio

Explain multilevel feedback queue in detail, Explain multilevel feedback qu...

Explain multilevel feedback queue in detail A process can move among the various queues; aging can be executed this way Multilevel-feedback-queue scheduler explained b

Time-Sharing Operating System, Advantages and disadvantages of time-sharing...

Advantages and disadvantages of time-sharing operating system

Compute minimum transfer size for acceptable utilization, Q. It is occasio...

Q. It is occasionally said that tape is a sequential-access medium whereas magnetic disk is a random-access medium. In fact the correctness of a storage device for random access d

Determine utilization of cpu and the paging disk, Q. Consider the demand-p...

Q. Consider the demand-paged computer system where the level of multiprogramming is currently fixed at four. The system was recently deliberate to determine utilization of CPU and

Explain the spawnvp function used in the netware, Explain the Spawnvp Funct...

Explain the Spawnvp Function used in the netware Spawnvp(flags, execNmae, argv)   This function executes  similarly to spawnlp( ) except that parameters are passed as a v

Write Your Message!

Captcha
Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd