DistOS 2015W Session 1
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.
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) |