DistOS 2015W Session 1

From Soma-notes
Jump to navigation Jump to search

Notes for the first session that happened on Jan. 5th, 2015.

Course Outline

Undergrad Grading Scheme

  • 15% Class Participation
  • 15% Reading Responses
  • 10% lecture Notes/Wiki Contributions
  • 25% Midterm
  • 35% Final Exam

Grads Grading Scheme

  • 15% Class Participation
  • 15% Reading Responses
  • 10% Lectures Notes/Wiki contributions
  • 10% Project Proposal
  • 15% Project Presentation
  • 35% Final Project


  • A literature review of distributing operations
  • Research proposal on a problem related to distributed systems


Q: What do you think of when you hear 'Distributed System'?

Group 1

  • Sharing Resources
  • Spreading Work Loads
  • Scheduling
  • Process migration
  • Different nodes have different purpose
  • Google
  • Parallel running processes
  • Nodes
  • Resource Allocation across multiple nodes
  • Scheduling multiple nodes
  • Resources availability among nodes
  • Problem: across multiple machine

Group 2

  • Request comes from (usually) one computer and processing is usually handled by more than one computer
  • Tasks are divided into small parts which can be processed individually before coming back together
  • Usually deals with large scale data sets
  • Globalization
  • Fault tolerance
  • Usually emphasize distributed agents to not work on certain schedule
  • Examples: Map Reduce, cloud, cloud software (Google Drive)

Group 3

  • Separated, networked machines
  • Coordinated by similar or identical software
  • Error recovery/redundancy
  • No controlled storage
  • Coordinated communication facilitating operation on coordinated task
  • Leader/hierarchy for task delegation

Group 4

  • Distributed, multiple systems
  • OS: The root level system that operates a computer system
  • Dist. OS more complexity

Prof Discussion Notes

Key words: network, parallel, fault tolerant, redundancy, complexity

Distributed OS is kind of OS

But what is an OS in the first place?

  • Connection software and hardware
  • Resource allocation
  • Abstraction layers
  • Makes it easy to run higher level programs on different computers
  • Sharing: resources are split up and each process is isolated, this improves security and programming (no need to worry about sharing)
  • Virtual memory, process scheduling

What is a distributed system?

  • Focused on "network transparency", in order to provide to the user the sense that he/she interacts with a single machine as if all the resources were local.
  • Do the things users take for granted on regular computers
  • Does not scale relatively to the number of resources in the system (i.e.: 100 computers, does not equal a distributed system that is 100 times faster than a single computer)
  • In a way, opposite of an operating system: instead of splitting up a single computer into many, it takes many and tries to merge into one
  • Resources can be divided as you want
  • Centralized control solves some issues, but has issues of its own
  • Since it cannot truly act as a single computer, we fake it as much as possible - and it works in some scenarios
  • The more specialized the task, the better it will scale (i.e.: grid computing with very specific computations that are heavily parallel in nature)
  • Interact it, process update, callback,
  • Gmail so responsible - it perfected , downloads in your browser
  • Cache - they predict what the processor going to do
Distributed Operating System represented as a Venn diagram. OS denotes an operating system, and DS denotes a distributed system. The black center represents a distributed operating system; a system with properties of an operating system and a distributed system.

Operating System Examples

Mobile devices - Phones

  • iOS
  • Android

Embedded OS

  • Linux
  • QNX
  • xBSD firewalls


  • Windows
  • OSX
  • Chrome OS


  • Windows
  • Linux
  • BSD

Main Frames

  • OS/400

Is the cloud an OS? Important question.


  • MPI
  • AWS
  • Google App Engine

No, they are at best proto-OSs because the abstractions they provide are very leaky. They only provide limited APIs.

This showcases the possible services that clouds can provide, to an extent we can consider the whole as being an "OS".

--> I do not agree, it really depends on how expansive is your definition of cloud... (i.e.: IaaS provides the ability to the user to spin a full fledged OS on a VM (for which you have no explicit idea of the physical architecture, it could be part of a 96 SBC server-rack connected to dedicated HDD/SDD server-rack, etc.) ) Again this is semantics, but I feel we need to clarify the terminology.

Pick a system and show how it is and is not an OS

Group 1

Similarities to a traditional OS Differences from a traditional OS
Very parallel Can handle only very specific (trivially parallelizable) types of problems
Availability Abstraction layer is poor
Nodes may come and leave as they like (it is active when the computer is idle)
Same problem at the same time
Redundant/Fault tolerant
Allocation can be handle by system
Large problem managed by one system
Anyone can submit projects

Group 2

Similarities to a traditional OS Differences from a traditional OS
OK abstraction (for human communication/control) Doesn't really take a single resources and split it up into smaller ones
The programming API is stable The human API (user interface) is not stable
Able to separate resources such as wall posts, photos, etc Limited control

Group 3

Google Docs (Drive)
Similarities to a traditional OS Differences from a traditional OS
Has a file system Somehow still not a true OS
Provides hardware abstraction (users don't care how the requests are carried out)
Has an API

Group 4

Similarities to a traditional OS Differences from a traditional OS
Supports multiple location/users Specific functionality (not abstract)
Multiple servers around the world
Resource/Security management
Cross-platform (Desktop/Mobile)