DistOS 2015W Session 2

From Soma-notes
Jump to navigation Jump to search

Reading Response Discussion

  • In computing, time-sharing, is the sharing of a computing resource among many users by means of multiprogramming and multi-tasking.
    • In the old days, computers were expensive and physically large, so one computer was shared among many users using terminals.


Mother of All Demos:

Team: Jason, Kirill, Sravan, Agustin, Hassan Ambalica, Apoorv, Khaled

  • 1968, lead by Doug Inglebard
  • Initial public display of many modern technologies
  • One computer with multiple remote terminals
  • Video conferencing
  • Computer mouse (and coined the term)
  • Word processing, rudimentary copy and paste
  • Dynamic file linking (hypertext)
  • Revision control/version control/source control
  • Collaborative real-time editor
    • User privilege control in that user can provide read-only access, read-write privilege to file
  • Corded keyboard
    • Marco keyboard that allows messages quickly, while using mouse at same time
  • Not really a distributed operating system, but great start because multiple users at different terminals could share same resources

Early Internet

Alto

Team: Tory, Veena, Sameer, Mert, Deep, Nameet, Moe

  • Initially developed around 1973 by Xerox, upgraded over next few years
  • High speed network connectivity (3 Mbps @ 1km distance)
  • Connected up to 256 machines
  • Protocol similar to cross between UDP/TCP, before TCP invented
  • Allowed sharing of printers
  • Also allowed distribution of files across computers (redundancy/reliability)
  • Sort of early cloud
  • Allowed for remote debugging, store error logs
  • Allowed machines to use processing power of others
  • Much of the time it would be idling, which is amazing at a time when computers cost a fortune

Professor lead discussion 1

A true distributed operating system does not actually exist, its more of a dream.

You'll find in the history of trying to achieve this dream of a distributed operating system there has always been a road block as a result of a technical issue. People would come up with a solution to this technical issue but then they would find that some other technical issue would crop up. For example 'The Mother of All Demos' tried to build a distributed operating system but they had no networking. They had to point a television camera at the computer monitor to be able to demo their concept. The early internet came along and dealt with the issue of no networking. However the early internet itself had other technical issues.

A common buzz word during the early days of development was time sharing, which is an old term for multiple processes running simultaneously. However, at the time it referred to multiple users sharing the CPU cycles on a single computer. Today, a single user's many processes using a single CPU is much more common.

Discussion: Easy on one computer, hard on multiple computers

Instant Messaging
Why is it easy? Why is it hard?
Can't be out sync Synchronization issues
  • Server-client modal
    • If two or more servers they get requests same time, they have to figure out how to synchronize the data
  • Peer-to-Peer
    • Each peer has to figure out how to sync each message
Only one data store/source
Mortal Kombat/Twitch Gaming
Why is it easy?
  • Full control of all software
  • All possible users are physically co-located
  • Latency minimized
Why is it hard?
  • Games are fundamentally low-latency. Networking is fundamental high-latency.
  • Input prediction doesn't work well on twitchy games.
  • Have to handle lying or faulty clients.
  • Have to handle users finding each other.
Photo Album
Why is it easy? Why is it hard?

Commonalities

  • Synchronization
  • Bandwidth
  • Reliability/Fault Tolerance
  • Interoperability
  • Discovery
  • Routing
    • In modern system this issue has been mostly abstracted away
    • Classic example would be Wireless Ad-hoc networking

The above list is not hard on a single system because all the cores have equal access to all the resources. Also as a result of excellent engineering modern single systems can very effective deal with any errors that may result.