Essential Data Structures: Trees, Stacks, and Queues Explained

Tree Data Structure and Terminology

A tree in data structures is a non-linear, hierarchical organization of data elements, called nodes, linked by edges. Trees are used to represent relationships where data is organized in levels.

Here are the key terminologies:

  • Node: A basic unit storing data and links to children.
  • Root: The topmost node; it has no parent.
  • Parent: A node with one or more children.
  • Child: A node directly connected below a parent.
  • Siblings: Nodes sharing the same parent.
  • Leaf: A node with
Read More

Linux Process Management: Data Structures and System Calls

Linux Process Management: Basic Data Structures and System Calls (Chapter 3)

Fundamental Process Concepts (Q1-Q4)

  1. What is a process?

    A process is a program in execution.

  2. What are lightweight processes in Linux?

    Lightweight processes are processes which offer better support for multithreaded applications.

  3. Explain what is meant by a multithreaded application. Describe how multithreaded applications are implemented in Linux. Give three examples of POSIX-compliant pthread libraries.

    A straightforward way to

Read More

Digital Logic, Memory, and CAN Bus Communication Principles

Computer Fundamentals and Signal Processing

Defining a Computer System

A computer is a physical form for information processing. It takes data, adapts and compares it, and then generates signals for actuators.

Four Basic Functions of a Computer

  1. Input (Entry): This is a voltage signal sent by a sensor or switch.
  2. Processing: The input signal is compared with programmed instructions. Logic circuits transform the input entries into the required output order.
  3. Storage: Data is stored for comparison with current
Read More

Understanding CPU Registers, Instructions, and Addressing Modes

CPU Registers and Architecture Fundamentals

General Purpose Registers (GPRs)

These 16-bit registers are typically used for arithmetic and data manipulation:

  • AX (Accumulator): Used for main arithmetic operations, disk I/O, multiplication and division instructions, and decimal corrections.
  • BX (Base): Serves as the base register for memory addresses referenced indirectly.
  • CX (Counter): Primarily used as a counter in loops and repetitive string operations.
  • DX (Data): Used in conjunction with AX during multiplication
Read More

Distributed Systems: Concepts, Protocols, and Architectures

Fundamentals of Distributed Systems

Distributed Mutual Exclusion

Distributed mutual exclusion algorithms coordinate access to shared resources in a distributed system, ensuring only one process uses the resource at a time. Unlike centralized systems, there is no single coordinator. These algorithms rely on message passing among processes to achieve mutual exclusion.

Approaches include:

  • Token-Based: A unique token grants access to the critical section.
  • Non-Token-Based: Processes request permission using
Read More

Essential Computing Concepts: Protocols, Security, and Parallelism

Email Retrieval Protocols: POP3 vs. IMAP

POP3 (Post Office Protocol version 3) and IMAP (Internet Message Access Protocol) are fundamental email retrieval protocols used by email clients to access messages from a mail server.

POP3 (Post Office Protocol version 3)

  • Downloads emails from the server to the local device.
  • Usually deletes them from the server, making emails accessible only on that specific device.
  • Pros: Simple, uses less server storage.
  • Cons: Not ideal for accessing mail from multiple devices.
Read More