CSCE 613 -- Operating Systems (Spring 2013)

CSCE 613 -- Operating Systems (Spring 2013)


Section: 600

Time:
TR 9:30am - 10:50pm
Location:
113 HRBB


Instructor: Teaching Assistant:

Riccardo Bettati
509C Harvey R. Bright Bldg
845-5469
Office hours:
W: 2pm-3pm
F: 11am-12pm
(and by appointment)
e-mail:
bettati cs

Harsha Chenji
324 Harvey R. Bright Bldg
Office hours:
T: 4pm-5pm
W: 10am-11am
e-mail:
cjh cs


Slides | Tests | Schedule | Reading | Projects

Course Goals

The objectives of this course is to expose you to recent and current important topics in Operating System research and development. You will leverage your knowledge acquired in your Undergraduate Operating System course to investigate and understand modern developments in memory management, multicore, distributed storage, virtualization, cluster operating systems, energy aware operation, and other areas. The course will consist of a combination of (a) reading of classical papers in operating sytems in order to develop a "culture" about the field and to put modern developments into context, (b) reading of recent papers in order to develop a perspective of where the field is headed, and (c) hands-on work to gain an appreciation of some of the difficulties in the development of OS-level software.

Prerequisites

The official prerequisites are CPSC-410, CPSC-611, or an equivalent undergraduate Operating Systems course. These prerequisites are there for a reason! It makes absolutely no sense to take this course without a good understanding of basic Operating Systems, such as memory management, synchronization, file systems, etc. This course is quite dense, and you will not have the time to make up for missing preparation. In addition, the machine problems are slightly sophisticated. In the past, students without at least some background in programming have not done well in this class.


Lectures

Class time will be partitioned into lectures proper and project sessions. During lectures we will be discussing selected papers from the reading list. I expect that students will be familiar with the paper discussed in class, and that we can focus on interesting aspects thereof rather than on getting introduced to the material. (How we will achieve this with the given number of students is still open.) During the project sessions we will be discussing machine problem assignments and the infrastructure needed for the machine problems.


Reading Assignments

This course will not rely on a textbook. Rather, we will be discussing a good selection of papers across a number of interesting areas of interest in Operating Systems. This course will not introduce the papers to you in class. Instead, you will be expected to come to class prepared. This means that you will have a basic understanding of the paper(s) that will be discussed during the class period. You will also be writing weekly critical analyses of the papers discussed during the week.

  • Structure and Abstraction
    History: Multics, THE, Unix, Disco
    Scheduler Activations
    Exokernels
  • Memory Management
    History: Working Sets, Clock, Clock-pro
    Fun with pages: VM primitives for user level
    Superpages
    Virtal memory and Flash
  • Threading Models (*)
    Threads as a Library?
    Cooperative Task Management
    Race Detection?
  • Disk Scheduling (*)
    Anticipatory Scheduling
    Translucent Scheduling with Mimic
  • Local File Systems
    Fast FS, LFS, ZFS
    Rethinking the Sync?
  • Distributed Storage (*)
    AFS, CODA, Bajou
    Low-Bandwidth FS
    History: Cache Consistency with Leases
    Fun with Distributed Storage
  • Multi-Core OSs
    Deja Vu?
    Scalability of existing OSs (e.g. Linux)
    Novel OS architectures for Multicore
  • Cluster OS
    Google File System
    BigTable
    MapReduce
  • Virtualization
    History
    Memory Management in VM
    Native Client
    others ... :
  • Energy and Power
    Power Provisioning
    Hibernator
    FAWN
    Cutting the Electric bill for Large Scale ...

A detailed reading schedule will be posted soon.


Projects

In this course we will not only talk about operating systems; we will actually build one (at least portions of it.) You will get into writing some rather sophisticated code. While doing this, you will realize that writing OS code is to programming your typical application like NASCAR racing is to driving your mom-in-law to Sunday brunch. If you need somebody to hold you by the hand (like, memory protection) you will be in really bad shape. You will either have to learn to live without, or you will write your own. But the fun part is that you will learn how to nurture a CPU (or multiple CPUs) from the moment it wakes up until it has access to sufficient support infrastructure to run user programs on its own.

This set of machine problems is similar to the one that some of you may have encountered in 410 or 611. No worries; you will not have to repeat these machine problems. For you we will have special arrangements: Either using the infrastructure that you are familiar with from 410/611 or using a new infrastructure based on the L4 microkernel on an ARM. We will discuss this further in class.


Examinations

There will be one midterm (scheduled for Thursday, March 7, 2013, during class time) and one final examination (scheduled for Friday, May 3, 12:30pm - 2:30pm).

The tests will be open-book, open-notes. No other aids will be allowed, except for writing utensils.


Assessment Method

This course will have two tests (counting for 40%,) a series of machine problems (counting for 30%,) and reading reports (counting for 20%,) and another 10% for class participation.

Tests will be used for summative evaluation, while machine problems and reading reports will be used for formative evaluation. In English, this means that test will be graded harshly. On the other hand, machine problems will be evaluated more leniently, with indication of effort being an important aspect.

Ideally, grades will be assigned along the following lines:


Late-Submission Policy

Machine problems are to be handed in on eLearning. Make sure that you have access to eLearning.

Reading Reports are to be handed in on elearning.

Note: The machine problems are somewhat demanding, and they will require dedication and time. Start early!!

All the submission deadlines have included extra time for the consideration of accidental events such as (not limited to) unavailable resource (machines are down,) sickness of students, stock market collapse, distress due to the Aggies loosing a game, etc. This means that additional extensions are generally not granted. The rule of the game: START EARLY!

Lateness is penalized with 1/5 of the earned points of the item per calendar day. After the due date (plus 5 days) no more submissions will be accepted. Also, no make-up work submissions will be accepted.


Communication Policy

Both the instructor and the teaching assistant for this course will do their best to communicate relevant administrative information (deadlines, information about posted material, details about projects, locations of tutorials, and so on) in an effective and timely manner. We will be using anouncements in class, e-mails to students, postings on Piazza, material on eLearning.

Having said that, keep in mind that this is not a distance education course! You are expected to be current with the material covered in class and with any announcements made in class. In fact, announcements in class will override whatever information has been made available through the other channels. The instructor and TA cannot be held responsible for not conveying important information to students who did not attend class.

Note on e-mail etiquette: E-mail is a very convenient and potentially effective way to communicate with instructor and TA, but only if used in a professional manner. Keep in mind that -- in particular when a deadline is looming -- we are receiving many e-mails, and all senders expect immediate turn-arounds. Therefore, keep your e-mail short and to the point; indicate that you have done some thinking *before* typing the e-mail; provide necessary support documentation (e.g. code sections) when needed (don't attach huge amounts of code!); follow standard basic rules for courteous and professional communication; proofread your e-mail before sending it out. We will not answer e-mail that does not follow these rules. Repeated offenders will be added to the spam filter.

Note on e-mail accounts: Over the years we have been having problems with off-site e-mail accounts used by students. We will therefore be sending CS-613 related e-mail to the accounts listed on Howdy only. (These are typically of the form xxxx@tamu.edu.) Make sure that you have access to these mails, and forward them appropriately if needed.


Academic Dishonesty

It goes without saying that the highest level of academic integrity is expected for students in this class. While discussions among students on the analysis of problems and on the development of general solution approaches is welcome (encouraged, in fact,) the realization has to be of the individual student. Spelled out, this means:

Whoever violates these rules can expect to fail this course. For information about the TAMU Honor Council Rules and Procedures check out the Aggie Honor System Office.

Disabilities Policy Statement

The Americans with Disabilities Act (ADA) is a federal antidiscrimination statute that provides comprehensive civil rights protection for persons with disabilities. Among other things, this legislation requires that all students with disabilities be guaranteed a learning environment that provides for reasonable accommodation of their disabilities. If you believe you have a disability requiring an accommodation, please contact the Department of Student Life, Services for Students with Disabilities in Cain Hall, Rm. B118, or call 845-1637.


These pages are prone to change without notice! Consult them regularly to avoid surprises.


Last modified: Jan 2013