Distributed Systems

Motivations:

Can be based on tightly coupled or loosely coupled system

Can be run by a network operating system (users know about the network) or by distributed operations system (users generally need no knowledge about network).

Network topologies

For OS, must solve several basic issues:

Naming

Example: on Internet, names are of form machine.dept.inst.domain.country

(In the US, we think there are no other countries, so the country, .US, is usually omitted. We do this to let all people in all foreign countries know that they are really second class computer users.)

Since people here use different machines, we usually omit the machine name.

Names are resolved by Domain Name Server, DNS, (Originally each machine had file giving "real" addresses, but impossible to keep all copies current). Each level has a Name Server, a process responsible for giving real address.

To resolve name "mach.cs.cmu.edu", (edu for educational institutions, org for organization, com for companies) OS kernel knows local of edu server and sends request to it to find location of cmu. Message then sent to server at cmu to ask about cs. And cs knows about mach. (An address of "from:" not really true, since servers often keep cache of recently requested addresses.)

At receive site, message must go to a particular process. Networking receive process often a unique port number, and message is delivered to that process.

Have similar set of related connection schemes:

But this omits routing problem: to get message from here to there, must find a particular route: here are some of the choices:

(if lots of hops between here and there, and loads on those hops change radically, virtual circuit does not respond to load changes. dynamic routing can)

Contention

Network must be shared:

OSI 7-Layer Model versus TCP/IP model versus Actual Model

Networks (particularly wide area) may lose message packets. We have both reliable and unreliable protocols since for some applications, slight losses don't matter (audio/video), but others do (files).

TCP/IP -- Commonly used reliable network protocol (Transmission Control Protocol/Internet Protocol). IP gets message parts from one place to other, TCP keeps copy of sent pieces in case parts are lost so they can be resent.

TCP

UDP/IP -- Commonly used unreliable protocol (User Data Protocol/Internet Protocol) If pieces are lost, who cares?

Sockets -- Common programming interface for communications.

(for more details, take CS 455)

Network Operating Systems

Typical services

Distributed Operating Systems

Have mechanisms for

3-Tier Systems

Cloud Computing

Remote Procedure Call

Remote calls more complex to deal with than local calls because of networks; requests can be lost (then must be resent) or received multiple times (sender may have assumed call was lost). So each call must be time stamped by sender, then received can check time and eliminate duplicates since it keeps history.

Difficult to distinguish between lost messages, failed sites and failed links.

Things often depend on timers of some type. Each site may send periodic message saying "I am up" Each site may send message "Are you up?" to another site and wait a specified amount of time. If it has alternate routes after receiving no reply, it might resend over the alternate route.


Index Previous Next

Copyright ©2014, G. Hill Price
Send comments to G. Hill Price