The Sprite Network Operating System

Take-away points

  • hide the distribution
  • RPC to communicate
  • share memory (global, local)
  • single file hierarchy / prefix table
  • Difference with UNIX -- also share data (not only code)

Overview

  • a set of kernel calls to allow:
    • processes on same workstation to share memory
    • processes to migrate between workstations
  • use prefix tables to implement a single file name space

Motivation

  • networks
  • large memories
  • multiprocessors

Goal

  • Provide simple and efficient mechanisms that capitalize on the three technology trends.
  • hide the distribution as much as possible

Feature

  • remote procedure call (RPC)
  • domains
  • cache file data both on server machines and client machines (a simple cache consistency mechanism)
  • use ordinary files for backing storage

Sharing

  1. all disk storage and all I/O devices
  2. physical memory
  3. implements process migration

File system

  • access remote files should be invisible to users (transparency)
  • single file hierarchy (Namespace is global), as compared to the customized namespace in Plan9.
  • collection of domains

Sharing Address Space

Motivation

  • Multiple processes
  • multiprocessors

Difference with UNIX

Process Migration

  • Proc_Migrate: move a process or group of processes to an idle machine.
  • make: invokes the recompilations sequentially
  • pmake: invokes multiple recompilations concurrently

Kernel

  • multi-threaded synchronization
    • monitor-like sytle with many small locks (instead of a single overall lock)
  • RPC
    • stubs
    • RPC transport

  • Only used by kernels
  • only two packets are transmitted for each remote calls

Prefix Table

Cache

  • using large caches of recently-used file blocks stored in the main memory of both clients and servers.
  • handles sequential write-sharing using version numbers

Questions

How do the caching policies in Sprite differ from those in the V Kernel?

Why did Sprite delay file write? (2 points) What is the cons? (1 point)

  • Pros: To improve performance: by eliminating disk accesses and network transactions. The application can continue without waiting for information to be flushed to disk.
  • Cons: There will be consistency issue: if the information has not been flushed to disk and there happens to be a system crash, then the information will lose.

results matching ""

    No results matching ""