Computer-Science

Pages in this section

  • Address space (OS)
    Last edited: 2026-02-05

    Address space (OS)

    For a process the address space is the virtual memory associated to the executing program. This is used to make memory management within the program simple and abstracts handling the physical memory to the OS .

  • Asynchronous programming
    Last edited: 2026-02-05

    Asynchronous programming

    Asynchronous programming is a programming paradigm that allows a program to handle operations that may take an indeterminate amount of time, such as I/O -bound tasks, without blocking the execution of the entire program. Instead of waiting for an operation to complete before moving on to the next one, asynchronous programming enables a program to initiate an operation and then continue executing other tasks while waiting for the operation to finish. Once the operation completes, the program is notified, and the relevant code can be executed.

  • B-tree
    Last edited: 2026-01-21

    A B-tree is a self-balancing tree data structure that maintains sorted data. (Note: The B here is for balanced, not for binary - B-trees can have more than two children per node.) A B-tree of order $m$ is a tree that satisfies the following properties:

    • Every node has at most $m$ children.

    • Every node other than the root and leaves has at least $\lceil m/2 \rceil$ children.

    • The root has at least two children unless it is a leaf.

    • Boolean function
      Last edited: 2023-11-11

      A Boolean function is a function that takes only boolean inputs and outputs a boolean .

    • Concurrency
      Last edited: 2026-02-05

      Concurrency

      This is a technique to handle large tasks that require waiting on different resources outside the control of the executor. This means starting lots of different tasks and switching to a different task whenever you are blocked from progressing on your current task. A common technique here is asynchronous programming or multi-threading using a single kernel thread .

    • Consistent hashing
      Last edited: 2026-02-05

      Consistent hashing

      Consistent hashing is a distributed hash table that tends to balance load between multiple servers. In this, we will use nodes to mean the hash bins and IDs to mean elements that are being hashed. This is achieved by assigning roughly the same number of IDs to each node and requires little movement when nodes join or leave the hash table. To understand the main idea, consider a circle where we will assign IDs and nodes a number on this circle. Consistent Hashing We allocate IDs to nodes if they are the next highest node in the circle (looping back around once we reach the top). Then when a node exits, all the IDs just overflow to the next node. Consistent Hashing Exit

    • CPU register
      Last edited: 2026-02-05

      CPU register

      A CPU register is a small, fast storage location within the Central processing unit (CPU) of a computer. They hold data that the CPU is currently processing such as operands (the values to be operated on) or the result of operations. They also hold memory addresses or instruction pointers. They normally are small in size such as 32 or 64 bits . (This often is referenced within the type of CPU you have.) There are different types of registers:

    • Deadlock
      Last edited: 2026-02-05

      Deadlock

      A deadlock is when two or more threads are waiting on each other for a mutex meaning none of them will stop waiting.

    • Direct memory access (DMA)
      Last edited: 2026-02-05

      Direct memory access (DMA)

      Direct memory access instead of Programmed IO (PIO) uses a DMA controller to write data to and from devices. The CPU still directly accesses the status and command registers. Dma Device To utilise the DMA controller, the CPU needs to configure it—which is not a small operation. Therefore, for small data transfers, it is not worth the overhead. Another restriction is that the data to be used by the DMA controller needs to be kept in physical memory while the transfer happens.

    • Earliest deadline first (EDF)
      Last edited: 2026-02-05

      Earliest deadline first (EDF)

      This is a policy in OS that chooses to do the task that has the earliest deadline first.

    • First in first out (FIFO) queue
      Last edited: 2026-02-05

      First in first out (FIFO) queue

      This is a traditional queue - the person that joined first is the first person to get served.

    • Georgia Tech
      Last edited: 2026-01-28

      # Overview

      I am enrolled in the online Master of Science in Computer Science (OMSCS ) at Georgia Tech . I am pursuing this degree to properly understand machine learning and distributed computing.

    • Kernel
      Last edited: 2026-02-05

      Kernel

      The kernel is the core component of an Operating system (OS) that manages the system’s hardware and resources, such as the CPU , direct memory access , and I/O devices. It acts as an intermediary between software applications and the physical hardware of a computer. The kernel is responsible for critical tasks, including process management, memory management, device management, and system security.

    • Least-recently used (LRU)
      Last edited: 2026-02-05

      Least-recently used (LRU)

      This is a policy that chooses to operate first on the least recently used element, such as memory.

    • Memory page
      Last edited: 2026-02-05

      Memory page

      A memory page is a fixed-size block of memory, determined by the operating system and hardware architecture, typically at system startup. It serves as the fundamental unit of memory management in both physical memory and virtual memory . The operating system, in conjunction with the Memory Management Unit (MMU) , manages this mapping through the use of page tables to memory frames .

    • Multi-processing
      Last edited: 2026-02-05

      Multi-processing

      This method involves breaking a complicated task over multiple processes . This assigns them different PCB and different virtual memory .

    • Multi-threading
      Last edited: 2026-02-05

      Multi-threading

      This is the technique of breaking a complicated task up over multiple threads . They will still share the same virtual memory and be tied to the same process but can be executed in parallel if scheduled on different kernel threads.

    • Operating system (OS)
      Last edited: 2026-02-05

      Operating system (OS)

      An operating system is a software that abstracts and arbitrates computer hardware away from the software running on it.

    • Page table
      Last edited: 2026-02-05

      Page table

      A page table maps addresses in the virtual address space of a process which is indexed by the virtual page number and an offset within that page. The virtual page number is mapped to a physical frame number which combined with the offset can identify a location in physical memory . The simplest way to do this is with flat page tables. A page table contains one entry for each virtual page number which is the index in the page table. The page table entry then consists of the physical frame number along with some management bits which inform the operating system if the memory mapping is valid and what permissions the process has to access this memory. To then do the mapping it sums the offset from the virtual address with the physical frame number in the page table to get the physical address . Other page table types exist such as Multi-level page tables or Inverted page tables (IPT) .

    • Physical memory
      Last edited: 2026-02-05

      Physical memory

      Physical memory usually refers to the actual RAM installed in a computer. However, the term can also have more specific meanings depending on the context. A physical address is a reference to a location in this RAM , but in some cases, it may also refer to an abstraction used by the operating system , which treats memory as a contiguous block, even if the physical layout is non-contiguous. The mapping between virtual addresses and physical addresses is handled by the Memory Management Unit (MMU) and memory controller , which ensure that memory is accessed correctly and efficiently.

    • Process
      Last edited: 2026-02-05

      Process

      A process is an instance of an executing program. It has some state in memory such as:

    • Process control block (PCB)
      Last edited: 2026-02-05

      Process control block (PCB)

      A Process control block is a data structure that holds the state for a process . This includes but is not limited to:

    • Process modes
      Last edited: 2026-02-05

      Process modes

      Processes normally have at least 2 modes.

    • Program counter (PC)
      Last edited: 2026-02-05

      Program counter (PC)

      The program counter points to the next instruction to be executed by a process .

    • Race condition
      Last edited: 2025-04-08

      Race condition

      A race condition occurs when two or more threads or processes access shared data concurrently and the final result depends on the timing or order of their execution. Because the outcome varies based on how the threads are scheduled, it leads to unpredictable or incorrect behavior.

    • Stack (OS)
      Last edited: 2026-02-05

      Stack (OS)

      The stack of an application is a FIFO queue of stack frames—these contain a function’s parameters, local variables, and return address. These get added when a function is called and removed once a function completes. The stack acts as the control flow for a process , determining where to return to once a function has completed. The stack has a fixed size when a process starts, and if it goes beyond that size, it can cause a stack overflow.

    • Stack Pointer (SP)
      Last edited: 2026-02-05

      Stack Pointer (SP)

      This is a CPU register that points to the top of the stack for a process .

    • System call
      Last edited: 2026-02-05

      System call

      An application running in user mode makes a system call to the OS when it needs to access hardware. The OS then runs the associated call in kernel mode to effect the hardware. This is normally costly for the application as it has to give over control to the kernel.

    • Trap instruction
      Last edited: 2026-02-05

      Trap instruction

      A trap instruction is sent to when an application in user mode tries to access hardware without using a system call . This is passed to the OS to judge if the call was illegitimate or harmful. While this is happening, the process is stopped from doing anything else.

    • Virtual memory
      Last edited: 2026-02-05

      Virtual memory

      So processes do not have to be aware of one another when accessing RAM they do it through virtual memory. This is a simplified address space which is then mapped onto physical memory by the Memory Management Unit (MMU) . Processes access the virtual memory through the virtual address space.