Upload
sheila-allison
View
224
Download
0
Embed Size (px)
Citation preview
1CS 6823 Spring’10 @ ASU
Chapter 2 Architecture
2CS 6823 Spring’10 @ ASU
Overview
• Architecture overview• Architectural styles• Software architectures• Architectures versus middleware• Self-management in distributed systems
3CS 6823 Spring’10 @ ASU
Uniprocessor Operating Systems
• Multitasking– A virtual machine to application
• CPU– Kernel mode and user mode
• System call– Programming interfaces between application and kernel
• Monolithic Kernel & Microkernel
4CS 6823 Spring’10 @ ASU
Multiple CPU System
• Shared/Private Memory– Multiprocessors & Multicomputers
• Interconnection network– Bus & Switched
5CS 6823 Spring’10 @ ASU
Homogeneous Multicomputer Systems
• System Area Network(SAN)– Bus-based multicomputer
• 100M,Fast Ethernet, Broadcast
• 25~100 nodes– Switch-base multicomputer
• Meshes
• Hypercubes
MPP COW (Clusters)
6CS 6823 Spring’10 @ ASU
Shared-Memory Architectures
• Examples: Cray C90, SGI Power Challenge
7CS 6823 Spring’10 @ ASU
Distributed (Multi-Private) Memory Architectures
• Examples:– NUMA: Cray T3E, SGI Origin 2000 (connected on memory bus)– UMA: Sun Enterprise 10000 (connected on memory bus)– Clusters: IBM SP-2, UC Berkeley NOW (connected on I/O bus)
8CS 6823 Spring’10 @ ASU
Cluster Architectures
9CS 6823 Spring’10 @ ASU
Network Operating System
• A collection of OSs of computers connected through a network incorporating modules to provide access to remote resources– Users are aware of file locations; remotely log-in
10CS 6823 Spring’10 @ ASU
Network Operating System
• Two clients and a server in a network operating system.
1-20
11CS 6823 Spring’10 @ ASU
Distributed Operating Systems
• Requirements– Provide users with a single coherent computer system– Hide distribution of resources– Mechanisms for resource protection– Secure communication
• Definition of Distributed OS– To users, it looks like ordinary centralized OS, but runs on
multiple and independent CPUs
• use of multiple processors is invisible
• user views system as a virtual uniprocessor
12CS 6823 Spring’10 @ ASUAdapted from Instructor’s Guide for Distributed Systems: Concepts and Design Edn. 4 and Slides of UCCS © Pearson Education 2005
Distributed Operating Systems
• Single System Image: sharing local and remote resources in the same way
• Homogeneous and inextensible
13CS 6823 Spring’10 @ ASU
Structure of Distributed Operating Systems
User Space
Kernel
UP
SVR
User Space
Kernel
SVR
14CS 6823 Spring’10 @ ASU
Distributed vs. Network Operating Systems
• Transparency– How aware are users of the fact that multiple computers are
being used?
• Network OS– Users are aware where resources are located– Network OS is built on top of centralized OS– Handles interfacing and coordination between local OSs
• Distributed OS– Designed to control and optimize operations and resources in
distributed systems, but giving a virtual single system to users
15CS 6823 Spring’10 @ ASU
Distributed Systems: Positioning Middleware
• General structure of a distributed system as middleware
16CS 6823 Spring’10 @ ASU
Software Concepts
• An overview between DOS (Distributed Operating Systems)NOS (Network Operating Systems)Middleware
System Description Main Goal
DOSTightly-coupled operating system for multi-processors and homogeneous multicomputers
Hide and manage hardware resources
NOSLoosely-coupled operating system for heterogeneous multicomputers (LAN and WAN)
Offer local services to remote clients
MiddlewareAdditional layer atop of NOS implementing general-purpose services
Provide distribution transparency
17CS 6823 Spring’10 @ ASU
Comparison between Systems
• A comparison between multiprocessor operating systems, multicomputer operating systems, network operating systems, and middleware based distributed systems.
ItemDistributed OS
Network OS
Middleware-based DSMultiproc. Multicomp.
Degree of transparency
Very High High Low High
Same OS on all nodes
Yes Yes No No
Number of copies of OS
1 N N N
Basis for communication
Shared memory
Messages FilesModel specific
Resource management
Global, central
Global, distributed
Per node Per node
Scalability No Moderately Yes Varies
Openness Closed Closed Open Open
18CS 6823 Spring’10 @ ASU
Distributed Shared Memory
• Build a “virtual” memory address over distributed multiple physical memories; an abstraction for data sharing between computers that do not share physical memory– load/store vs. send/receive message passing– Run-time system support for transparent accesses
19CS 6823 Spring’10 @ ASU
Organization of Distributed Systems
• Software architectures – How to organize software components– How they should interact
• System architectures– Final instantiation of software architectures on real machines
• Autonomic systems– A distributed system monitor its own behavior and taking
appropriate measures when needed
20CS 6823 Spring’10 @ ASU
Software Architectures
• Goal: Distribution transparency
– Trade-offs between performance, fault tolerance, ease-of-programming, and so on
• Component:
– Modular units with well-defined required and provided interfaces
• Connector– Mechanism to mediate communication coordination, or
cooperation among components
21CS 6823 Spring’10 @ ASU
Architectural Styles
• Important styles of architecture for distributed systems– Layered architectures– Object-based architectures– Data-centered architectures– Event-based architectures
22CS 6823 Spring’10 @ ASU
Layered Architectural Style
• A component at layer Li is allowed to call components at the underlying layer Li-1
23CS 6823 Spring’10 @ ASU
Object-based Architectural Style
• Each object corresponds to what we have defined as a component
• These components are connected through a (remote) procedure call mechanism
24CS 6823 Spring’10 @ ASU
Data-centered Architectural Style
• Components communicate through a common (passive or active) repository– Network applications: communicate through shared
distributed file systems
– Web applications: processes communicate through the use of shared Web-based data services
25CS 6823 Spring’10 @ ASU
Event-based Architectural Style
• Processes essentially communicate through the propagation of events– Optionally also carry data
• Publish/subscribe systems– Only subscribed processes will receive the published events– Referentially decoupled: Processes are loosely coupled
26CS 6823 Spring’10 @ ASU
Shared Data-space Architectural Style
• Combine event-based architectures and data-centered architectures– Processes are decoupled in time
27CS 6823 Spring’10 @ ASU
System Architectures
• Centralized Architectures• Decentralized Architectures• Hybrid Architectures
28CS 6823 Spring’10 @ ASU
Centralized Architectures
• Client-server model: – Processes are divided into two (possibly overlapping) groups– Server: a process implementing a specific service– Client: a process sending a request to a server and
subsequently waiting for the server's reply
29CS 6823 Spring’10 @ ASU
Communication between Clients and Servers
• Connectionless protocol – Efficient, but unreliable
• Good for LANs– Idempotent: an operation can be repeated multiple times
without harm
• Connection-oriented protocol– Inefficient, but reliable
• Good for WANs
30CS 6823 Spring’10 @ ASU
Application Layering
• Traditional three-layered view:– User-interface layer
• Contains units for an application’s user interface– Processing layer
• Contains the functions of an application, i.e. without specific data– Data layer
• Contains the data that a client wants to manipulate through the application components
• Observation: – This layering is found in many distributed information
systems, using traditional database technology and accompanying applications.
31CS 6823 Spring’10 @ ASU
Internet Search Engine
• The core : information retrieval part
32CS 6823 Spring’10 @ ASU
More Examples
• A Stock Brokerage System– User Interface– Process Level
• Analysis of financial data requires sophisticated methods and techniques from statistics and artificial intelligence
– Data Level
• Financial database
• Word Processor
33CS 6823 Spring’10 @ ASU
Data Level
• Persistency of data• Keeping data consistent across different
applications• Database
– Relational database– Object-oriented database