Diehard allocator - custom allocators, Operating System

Assignment Help:

Allocators can also be used to avoid problems with unsafe languages. C and C++ are pervasive, with huge amounts of existing code. They are also memory-unsafe languages, in that they allow many errors and security vulnerabilities. Some examples include double free(), invalid free(), uninitialized reads, dangling pointers, and buffer over?ows in both stack and heap buffers.

DieHard is an allocator developed at UMass which provides (or at least improves) soundness for erroneous programs. There are several hardware trends which are occurring: multicore processors are becoming the norm, physical memory is relatively inexpensive, and 64-bit architectures are increasingly common, with huge virtual address spaces. Meanwhile, most programs have trouble making full use of multiple processors. The net result is that there may soon be unused processing power and enormous virtual address spaces.

If you had an in?nite address space, you wouldn't have to worry about freeing objects. That would mostly eliminate the double free(), invalid free(), and dangling pointer bugs. And if your heap objects were in?nitely far apart in memory, you wouldn't need to worry about buffer over?ows in heap objects.

DieHard tries to provide something along these lines, within the constraints of ?nite physical memory. It uses randomized heap allocation, so objects are not necessarily contiguous in virtual memory. Since the address space is actually ?nite, objects won't actually be in?nitely far apart, and buffer overruns might actually cause collisions between heap objects. But this is where the multicore processors come in: With the unused processor cores, run multiple copies of the application, say three copies, each allocating into their own randomized heap. So the heap errors are independent among the three copies of the application. All copies get the same input, and the output is the result of voting among the three copies of the program. If one instance of the application disagrees with the other two, it is killed, since there was likely a collision between heap objects in that one. Similarly, if one instance dies with a segfault or other error, the others remain running.

Surviving copies can be forked to replace copies which were killed off, though this reduces the independence among copies.


Related Discussions:- Diehard allocator - custom allocators

Determine a component of a process precedence sequence, Determine a compone...

Determine a component of a process precedence sequence Process name, Sequence operator ‘;’ and Concurrency operator ‘,’

Explain the thread contextual data, Explain the Thread Contextual Data  ...

Explain the Thread Contextual Data  Threads in Net Ware carry additional context as well. Per-thread, stacks, errno, Net Ware Errno, t_errno and others are available to the ap

Define disadvantages of top down parsing of backtracking, Define Disadvanta...

Define Disadvantages of Top Down parsing of Backtracking The disadvantages of top down parsing of backtracking: (i)  Semantic actions cannot be carried out while making a pr

Write a short note about schedulers, Write a short note about schedulers. ...

Write a short note about schedulers. Processes migrate between the various scheduling queues throughout its life time. The operating system should select for scheduling purpose

Financial objective of corporation, The primary financial objective of corp...

The primary financial objective of corporation is usually taken to be the maximization of shareholder wealth. Discuss:- i. Ways in which the shareholder of a company can encour

Describe the main architectural layers of windows xp, Q. Describe the three...

Q. Describe the three main architectural layers of Windows XP? Answer: (1) The HAL (Hardware Abstraction Layer) creates operating system portability by hiding hardware differ

What is direct memory access, Direct memory access Many computers avoid...

Direct memory access Many computers avoid burdening the main CPU with programmed I/O by offloading sine if this work to a special-purpose processor known as a direct memory add

Explain next fit algorithm, NEXT FIT ALGORITHM Here scanning starts fro...

NEXT FIT ALGORITHM Here scanning starts from the first fit position and then it finds the next position which is large sufficient to hold the process. Thus the name next fit.

Lru implementation details, Now, let us discuss two related algorithms for ...

Now, let us discuss two related algorithms for deciding which pages to evict. The clock algorithm is one of the most popular choices. It works by keeping frames in a circular struc

Define unixware, Define UnixWare UnixWare manages resources at the proc...

Define UnixWare UnixWare manages resources at the process level. Each resource allocated to the application is actually allocated to the process representing the application. C

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