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

GCC – ?

The gcc commands cover optimizations, profiling, security, and low-level operations, essential for embedded systems and performance-critical applications. Techniques include Link-Time Optimizations, dependency file generation, controlling inline functions, architecture-specific optimizations, and static analysis. These techniques prioritize efficient, secure, and compact code in memory-constrained embedded systems.

Read More GCC – ?

𝑻𝒉𝒆𝒓𝒂𝒄 πŸπŸ“ – 𝑴𝑨𝑳𝑭𝑼𝑡π‘ͺ𝑻𝑰𝑢𝑡 πŸ“πŸ’

The Therac-25 incident serves as a stark reminder of the ethical and technical responsibilities in embedded engineering. This state-of-the-art medical device’s software race condition led to catastrophic consequences, emphasizing engineers’ duty to design with care and respect for end users. It highlights the profound impact of engineering work on real people and urges a cautious, responsible approach.

Read More 𝑻𝒉𝒆𝒓𝒂𝒄 πŸπŸ“ – 𝑴𝑨𝑳𝑭𝑼𝑡π‘ͺ𝑻𝑰𝑢𝑡 πŸ“πŸ’

π‘«π’†π’‚π’…π’π’π’„π’Œ π’–π’”π’Šπ’π’ˆ π’‡π’Šπ’‡π’

This post demonstrates a deadlock scenario using two FIFOs and a client-server model. The deadlock occurs when both the server and client wait for each other to send a message, resulting in a standstill. The article also outlines steps to avoid deadlock by following a specific sequence of actions.

Read More π‘«π’†π’‚π’…π’π’π’„π’Œ π’–π’”π’Šπ’π’ˆ π’‡π’Šπ’‡π’

𝑾𝒉𝒂𝒕 π’Šπ’” 𝒂 𝑭𝑰𝑭𝑢?

Named pipes, also known as FIFOs, are essential in inter-process communication. They embody the “First In, First Out” concept, serving as intermediaries between processes. Positioned within the file system, they enable seamless communication and offer persistence and flexibility. Understanding named pipes is key to fully appreciate Linux’s capabilities and empower your programming endeavors.

Read More 𝑾𝒉𝒂𝒕 π’Šπ’” 𝒂 𝑭𝑰𝑭𝑢?

𝑾𝒉𝒂𝒕 π’Šπ’” 𝒂 π‘Ίπ’π’π’π’‘π’Šπ’π’ˆ 𝒄𝒂𝒄𝒉𝒆 𝒄𝒐𝒉𝒆𝒓𝒆𝒏𝒄𝒆 𝒑𝒓𝒐𝒕𝒐𝒄𝒐𝒍?

As the demand for high-performance and energy-efficient computation rises, multiprocessor architectures like MPSoCs are increasingly used in embedded systems. Snooping Cache Coherence protocol ensures data consistency and real-time response for shared memory locations. It involves broadcasted transactions and different cache line states. There are two primary protocols: Write-Invalidate and Write-Update (or Write-Broadcast).

Read More 𝑾𝒉𝒂𝒕 π’Šπ’” 𝒂 π‘Ίπ’π’π’π’‘π’Šπ’π’ˆ 𝒄𝒂𝒄𝒉𝒆 𝒄𝒐𝒉𝒆𝒓𝒆𝒏𝒄𝒆 𝒑𝒓𝒐𝒕𝒐𝒄𝒐𝒍?

~~~ 𝑾𝒉𝒂𝒕 π’Šπ’” π‘«π’Šπ’—π’Šπ’”π’Šπ’ƒπ’π’† 𝑳𝒐𝒂𝒅 π‘Ίπ’„π’‰π’†π’…π’–π’π’Šπ’π’ˆ? ~~~

Divisible Load Scheduling (DLS) is a method for efficiently distributing computational work across processors or nodes. It involves considering factors like processing power and communication time. This ensures simultaneous task completion, making it useful for real-time systems, multi-core processors, distributed embedded systems, and load balancing in sensor networks.

Read More ~~~ 𝑾𝒉𝒂𝒕 π’Šπ’” π‘«π’Šπ’—π’Šπ’”π’Šπ’ƒπ’π’† 𝑳𝒐𝒂𝒅 π‘Ίπ’„π’‰π’†π’…π’–π’π’Šπ’π’ˆ? ~~~

Linux IPC’s

Linux IPCs are essential tools for processes to communicate in the operating system. They include various methods like Pipes, Message Queues, Shared Memory, Sockets, Semaphores, and File-based communication. Each method serves specific communication needs, from simple data transfer to complex synchronization and coordination among processes.

Read More Linux IPC’s