CMSC 621: Advanced Operating Systems Advanced Operating Systems Nilanjan Banerjee University of Maryland Baltimore County nilanb@umbc.edu http://www.csee.umbc.edu/~nilanb/teaching/621/ Advanced Operating Systems
Advanced OS is another name for Distributed OS An operating system (OS) is: a software layer to abstract away and manage details of hardware resources a set of utilities to simplify application development Applications OS Hardware Think about an OS across multiple computers a software layer to abstract away and manage details of multiple hardware resources a set of utilities to simplify application development on multiple computers
Distributed OS is an OS that works across multiple independent computers A small sampling of headlines over the past year or so … 90M smart homes; market cap of $6 bn.
Home Automation System is a Distributed System Energy monitoring Alerts w/Photos Climate control Keyless entry Remote lock Tasks (software) Distributed OS Devices (hardware) Really, this project started by asking one question: It’s the future, where’s my smart-home? Multiple devices cooperate to cater to users’ wishes with little or no effort”. PCs, cameras, thermostats, locks, TVs and pretty much everything else. Think of logical tasks that span these devices to accomplish something useful, like climate control, an alert system or keyless entry. Devices are 50-100$ Slide credit: Ratul Mahajan, An Operating System for the Home
Body Sensor Networks for Healthcare is a Distributed System
Large-scale Computing/Networking Testbeds are Distributed Systems
Designing distributed operating system requires thorough understanding of basic operating systems Concurrent Programming Distributed Concurrent Programming MMU File Systems Scheduling Distributed Versions of these hardware Additional Requirements: Networking
Designing Distributed Systems is challenging! Concurrency Control Threads, Parallelism, Ordering, Race Condition Communication in Distributed Systems Clock Synchronization Transactions Fault Tolerance Distributed Storage Security
Is this course for me? Should be proficient in basic operating systems concepts Concurrent programming, file systems, memory management, we will test some of these concepts in the first few lectures, and the first project. Should be proficient in C++
How will I be graded? Homeworks (3 total) (15 points) Programming Projects (3-4 total) (30 points) Midterm (20 points) Finals (30 points) In Class Discussions and Participation (5 points)
Assignments Theoretical Questions on Distributed Systems With short programming questions Review of research papers Classic papers in Distributed systems/Operating systems
Projects Groups of 2 (max) Programming Assignment Both members have to state their contributions. 30 points for (3-4 project)
Midterm In-class midterm Design and coding problems Grading 20 points towards final grade
Finals In-class finals Design and coding problems (cumulative) Grading 30 points towards final grade
Resources you will need Linux machine or a virtual machine with linux installed Distributed Systems Tanenbaum and Steen 2nd Edition
Administrivia… Course webpage and reading list www.csee.umbc.edu/~nilanb/teaching/621/ My email id: nilanb@umbc.edu Grades will be on Blackboard Discussion Group Piazza (piazza.com/umbc/fall2015/cmsc621/home) Class hours: 4:00pm – 5:15 pm (Mon, Wed) Office hours: 3:00– 4:00 (Mon, Wed) or by appointment TA: Sandeep Narayanan Email: sand7@umbc.edu Office hours: TBD. Come and talk to me if you have any questions
Quiz based on a Basic OS course