🤓
Isitha's Wiki
  • Isitha's Wiki
  • software_engineering
    • management
      • process_and_management
        • Project Management
        • Agile
        • Projects
        • Waterfall
        • Project Screening
        • Prince2
        • project_manager
        • Project initialisation
      • individuals_and_motivation
        • Teams and teamwork
        • Individuals and Motivation
        • Organisational theory and motivation
        • Project management and leadership
        • Team structures
        • Team advantages/disadvantages
        • How teams form & perform - Tuckman's team development model
      • cost_estimation
        • Function Points
        • Size Estimation
        • Challenges in cost estimation.
        • Cost Estimation
        • Use case points (UCP)
        • Techniques for cost estimation
      • risk_management
        • Risk Management
        • Risk Management Planning
        • Risk management process
    • quality_management
      • Verification vs Validation
      • Quality management
    • languages
      • Erlang
      • C
      • C++
      • JavaScript
      • Lua
      • Go
      • x86 Assembly
      • Racket
      • TypeScript
      • Rust
      • Haskell
      • Java
      • C#
    • frameworks
      • spring
        • Deferred Result
        • Spring
      • react
        • React Basics
      • llvm
        • LLVM Basics
        • SSA form
    • cost_estimation
      • Cocomo
  • computer_science
    • ai
      • Hutter Prize
      • AIXI
    • programming_language_theory
      • types
        • Algebraic Data Type (ADT)
        • Hindler-Milner type system
        • Linear Types
        • Affine types
      • optimisations
        • Data Flow Analysis
        • Basic Blocks
        • Liveness
        • Peephole optimisation
      • codegen
        • Codegen
        • Single Static Assignment (SSA) form
      • parsers
        • Parsing Expression Grammer (PEG) parser
        • LL1 parser
        • Earley parser
        • LR(1) parser
        • LR(0) parser
        • SLR(1) parser
      • semantics
        • Attribute grammars
    • distributed_systems
      • Consistency
      • operating_systems
        • Memory
        • Processes and threads
        • Operating System
      • Challenges of Distributed Systems
      • CAP (or more accurately PACELC) theorem
      • distributed_models
        • Distributed Models
      • distributed_file_systems
        • Distributed File Systems
        • Strong Consistency
        • Google File System
      • CRDT (Conflict-free Replicated Data Types)
      • Computer Networks
      • Distributed Systems
    • data_structures
      • Segment Trees
      • Fibonacci heaps
      • Bloom filter
      • Adaptive Radix Tree
      • Links
      • Judy Arrays
      • Pairing heaps
    • search
      • Inverted Index
    • theoretical
      • Z-order curve
      • Kolmogorov complexity
      • Solomonoff's theory of inductive inference
      • Hilbert Curve
      • Hilbert curve scheduling
    • compression
      • Entropy
      • Compression
  • math
    • set_theory
      • AntiSymmetry
      • Transivity
      • Reflexivity
    • calculus
      • Calculus Basics
    • complex_numbers
      • Complex Numbers
    • linear_algebra
      • Linear Algebra
    • Blogs
  • physics
    • quantum_physics
      • quantum_tunnelling
    • string_theory
      • String Theory
    • relativity
      • Relativity
    • quantum_loop_gravity
      • Quantum Loop Gravity
  • philosophy
    • stoicism
      • Zeno of Citium
      • Epictetus
    • existentialism
      • Simone De Beauvoir
      • Jean-Paul Sartre
      • Albert Camus
      • Soren Kierkegaard
Powered by GitBook
On this page
  • Creation of a new process
  • Copy on write
  • New processes on distributed systems
  • Process migration
  1. computer_science
  2. distributed_systems
  3. operating_systems

Processes and threads

A process encapsulates the basic resources of memory and processor time. It also encapsulates other higher level resources. Each process:

  • has an address space and has some amount of allocated memory.

  • consists of one or more threads that are given processor timem, including thread sychronization.

  • higher level resources such as open file descriptors.

Creation of a new process

The operating system usually provides a way to create processes. in UNIX the fork system call is used to duplicate the callers address space, creating a new address space for a new process.

Copy on write

When a new process is created via fork, the address space is copied. The new process code is identical and is usually read-only so that it can be shared in real memory and no actual copying of memory is required. This is fater and more efficient than making a copy. Copy on write is a technique that makes a copy of a memory region only when the new process actually writes to it.

New processes on distributed systems

In a distributed system there is a choice as to where the new process will be created on. In a distributed operating system, this choice is made by the operating system. The decision is largely a matter of policy and some categories are:

  • transfer policy : determines whether the new process is allocated locally or remotely.

  • location policy : determines which host, from a set of given hosts, the new process should be allocated on.

    The policy is often transparent to the user and will attempt to take into account such things as relative load across hosts, IPC, architectures and specialised resources that processes may require.

Process migration

Processes can be migrated from one host to another by copying their address space. Depending on the platform and on the resources that are in current use by the process, process migration can be more or less difficult. Process code is often CPU dependant, this obviously introduces heterogenity issues.

PreviousMemoryNextOperating System

Last updated 3 years ago