Labs

Hands-on exercises and practical sessions

Lab Schedule

Lab 1: Process Commands

Date: Aug 12
Topic: Process commands (top, ps, htop)

Learn to use Unix process management tools and understand process states.

Materials: Lab 1 PDF

Lab 2: Thread Introduction

Date: Sep 25
Topic: Thread Introduction + Chrome Process Model

Introduction to threading concepts and understanding Chrome’s multi-process architecture.

Materials: Lab 2 Instructions

Lab 3: Thread API + Locks

Date: Oct 16
Topic: Thread API and Basic Locks

Practice with pthread API and implement basic locking mechanisms.

Materials: Lab 3 Instructions

Lab 4: Advanced Locks

Date: Oct 22
Topic: Locks Implementation

Implement and test different types of locks and synchronization primitives.

Materials: Lab 4 Instructions

Lab 5: Concurrent Data Structures

Date: Oct 30
Topic: Concurrent Data Structures

Design and implement thread-safe data structures.

Materials: Lab 5 Instructions

Lab 6: Memory Management

Date: Nov 7
Topic: Memory allocation and management

Implement memory allocators and understand virtual memory concepts.

Materials: Lab 6 Instructions

Lab 7: File Systems

Date: Nov 14
Topic: File system implementation

Explore file system internals and implement basic file operations.

Materials: Lab 7 Instructions

Lab 8: System Performance

Date: Dec 12
Topic: System performance analysis

Use profiling tools to analyze and optimize system performance.

Materials: Lab 8 Instructions

Lab Guidelines

Preparation

  • Read the lab instructions before attending
  • Set up your development environment
  • Review related lecture materials
  • Come with specific questions

During Lab

  • Work collaboratively but submit individual reports
  • Ask TAs for help when needed
  • Document your findings and observations
  • Test your solutions thoroughly

Lab Reports

  • Submit a brief report (1-2 pages) after each lab
  • Include screenshots, code snippets, and analysis
  • Answer all questions posed in the lab instructions
  • Submit within one week of the lab session

Lab Exams

Mid-term Lab Exam

Date: Oct 25
Coverage: Labs 1-4 (Processes, Threads, Locks)

Final Lab Exam

Date: Nov 25
Coverage: Labs 5-8 (Concurrency, Memory, File Systems, Performance)

Exam Format

  • Hands-on programming and debugging tasks
  • Open book and open notes
  • Duration: 2 hours
  • Individual work only
Lab Environment

All labs are conducted in AB7/109 using the provided Ubuntu VMs. Make sure to save your work frequently and backup important files.