DistOS 2015W Session 1: Difference between revisions
General clean-up (grammar, spelling, wiki-markup, etc) |
|||
(8 intermediate revisions by 2 users not shown) | |||
Line 50: | Line 50: | ||
* Fault tolerance | * Fault tolerance | ||
* Usually emphasize distributed agents to not work on certain schedule | * Usually emphasize distributed agents to not work on certain schedule | ||
* Examples: Map Reduce, cloud, cloud software (Google Drive) | |||
=== Group 3 === | === Group 3 === | ||
Line 57: | Line 58: | ||
* No controlled storage | * No controlled storage | ||
* Coordinated communication facilitating operation on coordinated task | * Coordinated communication facilitating operation on coordinated task | ||
* Leader/hierarchy for task delegation | * Leader/hierarchy for task delegation | ||
=== Group 4 === | === Group 4 === | ||
Line 83: | Line 83: | ||
'''What is a distributed system?''' | '''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 | * 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 | * 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 | * Resources can be divided as you want | ||
* Centralized control solves some issues, but has issues of its own | * 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 | * 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 | * 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, | * Interact it, process update, callback, | ||
* Gmail so responsible - it perfected , downloads in your browser | * Gmail so responsible - it perfected , downloads in your browser | ||
* Cache - they predict what the processor going to do | * Cache - they predict what the processor going to do | ||
[[File:Dos.png|frame|center|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 == | == Operating System Examples == | ||
Line 128: | Line 129: | ||
No, they are at best proto-OSs because the abstractions they provide are very leaky. They only provide limited APIs. | No, they are at best proto-OSs because the abstractions they provide are very leaky. They only provide limited APIs. | ||
[[File:C_ontology.png|thumb|center|400px|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 == | == Pick a system and show how it is and is not an OS == |
Latest revision as of 16:40, 27 January 2015
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
Project
- A literature review of distributing operations
- Research proposal on a problem related to distributed systems
Discussion
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
- 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
Operating System Examples
Mobile devices - Phones
- iOS
- Android
Embedded OS
- Linux
- QNX
- xBSD firewalls
Desktop
- Windows
- OSX
- Chrome OS
Server
- Windows
- Linux
- BSD
Main Frames
- OS/400
Is the cloud an OS? Important question.
Cloud
- 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.
--> 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 |
Scheduling | |
Networked | |
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
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 | |
Networked | |
Cross-platform (Desktop/Mobile) |