Arnab Chakraborty

Arnab Chakraborty

3,768 Articles Published

Articles by Arnab Chakraborty

Page 164 of 377

What is Multicore Programming?

Arnab Chakraborty
Arnab Chakraborty
Updated on 17-Mar-2026 9K+ Views

Multicore programming is a software development approach that creates concurrent systems designed to run efficiently on multicore processors and multiprocessor systems. It leverages multiple processing units to execute tasks simultaneously, improving system performance and responsiveness. Multicore vs Multiprocessor Systems A multicore processor system contains a single processor chip with multiple execution cores, while a multiprocessor system has multiple separate processors on the motherboard or chip. Both architectures can also include specialized components like Field-Programmable Gate Arrays (FPGAs) — integrated circuits with programmable logic blocks and reconfigurable interconnects that process input data to produce outputs. ...

Read More

What is Amdahl's Law?

Arnab Chakraborty
Arnab Chakraborty
Updated on 17-Mar-2026 9K+ Views

Amdahl's Law is a fundamental principle in computer science that describes the theoretical maximum speedup achievable when improving part of a system. It demonstrates that the overall performance improvement is limited by the portion of the system that cannot be enhanced. Consider this analogy: Three friends must travel to a party separately but arrive together to enter. One drives a car, another takes the bus, and the third walks. No matter how fast the car and bus arrive, they must wait for the slowest person (the walker). To improve overall arrival time, focus must be on helping the walker, ...

Read More

Types of Parallelism in Processing Execution

Arnab Chakraborty
Arnab Chakraborty
Updated on 17-Mar-2026 19K+ Views

Parallelism in processing execution refers to the simultaneous execution of multiple tasks or operations to improve computational performance. There are four main types of parallelism, each operating at different levels of the computing system. Data Parallelism Data Parallelism involves concurrent execution of the same task on multiple computing cores, but with different portions of data. Each core performs identical operations on separate data segments. Consider summing an array of size N. For a single-core system, one thread sums elements [0] ... [N−1]. For a dual-core system, thread A on core 0 sums elements [0] ... [N/2−1], while ...

Read More

Data parallelism vs Task parallelism

Arnab Chakraborty
Arnab Chakraborty
Updated on 17-Mar-2026 25K+ Views

Data parallelism and task parallelism are two fundamental approaches to parallel computing that enable efficient utilization of multi-core systems. Understanding their differences is crucial for designing optimal parallel applications. Data Parallelism Data parallelism involves executing the same task concurrently on different subsets of the same dataset across multiple computing cores. Each core performs identical operations on its assigned portion of data. Example − Array Summation Consider summing an array of size N: Data Parallelism - Array Summation Array [0, 1, 2, 3, 4, 5, 6, 7] ...

Read More

How to implement monitors using semaphores?

Arnab Chakraborty
Arnab Chakraborty
Updated on 17-Mar-2026 2K+ Views

Monitors are high-level synchronization constructs that provide mutual exclusion and condition synchronization. Since many systems only provide semaphores as primitive synchronization tools, we need to implement monitors using semaphores. This implementation requires careful handling of mutual exclusion, condition variables, and signaling semantics. Basic Monitor Structure with Semaphores For each monitor, we need several semaphores and counters: mutex − A binary semaphore (initialized to 1) for mutual exclusion next − A semaphore (initialized to 0) for signaling processes to wait next_count − Integer counter for processes suspended on next Every monitor function F is wrapped ...

Read More

Process Synchronization in Solaris

Arnab Chakraborty
Arnab Chakraborty
Updated on 17-Mar-2026 2K+ Views

Process Synchronization in Solaris refers to the mechanisms used by the Solaris operating system to coordinate access to shared resources among multiple processes and threads. Solaris implements a variety of sophisticated locking mechanisms to support multitasking, multithreading, and multiprocessing environments while ensuring data consistency and preventing race conditions. Types of Synchronization Mechanisms Solaris provides several synchronization primitives, each optimized for different scenarios and performance requirements. Solaris Synchronization Mechanisms Synchronization Primitives ...

Read More

Concept of Address Split in OS

Arnab Chakraborty
Arnab Chakraborty
Updated on 17-Mar-2026 725 Views

Address splitting is a memory management technique used in operating systems to divide the virtual address space of processes into distinct logical segments. This approach enables efficient memory allocation, enhanced security through access control, and improved system performance by organizing memory into manageable units with specific purposes. Memory Segmentation Memory segmentation divides the process address space into logical segments such as code, data, stack, and heap segments. Each segment serves a specific purpose and can have different access permissions and sizes based on process requirements. Process Address Space Segmentation ...

Read More

Transactional memory

Arnab Chakraborty
Arnab Chakraborty
Updated on 17-Mar-2026 928 Views

Transactional memory originated in database theory and provides an alternative strategy for process synchronization. It allows multiple operations on shared data to be grouped together and executed atomically, without the complexity of traditional locking mechanisms. A memory transaction is an atomic sequence of memory read-write operations. If all operations in a transaction complete successfully, the transaction is committed. Otherwise, the operations must be aborted and rolled back to maintain data consistency. Traditional Locking vs Transactional Memory Consider a function update() that modifies shared data. Traditionally, this function would use mutex locks or semaphores: void update() ...

Read More

Deadlock with mutex locks

Arnab Chakraborty
Arnab Chakraborty
Updated on 17-Mar-2026 7K+ Views

Deadlock can occur in multithreaded Pthread programs when multiple threads compete for mutex locks in conflicting orders. This happens when threads acquire locks in different sequences, potentially creating a circular dependency where each thread waits for resources held by others. Mutex Lock Initialization An unlocked mutex is initialized using the pthread_mutex_init() function. Threads acquire and release mutex locks using pthread_mutex_lock() and pthread_mutex_unlock() respectively. If a thread attempts to acquire an already locked mutex, the call to pthread_mutex_lock() blocks the thread until the owner releases the lock. Example − Deadlock Scenario Consider the following example where two ...

Read More

How does a process look like in memory?

Arnab Chakraborty
Arnab Chakraborty
Updated on 17-Mar-2026 5K+ Views

A process is a program loaded into memory and executing. When a program is created, it exists as bytes stored on the hard disk as a passive entity. The program becomes an active process when loaded into memory — either by double-clicking in Windows or entering the executable name on the command line (e.g., a.out or prog.exe). A process in memory consists of several distinct segments, each serving a specific purpose during program execution. Process Memory Layout STACK (High Address) Grows Down ...

Read More
Showing 1631–1640 of 3,768 articles
« Prev 1 162 163 164 165 166 377 Next »
Advertisements