Case Study: Distributed OS Distributed Systems, Lecture # 17
Amoeba OS What if we could afford hundreds of computers per user? What if we could afford hundreds of computers per user? Use a shared pool of servers Use a shared pool of servers These days this is called “blade computing” These days this is called “blade computing” Grid Computing? Grid Computing? Location independent Location independent Amake Amake What if we could afford hundreds of computers per user? What if we could afford hundreds of computers per user? Use a shared pool of servers Use a shared pool of servers These days this is called “blade computing” These days this is called “blade computing” Grid Computing? Grid Computing? Location independent Location independent Amake Amake
Architecture
Micro-kernel Process and thread (kernel/user space) management Process and thread (kernel/user space) management IPC IPC Low level I/O management Low level I/O management Low level Memory management Low level Memory management Process and thread (kernel/user space) management Process and thread (kernel/user space) management IPC IPC Low level I/O management Low level I/O management Low level Memory management Low level Memory management
Client-Server Model Clients are written by users Clients are written by users Servers are written by system programmers Servers are written by system programmers Essentially isolating faults, and reliability guarantees Essentially isolating faults, and reliability guarantees Clients are written by users Clients are written by users Servers are written by system programmers Servers are written by system programmers Essentially isolating faults, and reliability guarantees Essentially isolating faults, and reliability guarantees
Objects Servers manage objects Servers manage objects Clients can instantiate and access objects Clients can instantiate and access objects Objects protected by cryptographically protected capability Objects protected by cryptographically protected capability Files Files Directories Directories Memory Segments Memory Segments Screen Windows Screen Windows Processors Processors Disks Disks Servers manage objects Servers manage objects Clients can instantiate and access objects Clients can instantiate and access objects Objects protected by cryptographically protected capability Objects protected by cryptographically protected capability Files Files Directories Directories Memory Segments Memory Segments Screen Windows Screen Windows Processors Processors Disks Disks
RPC Communication Primitive for location independence Primitive for location independence Stub acts as a proxy in the client address space Stub acts as a proxy in the client address space Resolve name Resolve name Marshal parameters Marshal parameters Block for reply Block for reply Primitive for location independence Primitive for location independence Stub acts as a proxy in the client address space Stub acts as a proxy in the client address space Resolve name Resolve name Marshal parameters Marshal parameters Block for reply Block for reply
Bullet + Soap Server Modular Architecture Modular Architecture Naming Naming File Manipulation File Manipulation Bullet File server Bullet File server Read-only file server Read-only file server Files can only created and deleted Files can only created and deleted Not modified! Not modified! Soap Directory Server Soap Directory Server Maps file names to capabilties Maps file names to capabilties Modular Architecture Modular Architecture Naming Naming File Manipulation File Manipulation Bullet File server Bullet File server Read-only file server Read-only file server Files can only created and deleted Files can only created and deleted Not modified! Not modified! Soap Directory Server Soap Directory Server Maps file names to capabilties Maps file names to capabilties
Other Servers Object replication server Object replication server Process maintenance Process maintenance Health-monitoring server Health-monitoring server Inter-operability servers Inter-operability servers Object replication server Object replication server Process maintenance Process maintenance Health-monitoring server Health-monitoring server Inter-operability servers Inter-operability servers
Objects and Capabilities Objects make the system modular Objects make the system modular Secure Secure Fault-tolerant Fault-tolerant More available More available Objects make the system modular Objects make the system modular Secure Secure Fault-tolerant Fault-tolerant More available More available
Capabilities Naming as well as protection Naming as well as protection Managed in user space Managed in user space Rights management Rights management Can downgrade rights of a capability Can downgrade rights of a capability Takes original bits Takes original bits XOR with old rights XOR with old rights Take a one-way hash Take a one-way hash Naming as well as protection Naming as well as protection Managed in user space Managed in user space Rights management Rights management Can downgrade rights of a capability Can downgrade rights of a capability Takes original bits Takes original bits XOR with old rights XOR with old rights Take a one-way hash Take a one-way hash
Process Management Process is also an object Process is also an object Accessed by process descriptor capability Accessed by process descriptor capability Three-levels of interfaces Three-levels of interfaces RPC with process servers RPC with process servers Library Calls Library Calls Do-all dispatcher “Run-server” Do-all dispatcher “Run-server” Process is also an object Process is also an object Accessed by process descriptor capability Accessed by process descriptor capability Three-levels of interfaces Three-levels of interfaces RPC with process servers RPC with process servers Library Calls Library Calls Do-all dispatcher “Run-server” Do-all dispatcher “Run-server”
Memory Management Not paged or swapped Not paged or swapped Contiguous in memory Contiguous in memory Segments may be created, destroyed, read and written Segments may be created, destroyed, read and written Simple and fast in an RPC model Simple and fast in an RPC model Overly restrictive Overly restrictive Not paged or swapped Not paged or swapped Contiguous in memory Contiguous in memory Segments may be created, destroyed, read and written Segments may be created, destroyed, read and written Simple and fast in an RPC model Simple and fast in an RPC model Overly restrictive Overly restrictive
Message passing Servers declare ports Servers declare ports Get_port Get_port Identifies a service Identifies a service Clients put-ports in their messages Clients put-ports in their messages At-most once semantics At-most once semantics As opposed to atleast once As opposed to atleast once Servers declare ports Servers declare ports Get_port Get_port Identifies a service Identifies a service Clients put-ports in their messages Clients put-ports in their messages At-most once semantics At-most once semantics As opposed to atleast once As opposed to atleast once
Group Communication Closed groups Closed groups Reliable Broadcast Reliable Broadcast Sequencer model Sequencer model Lazy-ack Lazy-ack Client broadcast vs Sequencer broadcast Client broadcast vs Sequencer broadcast Closed groups Closed groups Reliable Broadcast Reliable Broadcast Sequencer model Sequencer model Lazy-ack Lazy-ack Client broadcast vs Sequencer broadcast Client broadcast vs Sequencer broadcast
Layered Communication Model LAN LAN IP IP FLIP FLIP Fast local internet protocol Fast local internet protocol FLIP addresses are persistent and location-independent FLIP addresses are persistent and location-independent From the put-port to the FLIP address From the put-port to the FLIP address From the FLIP to the network address From the FLIP to the network address LAN LAN IP IP FLIP FLIP Fast local internet protocol Fast local internet protocol FLIP addresses are persistent and location-independent FLIP addresses are persistent and location-independent From the put-port to the FLIP address From the put-port to the FLIP address From the FLIP to the network address From the FLIP to the network address