Distributed Systems: Operating Systems, Transparency, Scalability, and Middleware, Study notes of Computer Science

An overview of distributed systems, focusing on operating systems, transparency, scalability, and middleware. Distributed systems are collections of independent computers that function as a single coherent system. Operating systems act as an interface between hardware and software, enabling easier programming and managing resources. Transparency in distributed systems refers to the degree to which the distribution is observable. Scalability is essential for handling increasing size, geographical distance, and administrative domains. Middleware enables distributed applications by providing communication, information, and security services.

Typology: Study notes

Pre 2010

Uploaded on 09/02/2009

koofers-user-5od-1
koofers-user-5od-1 🇺🇸

5

(1)

10 documents

1 / 20

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
1
Operating Systems
Interface between the hardware and the rest: editors, compilers,
database systems, application programs, your programs, etc.
• Allows portability, enables easier programming,
• The manager of different resources (memory, CPU, disk, printer,
etc) in your system
• Takes responsibility away from the users, tends to improve metrics
(throughput, response time, etc)
• 2 types:
monolithic: all functions are inside a single kernel (central part of
the OS)
microkernel-based: non-basic functions float as servers (there is a
small kernel for the basic functionality)
Distributed Systems
A distributed system is:
A collection of independent
computers that appears to its users
as a single coherent system.
(also, a collection of systems that when one
breaks nothing works)
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14

Partial preview of the text

Download Distributed Systems: Operating Systems, Transparency, Scalability, and Middleware and more Study notes Computer Science in PDF only on Docsity!

Operating Systems

Interface between the hardware and the rest: editors, compilers,

database systems, application programs, your programs, etc.

  • Allows portability, enables easier programming,
  • The manager of different resources (memory, CPU, disk, printer,

etc) in your system

  • Takes responsibility away from the users, tends to improve metrics

(throughput, response time, etc)

  • 2 types:
  • monolithic : all functions are inside a single kernel (central part of

the OS)

  • microkernel-based : non-basic functions float as servers (there is a

small kernel for the basic functionality)

Distributed Systems

A distributed system is:

A collection of independent

computers that appears to its users

as a single coherent system.

(also, a collection of systems that when one breaks nothing works)

Distributed Systems

A distributed system organized as middleware. What’s middleware?

Note that the middleware layer extends over multiple machines.

Issues in Distributed Computing

  • Why distribute? What’s bad about centralized?

DISTRIBUTION:

  • allows sharing of data, code, devices, messages, etc
  • is more flexible (can add more resources, scalable)
  • is cheaper (several small machines are cheaper than one powerful). That is, the price/performance ratio is smaller than in centralized
  • is usually faster (same as above)
  • can be fault tolerant (if one site fails, not all computations fail)
  • much, MUCH MORE!!!
  • More complex? YES, much more (here is the much more)
  • More time consuming? (messages need to go back and forth)
  • Slower response time? (messages, but can parallelize comps)
  • What about reliability, security, cost, network, messages,

congestion, load balancing...

Transparency in a Distributed System

AB

C

OH3P/NFEKFP/H9DBN.G Q +DFEG.HJI KL1I M6N

Degree of Transparency

Observation: Aiming at full distribution transparency may be too

much:

  • Users may be located in different continents; distribution is

apparent and not something you want to hide

  • Completely hiding failures of networks and nodes is

(theoretically and practically) impossible

  • You cannot distinguish a slow computer from a failing one
  • You can never be sure that a server actually performed an operation before a crash
  • Full transparency will cost performance, exposing distribution of

the system

  • Keeping Web caches exactly up-to-date with the master copy
  • Immediately flushing write operations to disk for fault tolerance

Scalability

  • Three dimensions:
    • Size: Number of users and/or processes
    • Geographical: Maximum distance between nodes
    • Administrative: Number of administrative domains
  • Limitations:

k_BVF[2X3]Bg Ul_Fa]Bg WBS/X2U [2m/dj^ RTS/U VFWYX3S/Z.[U VFWY\F]F^ _FaS/Vcb S/dfe/g _.[3_hU V.i&S/X2dj].[JU S/V

k_BVF[2X3]Bg Ul_FaB].[3] n@^U VFW6g _fS/VBo2g UVp_q[3_Bg _Be/mFS/Vp_h\FS/S/r

k_BVF[2X3]Bg Ul_F`a^ _BXsBU b_F^ n@^U VFW6g _f^ _BX(s._BXTi3S/Xt]Bg gpZF^ _BX3^

}~T€ |+y<‚ uBvTw+xzy+{ |

Techniques for Scaling

  • Distribution: Partition data and computations across

multiple machines:

  • Move computations to clients (e.g., Java applets)
  • Decentralized naming services (e.g., DNS)
  • Decentralized information systems (e.g., WWW)
  • Replication: Make copies of data available at different

machines (e.g., replicated file servers, databases, mirrored

websites, etc)

  • Caching: Allow client processes to access local copies
    • Web caches (e.g., browser/web proxy)
    • File caches (e.g., server or client)

Scaling Techniques (Example 2 )

An example of dividing the DNS name space into zones.

Hardware Concepts

Different basic organizations and memories in distributed

computer systems

Multiprocessors ( 1 )

A bus-based multiprocessor.

Multiprocessors ( 2 )

A crossbar switch An omega switching network

Uniprocessor Operating Systems

Separating applications from operating system code through a microkernel.

Multiprocessor Operating Systems

  • Mutual exclusion and synchronization:
    • Semaphores?
    • Test-n-set and Swap instructions?
    • Spin locks?
    • Monitors?
    • A combination thereof?
  • Implementation issues:
    • Shared memory?
    • Message passing?
    • A combination thereof?

Multicomputer Operating Systems ( 1 )

  • OS on each computer knows about the other computers
  • OS on each computer is the same
  • Services are generally (transparently) distributed across

computers

Multicomputer Operating Systems ( 2 )

  • No shared memory ¹ message passing
  • Typically no broadcasting, thus need software
  • Hard(er) to do synchronization
  • No centralized decision making
  • In practice, then, only very few truly distributed multicomputer

OSs exist (Amoeba? Authors? º )

Distributed Shared Memory Systems ( 2 )

False sharing of a page between two independent processes.

Network Operating System ( 1 )

  • Each computer has its own operating system with

networking facilities

  • Computers work independently (i.e., they may even have

different operating systems)

  • Services are tied to individual nodes (ftp, telnet, WWW)
  • Highly file oriented (basically, processors share only files)

Network Operating System ( 2 )

Two clients and a server in a network operating system.

Network Operating System ( 3 )

Different clients may mount the servers in different places.

Middleware Services

  • Communication Services: replace primitive sockets with
    • Remote Procedure Calls (or Remote Method Invocations)
    • Message passing
    • Communicating streams
  • Information Services: data management
    • Large-scale, system-wide naming
    • Advanced directory services
    • Location services
    • Persistent storage
    • Data caching and replication
  • Security Services: secure communication and processing
    • Authentication and authorization
    • Encryption

Middleware and Openness

In an open middleware-based distributed system, the protocols

used by each middleware layer should be the same, as well as

the interfaces they offer to applications.

Give applications control of when, where and how to access data

(e.g., code migration and distributed transaction processing)

Comparison between Systems

A comparison between multiprocessor operating systems, multicomputer operating systems, network operating systems, and middleware based distributed systems.

éêpëBìBìFëFð ð í+î ïpð ëFñ í+î ïBð ëFñ éêFëBì éêpëBì

ò ûpü óîóBý/õ îõøù úï ÷ ïpñBë ô3ó.ø ëBî ù öëFð +óBô9õ ëFð

þ ë ô ì þëôìpïpñBë Fïpñ/ë

ÿ-î ïýFó î ñõðø2ô2õ ý.ø ëFñ

ÿ-î ïýFó î üëBì ø2ô3ó î

ëFð ï/ô üë óìó ëjëBì ø

÷ ëFð ðó ë.ð .õ îëFð ÷ ïpñBëBîFðêFëFü õ9õ ü û óBô ëFñ  jëjï ôù

Bó ðõð ïô üï  ìõüó.ø2õ ï/ì

ú   ýëô ï üï/ê õëFð,ï é7û  ú ú ú

ú ï ú ï ö ë ûójëcé7ûhï/ì óîîBìFïpñ/ëFð öëFð Fð

ëô ëFëfï Tø2ô3ó ìFðê óBô ëBìFüù òëôù ¦õ  ¦õ  ï  ¦õ 

 #$ %&'"   ! "

 (( )+*-,.%&)./ 0 ,213)2(

8 9):;*-%=< 476

? 1 @%= 0 'A)2( B#=).

Clients and Servers

  • Servers typically manage shared resource, more intensive use
  • Clients are thinner, less resource intensive, provide interface,

manage smaller (digital?) components (e.g., barcode readers)

  • Clients and servers may be in different machines
  • Request/reply model (blocking or not?)

Alternative client-server organizations

Example Architecture

An example of a server acting as a client.

Modern Architectures

An example of horizontal distribution of a Web service.

Alternative C/S Architectures

  • Cooperating servers: Service is physically distributed

across a collection of servers. E.g.,

  • Replicated file systems
  • Network news systems
  • Naming systems (DNS, X.500, …)
  • Workflow systems
  • Cooperating clients: distributed application exists by

virtue of client collaboration:

  • Teleconferencing where each client owns a (multimedia)

workstation

  • Publish/subscribe (push/pull) architectures in which role of

client and server is blurred