CS560:
Advanced Software Systems (Spring
2019)
|
|
[Administrivia]
[Description]
[Schedule]
[Prerequisites]
[Policies]
[Grading]
[Resources]
|
|
Course
Administrivia
Course:
CS560, Spring 2019
Instructor:
Qing Charles Cao (email: cao@utk.edu)
Teaching
assistant:
Haoran Niu
Homepage:
http://web.eecs.utk.edu/~qcao1/cs560
Paper
Summaries:
http://online.utk.edu
through the discussion board
Hours:
Tuesday, Thursday, 8:10am-09:25am MK405
(Lectures/Discussions/Presentations)
Tuesday, Thursday, 9:30am-11:00am, MK430 (Lecturer
Office
Hours)
Lab hours: 1:25pm-4:25pm MK418 Friday
TA Office Hours: Tuesday 3:30pm - 5:30pm MK205
Textbook:
Operating System Concepts, by Silberschatz, Galvin, and Gagne
(recommended only if you have not yet taken OS undergraduate
courses. If you have taken
such a course, your undergraduate textbook is also
sufficient.)
Schedule
(Tentative)
(Changes may be made without advance
notice. Slides will be posted before each class in the blackboard
system. This webpage will be primarily used for coordination purposes.
I will try to update
the slides before each class, but last minute changes are possible. )
|
Class |
Lectures |
Readings |
Presented
by |
Overview
of Topics and Knowledge Background |
1 |
Jan
10 |
Course Overview and Undergraduate OS Review
|
Cao
|
2 |
Jan
15 |
OS
Kernel:
Processes, Threads, and Their interactions
The Unix Time-sharing System
Textbook Chapter 3-6
|
Cao |
3 |
Jan 17
|
Memory Management (Textbook Chapter 8-9) |
Cao
|
4 |
Jan
22
|
Unix File System (Textbook Chapter 10-12)
(optional: A File is Not a File: Understanding the I/O Behavior
of Apple Desktop Applications)
|
Cao
|
System
Kernel, Concurrency, and Scheduling |
5
|
Jan 24
|
Microkernel:
The
Mach Operating System (Summary 1) |
Cao
|
6
|
Jan 29
|
Building
blocks:
Implementing
remote procedure calls
|
Cao
|
7
|
Jan 31
|
Building blocks: Socket Programming
Paper: A Protocol
for Packet Network Intercommunication
https://docs.oracle.com/javase/tutorial/networking/sockets/
Programming Assignment 1
|
Cao
|
8
|
Feb 5
|
Primer on
pThreads and its Programming (Chapter 1-6)
|
Clara and Rachel
|
9
|
Feb 7
|
The Linux Scheduler: a Decade of Wasted Cores
|
Cao
|
10
|
Feb 12
|
Real-time Systems:
Algorithms
for
Multiprogramming
in a Hard
Real-Time Environment (Summary 2)
|
Jacob and Jiangnan
|
Distributed
and Networked Systems |
11 |
Feb
14
|
Peer-to-Peer Networks:
Chord:
A Scalable Peer-to-peer Lookup
Service for Internet Applications
|
Dakota and Andrey |
12
|
Feb 19
|
Big-data Systems:
The
Google File System (Summary 3)
|
Chujie, Chengyong, and Yuandong
|
13
|
Feb
21
|
Distubted
Programming in Data Centers:
MapReduce:
Simplified Data Processing on
Large Clusters Programming Assignment 2
|
Brent and John
|
14
|
Feb
26
|
Programming Abstractions:
Resilient
Distributed Datasets: A Fault-Tolerant Abstraction for In-Memory
Cluster Computing (Summary 4)
|
Tyler and Zac
|
15
|
Feb 28
|
Programming Abstractions:
GraphX:
Graph
Processing in a Distributed
Dataflow Framework |
Cao
|
16
|
Mar 5
|
Software for AI
TensorFlow: A System for
Large-Scale Machine Learning (Summary 5)
|
Lu and Ziming
|
17
|
Mar 7
|
Software for AI
Ray: A
Distributed Framework
for Emerging AI Applications
|
Shan and Mike
|
File
System, Storage, and Data Analysis |
18
|
Mar 12
|
File
System:
A Fast File System
for UNIX
|
Alex and Eric
|
19
|
Mar 14
|
File System:
TAO:
Facebook's
Distributed Data Store for the Social Graph
(Summary 6)
|
Rushita and Anish
|
20
|
Mar
26
|
Distributed File
System:
Disconnected Operation in the
Coda File
System
|
Xiaoyang and Yicheng
|
21
|
Mar
28
|
Caching systems
An
Analysis of
Facebook Photo Caching
(Summary 7)
|
Cole and Jiajia
|
22
|
Apr 2
|
KLEE: Unassisted and Automatic Generation of
High-Coverage Tests for Complex Systems Programs
(Summary 8)
|
Jackson and Jamie
|
23
|
Apr 4
|
Measurements:
The Mystery Machine: End-to-end performance analysis
of large-scale Internet services
|
Cao
|
Reliability,
Mobility, and Energy Awareness |
24 |
Apr 9
|
Mobile
Operating Systems:
Tutorial on the Android Operating System
(online materials at https://developer.android.com/training/index.html)
|
Cao
|
25 |
Apr
11
|
Energy: Software
Defined Batteries (Summary 9)
|
Cao
|
26 |
Apr
16
|
Virtualization and Containers
Docker documentation (https://docs.docker.com/)
|
Cao
|
27 |
Apr
18
|
Mobile software:
Flywheel:
Google’s
Data Compression Proxy for the Mobile Web
(Summary 10)
|
Cao |
28 |
Apr
23
|
Bug detection:
Bugs
as Deviant
Behavior:
A General
Approach to Inferring Errors in
Systems Code
|
Cao
|
29 |
Apr
25 |
Class Review and Conclusions
|
Cao
|
Course
Description
The goals of this course are:
• To understand the state of the
art in
operating systems and distributed systems.
• To understand how to carry out
system-related
research.
• To practice extensively on programming
skills for
large-scale software projects through three course projects.
This
course assumes a basic familiarity with operating systems concepts. The
course will consist of a reading/lecture/discussion
component and a project component. Some of these papers will introduce
students to the basic principles on which modern operating systems and
distributed systems are based. Others will cover more recent work to
explore the state of the art and observe the evolution of these systems
over time. Students are expected to read papers before the class and
participate in the presentation and discussion during the class.
Prerequisites
Programming
language experiences, such as C. Basic knowledge in mathematics such as
probability theory.
Policies
Academic
Integrity: All computer programs and projects turned in for credit must
be each student's own work. Students must write their own programs and
problem solutions from scratch independently. No discussion is allowed
during quiz and exams. Any violations will result in a minimum penalty
of a zero on the given assignment, quiz or exam.
Paper
Reviews: You must write your own paper summary/review. No copying from
other sources are allowed. Writing reviews will greatly enhance your
understanding and learning of the papers. Only some papers require you
to submit summaries, and for these papers, you must address the
following questions:
• What problem does this paper
try to solve? Why
is such a problem important?
• What are assumptions made by
this paper? Are
they verifiable? Are there logical holes in such assumptions?
• What are the major solutions
of this paper?
• Do you think the solutions in
this paper will
work for the problem?
• Do you think the paper
evaluates the solutions
in a convincing manner?
• List two limitations of the
solutions proposed
in this paper, and outline your method to fix them.
The
paper reviews need to be submitted on the discussion boards in the
blackboard system. All reviews are visible to everyone. Late reviews
will have points taken off accordingly.
Disability
Statement: Any student who feels s/he may need an
accommodation
based on the impact of a disability should contact me privately to
discuss your specific needs. Please contact the Office of Disability
Services at 865-974-6087 in Hoskins Library to coordinate reasonable
accommodations for students with documented disabilities.
Grading
Project Policy:
• Project reports should be
turned in before the
specified project deadlines.
Exam Policy:
• No make-up exams will be
provided.
Late Assignment Policy:
• This policy applies to
projects and homework
assignments.
• Late assignment will be
accepted with penalty
based on the number of late hours.
Within 4 hour: 10% of actual points deducted
Within 8 hours: 25%
Within 12 hours: 50%
More than 12 hours: not accepted
Grading policy:
Programming projects
(30%) Exams (30%) Project (20%) Reading and
Presentation (10%)
Class attendance (10%)
Tentative grading scheme:
A
[90, 100] B+ [85, 90)
B [80, 85)
C+ [75, 80)
C [70, 75)
Resources
- Writing
Technical Articles on
Henning Schulzrinne's website
- Writing
Reviews for Systems Conferences
by Timothy Roscoe.
- ACM
Digital Library and IEEE
Xplore for papers.
- Google
scholar and Microsoft
Academic Search for searching
for papers.
- DBLP
for finding papers based on authors.
|