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
- all disk storage and all I/O devices
- physical memory
- 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
- 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.