Title: Distributed Computing Systems
1Distributed Computing Systems
2Review
- Definition characteristics of distributed
systems - Distributed system organization
- Design goals
- Resource availability to users
- Transparency
- Openness
- Scalability
- Security and privacy
3Scalability Techniques
- Hiding communication latencies
- Asynchronous communication
- Reduce amount of data transmitted
- Distribution
- Spreading work across system
- Caching and replication
- Make copies of data and services
- Balance load
- Avoid hot spots
4Scaling Techniques
1.4
- The difference between letting
- a server or
- a client check forms as they are being filled
5Scaling Techniques (2)
1.5
An example of dividing the DNS name space into
zones.
6Hardware Classification
- Based on address space
- Multiprocessor
- Multicomputer
- Based on communication infrastructure
- Bus
- Switched
- Based on uniformity
- Homogenous
- Heterogeneous
7Hardware Concepts
1.6
Different basic organizations and memories in
distributed computer systems
8Multiprocessors (1)
- Key Property All CPUs have direct access to
shared memory - Coherent memory Reads and writes are sequential
1.7
- A bus-based multiprocessor.
- Scalability
- Ensuring coherency
9Multiprocessors (2)
Omega switching network
10Homogeneous Multicomputer Systems
- Also known as System Area Networks (SANs)
- Bus-based (Shared multi-access N/W such as
Ethernet) - Switch-based (Massively Parallel Processors,
Cluster of Workstations)
Grid
11Heterogeneous Multicomputer Systems
- Most widely used
- Individual computers can vary widely
- Some node might be multiprocessor machines or
homogenous multicomputer machines - Hierarchical systems (multicomputer systems on
top of existing multicomputer systems). - Nodes lack global view
- Cannot assume identical or even similar
performance - Providing transparency, performance scalability
are key challenges.
12Software Concepts
- Functionalities
- Resource managers
- Hiding intricacies and heterogeneity
- Two kinds of operating systems
- Tightly coupled (distributed operating system)
- Loosely coupled (network operating system)
- Middleware
- Providing transparency for loosely coupled systems
13OS for Distributed Systems
System Description Main Goal
DOS Tightly-coupled operating system for multi-processors and homogeneous multicomputers Hide and manage hardware resources
NOS Loosely-coupled operating system for heterogeneous multicomputers (LAN and WAN) Offer local services to remote clients
Middleware Additional layer atop of NOS implementing general-purpose services Provide distribution transparency
14Uniprocessor Operating Systems
- Virtualize physical devices (manages devices,
protects users) - Two modes (User, Kernel)
- Two kinds (Monolithic, microkernel)
1.11
- Separating applications from operating system
code through - a microkernel.
15Multiprocessor Operating Systems
- Similar in many aspects to uni-processor systems
- Main extension is how shared memory access is
handled - Guard against simultaneous access to provide
consistency - Two primitives
- Semaphores
- Two atomic primitives (UP and DOWN)
- Monitors
16Monitors
- Borrowed from programming languages
- Has data and procedures
- One process can execute at any point of time
monitor Counter private int count
0 public int value() return count void
incr () count count 1 void decr()
count count 1
17Monitors (2)
- Monitors can be used to conditionally block
processes - Producers/consumers scenario
monitor Counter private int count 0 int
blocked_procs 0 condition unblocked public
int value () return count void incr ()
if (blocked_procs 0) count
count 1 else signal
(unblocked)
void decr() if (count 0) blocked_procs
blocked_procs 1 wait (unblocked)
blocked_procs blocked_procs 1 else
count count 1