Mark-sweep, Operating System

Assignment Help:

The objects that a program can access directly are those objects which are referenced by local vari-ables on the processor stack, or by any global/static variables that refer to objects, or by variables in CPU registers. In the context of garbage collection, these variables are called the roots. An object is indirectly accessible if it is referenced by a ?eld in some other (directly or indirectly) accessible object. An accessible object is said to be live. Conversely, an object which is not live is garbage.

Note that heap objects which are live are indirectly accessible from the roots or other heap objects. The idea of mark-sweep is relatively straightforward. We start at the roots, and recursively visit every object accessible through pointers, marking them as live. At the end of the process, every thing not marked is considered garbage and will be deleted. Notice that mark-sweep can perform lazy garbage collection, in the sense that it does not necessarily need to remove the garbage immediately.

Note thatmark-sweep does not clean upmemory which is allocated, but simply never used. Also, periodically we have to visit all objects recursively, starting from the roots. For a large program, this will be slow. This is a problem with the traditional mark-sweep algorithm.


Related Discussions:- Mark-sweep

Illustrate the function of loader, Q. Illustrate the function of Loader? ...

Q. Illustrate the function of Loader? A loader is a routine which loads an object program and prepares it for execution. There are many loading schemes: relocating, absolute an

Producer – consumer process, Step by step displays the content, and the fin...

Step by step displays the content, and the final result of the list ("buffer") of 6 elements as the initial values ??and the following elements which are produced (NEXTP) or consum

Explain about deadlocks, Q. Explain about Deadlocks? Deadlocks for (...

Q. Explain about Deadlocks? Deadlocks for (int i = 0; i // first find a thread that can finish for (int j = 0; j if (!finish[j]) { boolean temp = true; for

Explain linked list allocation using index, Linked list allocation using in...

Linked list allocation using index The blocks don't have a fixed size. Pointers are utilized to point to the next block in a file. The pointers are set aside as a separate tabl

Command interpreters, Develop a user mode command interpreter which support...

Develop a user mode command interpreter which support these functions: "list-short" -- just like ls without any options "list-long" -- same as ls -l "change" -- same as cd Your co

Explain the overlay structured program, Overlay structured program: A p...

Overlay structured program: A program consisting of overlays is referred as overlay structured program in which an overlay is a part of program which has similar load origin as

What is the benefits os co-operating process, What is the benefits OS co-op...

What is the benefits OS co-operating process? Information sharing. Computation speeds up. Modularity. Convenience.

What is page fault, Problem: a) The CPU can access 2 storage devices di...

Problem: a) The CPU can access 2 storage devices directly. What are these 2 storage devices? b) Define 2 key issues involved in memory management. c) How do processes sha

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