Title: Chapter 16: Distributed Processing, Client Server, and Clusters
1Chapter 16 Distributed Processing, Client /
Server, and Clusters
- CS 472 Operating Systems
- Indiana University Purdue University Fort Wayne
2Brief review of Chapter 17 Networking
- Note Chapter 17 is an online chapter and does
not appear in the textbook - Available under Online Chapters at
- WilliamStallings.com/OS/OSe6.html
- Be aware that the URL is case sensitive
- A .pdf of this chapter should also be available
on the class web site under Resources
3Distributed System Architectures
- There is a spectrum of distributed system
architectures - Communications architecture
- Network OS
- Distributed OS
4Communications system architecture
- TCP/IP is the most widely used example
- Software supports a group of networked computers
- Appropriate for email and file transfer
- Separate OS on each computer
5TCP/IP review
- TCP/IP is a protocol suite
- Vendor independent
- DoD standardization (originally for ARPANET)
- Five relatively independent layers
- Physical
- Network access
- Internet
- Transport (host-to-host)
- Application
6TCP/IP review
- Transport layer ensures all data arrives at the
destination and in the order sent - Protocols
- IP (Internet Protocol) internet layer
- TCP (Transmission Protocol) transport layer
- SMTP (Simple Mail Transfer Protocol)
application layer - FTP (File Transfer Protocol) application layer
- TELNET (remote login, scroll-mode) application
layer
7Network OS system architecture
- One or more servers
- These provide network services such as file
storage - Separate OS on each computer
- Network OS simply allows interaction with the
servers - Example
- Can map a foreign disk drive Z on a server to
local PC - Foreign drive appears under My Computer as a
local drive ( like C )
8Distributed OS system architecture
- Common shared OS on all computers on the network
- Permits a process to migrate to another host
computer - Now
on to Chapter 16 . . .
9Client / server computing
- Client machines are usually single-user PCs or
workstations that provide a user-friendly
interface to the end user - Each server provides a set of shared services to
the clients - The server enables many clients to share access
to the same database and enables the use of a
high-performance computer system to manage the
database
10Client/Server Terminology
- Applications Programming Interface (API)
- A set of functions and call programs that allow
clients and servers to intercommunicate - Client
- A networked information requester, usually a PC
or workstation, that can query database and/or
other information from a server - Middleware
- A set of drivers, APIs, or other software that
improves connectivity between a client
application and a server - Relational Database
- A database in which information access is limited
to the selection of rows that satisfy all search
criteria - Server
- A computer, usually a high-powered workstation, a
minicomputer, or a mainframe, that houses
information for manipulation by networked clients - Structured Query Language (SQL)
- A language developed by IBM and standardized by
ANSI for addressing, creating, updating, or
querying relational databases
11(No Transcript)
12Server types
- Disk server
- Provides shared drive like Z
- File server
- Provides logical structure, protection,
concurrent access, etc. - Print server
- Provides SPOOLing
- Simultaneous Peripheral Operation On-Line
13Server types
- Database server
- Searches for and returns a small number of
records - Server software is typically SQL
- Client does data analysis with application
software - Server can do more work if analysis involves a
large number of records - It is not efficient to send 1,000,000 records
over a network - This requires some application-specific software
to reside on the server
14Classes of Client/Server Applications
- Host-based processing
- Not true client/server computing
- Traditional mainframe environment
dumb terminal
15Classes of Client/Server Applications
- Server-based processing
- Server does all the processing
- Client provides a graphical user interface
16Classes of Client/Server Applications
- Cooperative processing
- Application processing is performed in an
optimized fashion - Complex to set up and maintain
17Classes of Client/Server Applications
- Client-based processing
- All application processing done at the client
- Data validation routines and other database logic
functions are done at the server
18Three-Tier Client/Server Architecture
- Increasingly, this architecture is used
- Application software distributed among three
types of machines - User machine
- Thin client
- Middle-tier server
- Gateway
- Conversion protocols
- Merge/integrate results from different data
sources - Backend server
19(No Transcript)
20File Cache Consistency
- File caches hold recently accessed file records
on servers and each client - Various caches must be kept consistent
- More complicated than readers/writers problem
- Writer must write back to disk and server must
notify all readers to not use cache copy
21Distributed Message Passing
- Message passing must be used for interprocess
communication and synchronization - This is because no shared memory exists
- Therefore, no semaphores
- Two models
- Client-server
- Remote Procedure Call (RPC)
22Client-server model
- Involves sending and receiving messages using
primitives as in a single system - Send( destination, message)
- Receive( from, messageBuffer)
- Note the from parameter may include all
- The primitives rely on a communications
distributed system architecture like TCP / IP
23Reliable v. unreliable message passing
- Reliable
- Guarantees delivery if possible
- Not necessary to let the sending process know
that the message was delivered - High overhead
- Unreliable
- Sends the message out to the network without
reporting success or failure - Reduces complexity and overhead
- Destination may need/want to send acknowledgement
24Blocking v. nonblocking
- Nonblocking
- Process is not suspended as a result of issuing a
Send or Receive - Sender released after a copy of the message is
made - Efficient and flexible
- Difficult to debug
- Blocking
- Send does not return control to the sending
process until the message has been transmitted
(reliable case) - OR does not return control until an
acknowledgment is received (unreliable case) - Receive does not return until a message has been
placed in the allocated buffer
25Remote procedure call
- Allows programs on different machines to interact
using simple procedure call and return semantics - Widely accepted
- Standardized
- Client and server modules can be moved among
computers and operating systems easily
26Remote procedure call
- Sender has a dummy procedure that sends
parameters to the target as a message - The target reacts to the message by calling the
actual procedure - Results are then sent back as a message and
returned by the dummy procedure
27(No Transcript)
28Two models of RPC
- Synchronous RPC
- Special case of reliable, blocking message
passing - Behaves much like a subroutine call
- Asynchronous RPC
- Does not block the caller
- Enables client execution to proceed locally in
parallel with server invocation - Exploits possibility of parallelism
- Example of client server synchronization
- The client can send a sequence of asynchronous
RPCs followed by a final synchronous RPC - The server responds to the synchronous RPC only
after all preceding work has been completed
29Object-oriented mechanisms
- Clients and servers ship messages back and forth
between objects - Common Object Request Broker Architecture (CORBA)
- A client sends a request to an object broker
- The broker calls the appropriate object and
passes along any relevant data
30Clusters
- Alternative to symmetric multiprocessing (SMP)
- Group of networked computers, called nodes
- Computers work together as a unified computing
resource - Illusion of being one computer
- Provides load balancing among all nodes
31Advantages of clusters over SMP
- Scalability
- Both incremental and absolute
- Easy to add a new node
- Very large clusters of multiprocessor systems
possible - Availability
- Failure of one node does bring system down
- Easy to make components redundant
- Failover is a switch to an alternate node in
case of failure - Price / performance
- Building blocks are commodity components
32Cluster configurations
- Separate server
- Each node has private (non-shared) disk
- Failover capability requires constant copying of
data to disks on other nodes - Shared nothing
- Reduces communication overhead
- Common RAID disk, partitioned into volumes
- Each volume is owned by a separate node
- Failure of node only requires transfer of
ownership of its volume - Shared disk
- Each node may access all volumes
- Mutual exclusion must be enforced
33Advantages of SMP over clusters
- SMP is easier to manage and configure
- SMP takes up less space and draws less power
- SMP products are well established and stable