WHAT THE FU*K

The Fast Inverse Square Root line of code, ‘i = 0x5f3759df – (i >> 1);’, revolutionized graphics processing in the 90s by efficiently calculating 1/sqrt(x) through bit manipulation and approximation. It exemplified creative programming, significantly enhancing game performance and remains a celebrated part of programming lore and hacker culture.

Read More WHAT THE FU*K

What is Context SwitchingΒ 

The article explains context switching and details the roles of the scheduler and kernel during the process. It highlights how efficient context switching is crucial for multitasking in operating systems, allowing multiple processes to share system resources seamlessly. For further insights, the article is available in PDF format.

Read More What is Context SwitchingΒ 

π‘ͺ𝒂𝒄𝒉𝒆 π‘Ύπ’“π’Šπ’•π’† π‘»π’‰π’“π’π’–π’ˆπ’‰ 𝒂𝒏𝒅 π‘ͺ𝒂𝒄𝒉𝒆 π‘Ύπ’“π’Šπ’•π’† π‘©π’‚π’„π’Œ

Modern computing relies on the efficient interaction of components, particularly involving cache memory. This article explores the Write-Through and Write-Back strategies, detailing their operations, benefits, and drawbacks. Understanding these mechanisms enhances knowledge of the performance dynamics that underpin today’s digital environments.

Read More π‘ͺ𝒂𝒄𝒉𝒆 π‘Ύπ’“π’Šπ’•π’† π‘»π’‰π’“π’π’–π’ˆπ’‰ 𝒂𝒏𝒅 π‘ͺ𝒂𝒄𝒉𝒆 π‘Ύπ’“π’Šπ’•π’† π‘©π’‚π’„π’Œ

Ellipsis and Variadic

In C, when a function is called, the arguments are typically placed onto the stack, a region of memory. The function retrieves these arguments from the stack based on the function’s known parameter list. But when the number of arguments is variable, the function needs a way to access these “extra” arguments from the stack. […]

Read More Ellipsis and Variadic

What Are Registers?

Registers are essential components in computer architecture that hold data for quick access. Yashwanth Naidu Tikkisetty explores their significance in a concise and informative manner. Read the full article for a comprehensive understanding.

Read More What Are Registers?

A Deep Dive Into Memory

Dynamic memory allocation functions like malloc(), calloc(), realloc(), and free() are crucial in programming. The improved version, dlmalloc(), is widely adopted due to its efficiency. When called, these functions trigger system calls like brk()/sbrk() and mmap() to allocate memory. Understanding these processes is essential for efficient memory management in programming.

Read More A Deep Dive Into Memory

Memory Allocators PART-II

The “Best Fit” strategy in memory allocation finds the closest match, reducing wasted memory and working well with diverse request sizes. However, it can lead to increased fragmentation over time. While efficient, it may result in many tiny, unusable spaces in memory, posing a trade-off between immediate efficiency and potential long-term fragmentation.

Read More Memory Allocators PART-II

Memory Allocators PART-I

Memory allocation in embedded systems is crucial due to limited memory. Different algorithms like Sequential Fits, Best Fit, First Fit, Next Fit, Good Fit, Segregated Free Lists, Segregated Fits, Buddy System, Indexed Fits, and Bitmapped Fits optimize memory use based on various requirements. Each approach has its pros and cons, making them suitable for different scenarios.

Read More Memory Allocators PART-I

FIND AND GREP

This post provides essential commands for navigating directories on Ubuntu/Linux, making directory navigation easier. The post includes commands for searching for specific patterns within files, filtering by file type, and excluding certain directories. Each command is accompanied by a brief explanation and example. This valuable resource can greatly enhance your Linux command line skills.

Read More FIND AND GREP