Operating Systems
CS 301 - Fall 2018
Course Information
About This Course
This course provides a comprehensive introduction to operating systems, covering fundamental concepts such as process management, memory management, file systems, and concurrency. Students will gain hands-on experience with system programming and learn how modern operating systems manage computer resources efficiently.
Learning Objectives
By the end of this course, students will be able to:
- Understand the core principles of operating system design
- Implement process scheduling algorithms
- Analyze memory management techniques
- Design concurrent programs using threads and synchronization
- Understand file system organization and implementation
- Evaluate system performance and optimization strategies
Prerequisites
- Data Structures and Algorithms
- Computer Organization and Architecture
- Systems Programming in C
Staff
Instructor
Nipun Batra
Professor, Computer Science
Email: nipun.batra@iitgn.ac.in
Teaching Assistants
- Chanda
- Subisha
- Chamanvir
Schedule
Lectures:
Tuesday, Thursday, Friday
11:00 AM - 12:00 PM
Room AB7/102
Labs:
Monday
10:00 AM - 12:00 PM
Room AB7/109
Course Resources
Textbook
Operating Systems: Three Easy Pieces
by Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau
This free, comprehensive textbook covers all major operating system concepts with clear explanations and practical examples.
Development Environment
Pre-configured Ubuntu virtual machine with all necessary tools and libraries for course assignments.
Course Code
All code examples, demonstrations, and programming exercises used in lectures and labs: - Process API examples (fork, exec, wait) - CPU scheduling simulations
- Memory management programs - Threading and synchronization examples
Project Ideas
Collection of project ideas and proposals for the course project component.
Assessment & Grading
Component | Weight | Description |
---|---|---|
Quizzes (4) | 40% | 10% each, covering major topics |
End Semester Exam | 10% | Comprehensive final examination |
Programming Assignments (2) | 8% | Individual coding projects |
Lab Exams (2) | 20% | 10% each, hands-on practical exams |
Group Project | 20% | Team-based implementation project |
OS Zine | 2% | Creative technical communication |
Grading Policies
- Score Negotiation: Only for unchecked questions or totaling mistakes
- Late Submissions: 10% penalty per day
- Collaboration: Encouraged for learning, but submissions must be individual
- Academic Integrity: Strictly enforced according to institute policies
Important Notes
- All programming assignments must compile and run
- Regular attendance is expected for both lectures and labs
- Project groups will be formed in the first few weeks
- The OS Zine is inspired by Julia Evans’ zines
Quick Links
- Course Lectures - Watch videos and download slides
- Labs - Hands-on exercises and practical sessions
- Assignments - Programming assignments and homework
- Projects - Explore project ideas and requirements
- Schedule - Important dates and timeline
- Resources - Books, tools, and additional materials