Search This Blog

Friday, September 30, 2011



Schedule & Syllabus

Course Overview and Entrance Exam
In class written exam to ensure that all students embarking on this course have adequate knowledge of Operating Systems concepts at the undergraduate level. If you do not have adequate knowledge you will be advised to defer taking this class until after you have completed CS333.

Threads and Concurrency
Review of answers to the entrance exam. Review of the thread concept; concurrency and the need for synchronization; complexity of concurrent programming.

Useful Links:
  • An introduction to multi-threaded programming based on sequential consistency and data-race-free concepts, by Hans Boem of HP Labs.
  • A tutorial on Pthreads (POSIX Threads) programming from LLNL.
Event-Based Systems
Steps toward automatic detection of race conditions, the case against thread-based programming; the reactive programming model; event-based programming.

Duality of Threads and Events
The performance and load management implications of thread-based vs event-based programming; the duality of event-based systems and thread-based systems; the case against event-based programming.

Integrated Task and Stack Management
Relationship between task management and stack management; Managing state across blocking I/O calls; Cooperative task management with automatic stack management; Integration of legacy code that uses both manual stack management and automatic stack management;

Scheduler Activations and RPC
Kernel support for user-level cooperative threading on shared memory multiprocessors. Design and implementation issues for remote procedure calls (RPC).

RPC Implementation on Shared Memory Multiprocessors
Optimization of RCP for cross-address-space local communication. How to implement RPC efficiently on a shared memory multiprocessor among user-level threads in different address spaces.

System Structuring Using Layers
The advantages and disadvantages of layering as a kernel structuring approach.

Modular operating systems; implementing operating system server modules as user level processes that interact via IPC; micro-kernel based OS architectures and abstractions.

  • "The Mach System" appears in "Operating Systems Concepts, Sixth Edition" by Abraham Silberschatz, Peter Baer Galvin, and Greg Gagne, published by J Wiley, 2002.
    Presenter: Shweta Ojha
    Slides: [.pptx] [.pdf]
  • Discussion slides: [.ppt]
In Class Midterm Exam
Improving Micro-Kernel Performance
Strategies for improving IPC performance in micro-kernel operating systems that utilize hardware-based protection; analysis of potential performance improvements and their impact on higher level performance at the OS and application level.

Software-Based Protection for Improving Micro-Kernel Performance
Alternatives to hardware-based protection for structuring operating systems; implementing protection at the assembly language level; supporting operating system extensibility and safety using high-level language support. Virtual machines; supporting multiple operating systems simultaneously on a single hardware platform; running one operating system on top of another. Reducing the software engineering effort of developing operating systems for new hardware architectures. (select two of the following three papers)

Virtual machines; supporting multiple operating systems simultaneously on a single hardware platform; running one operating system on top of another. Reducing the software engineering effort of developing operating systems for new hardware architectures. True or pure virualization. Para virtualization; optimizing performance of virtualization system; hypervisor call interface.

Exo-kernel concept; minimal operating system functionality; separation of mechanism and policy; techniques for implementing application specific handlers; dynamic specialization of packet filters.

Synchronization and Scalability on Multiprocessors
A discussion of various forms of lock-based synchronization used in OS kernels. A case study of the locking primitives used in the Linux kernel. Implementation strategies for spin locks, with emphasis on contention issues and design strategies that improve performance and scalability.

Transactional Memory
A discussion of transactional memory and an attempt to use it in the Linux kernel.
Presenter: Jonathan Walpole
Slides: [.ppt] [.pdf]
Memory Consistency Models
Memory consistency models of modern CPUs, sequential consistency, weak consistency models, memory barriers, and implications for performance and scalability.
Presenter: Jim Larson
Slides: [.ppt] [.pdf]
Scalability Issues on Multiprocessors
Design of operating systems for high scalability on multiprocessor systems: locality issues, object distribution and replication, scalable locking and interaction with memory management. Multi-kernel design strategies.
Presenter: Priya Limaye
Slides: [.pptx] [.pdf]
Presenter: Joanna Solmon
Slides: [.ppt] [.pdf]

Submit position papers by email to before class.
Local Research on Scalable Concurrent Programming
Relativistic Programming.

·  Discussion slides: [.ppt]

No comments:

Post a Comment