Below is a tentative list of topics for this course. I will
suitably pace the course as the semester progresses:
- Week 1: Introduction
- Introduction to class room environment and policies.
- Basics of Operating Systems
- Introduction to Linux environment.
- Week 2: Programming under Linux
- Review of C/C++
- Programming and debugging under Linux
- Week 3: Processes
- Concurrency and processes
- Process life cycles and hierarchies
- Creating processes in Linux
- Week 4: Inter-Process Communication (IPC)
- Process execution
- Using pipes for IPC
- Week 5: IPC (Contd.) & Scheduling
- Using shared memory for IPC
- CPU Scheduling
- Week 6: Process Synchronization
- Synchronization issues
- Critical sections
- Semaphores
- Exam 1 (Thursday, September 25)
- Week 7: Deadlocks
- Deadlock Characterization
- Deadlock Prevention
- Deadlock avoidance
- Deadlock detection and recovery
- Week 8: Threads
- Multi-threading models and pthreads standard
- Mutexes
- Week 9: Threads (Contd.)
- Synchronizing concurrent threads
- Atomic operations
- Week 10: Threads (Contd.) and Memory Management
- Paging
- Segmentation
- Virtual memory
- Week 11: Memory Management (Contd.)
- Page Replacement
- Thrashing
- Week 12: File-System Interface
- File Concept
- File sharing and Protection
- Exam 2 (Thursday November 8)
- Week 13: Scripting
- Introduction to bash shell scripts
- Introduction to Windows batch scripts
- Week 14: Scripting (Contd.)
- Windows batch scripts (Contd.)
- No class on Thursday & Friday (Thanksgiving)
- Week 15: Distributed Systems
- Distributed System Structures
- Distributed File Systems
- Real-Time Systems
- Introduction to cluster computing
- Week 16: Security
- System and Network Threats
- Implementing Security Defenses
- Review