Overview
Welcome to the I/O Communication Gauntlet! You'll experience three distinct forms of I/O communication by physically simulating the challenges that operating systems face when moving data between devices.
3 Device Types:
- Block Devices - Maximize throughput over a damaged transmission medium
- Character Devices - Maximize responsiveness with a handcrafted serial connection
- Network Devices - Maximize data integrity over an unreliable network
You'll feel the frustrations of damaged media, buffer management, packet loss, and the engineering trade-offs that make I/O so challenging!
Learning Objectives
By the end of this activity, you will be able to:
- Understand the fundamental differences between block, character, and network devices
- Experience the trade-offs between throughput, latency, and reliability
- Feel the impact of transmission errors, buffering, and packet reordering
- Connect physical intuition to software solutions like error correction, flow control, and reliable delivery
Materials Needed
Below are the materials needed for each activity, plus general supplies for running them all:
General Supplies:
- Timer (20 minutes per stage)
- Trash cans for failed attempts
- Scoreboard for tracking progress
- Bell for signaling stage transitions
Stage Overview
This activity has 3 stages (~20 minutes each). To accommodate larger classes, split into three groups and run stages concurrently, rotating between activities:
| Group | Stage 1 | Stage 2 | Stage 3 |
|---|
| Group 1 | Block Devices | Character Devices | Network Devices |
| Group 2 | Character Devices | Network Devices | Block Devices |
| Group 3 | Network Devices | Block Devices | Character Devices |
Set a timer for 20 minutes per stage. When the timer runs out, tally scores and rotate!
Be the first to set the record!
Complete this activity and add your class stats to the leaderboard.
Stage 1: "Hard Drive"
The Scenario
You're simulating block device communication over a damaged transmission medium—like reading/writing to a hard disk with bad sectors or a scratched optical disc.
Materials Needed
- RC vehicle(s)
- Origami instructions (your "data blocks")
- Paper
- Race track with obstacles
- Start and finish line markers
- Discard pile for damaged data
Setup
- Create a race track with clear start and finish lines
- Add obstacles to simulate "bad sectors" (books, cones, barriers)
- Set up a construction zone at the start line
- Place a collection area at the finish line
- Designate a discard pile for damaged/lost data
How It Works
Your team is a disk controller! The RC vehicle is your read/write head, and origami represents data blocks.
- Construct Data: Build origami figures at the start line (these are your "data blocks")
- Load Data: Place completed origami on the RC vehicle
- Transport: Drive the RC vehicle through the obstacle course to the finish line
- Verify: The proctor checks if data arrived intact
- Score: Intact data = points! Damaged/lost data = discard pile
Rules
You MUST:
- Construct origami yourself (no pre-made data!)
- Transport data via the RC vehicle only
- Navigate through/around all obstacles
- Accept the proctor's ruling on data integrity
You CANNOT:
- Carry data by hand across the track
- Remove or move obstacles
- Interfere with other teams' vehicles
You CAN:
- Have multiple people constructing data simultaneously
- Strategize about vehicle loading and navigation
- Restart a delivery attempt if data falls off before the finish
- Talk, coordinate, and have fun!
Tweaks & Variations
Instructors can modify difficulty:
- Multiple Vehicles: Add collision management (like multiple disk heads)
- Complex Data: Different origami designs = different block sizes
- Worse Conditions: More obstacles = more bad sectors
- Time Pressure: Shorter deadlines = faster seek requirements
Stage 2: Digi-Bridge
The Scenario
You're simulating character device communication—like a serial port or UART that transmits data as a continuous stream of bytes through a physical channel.
Materials Needed
- Tape (lots of it!)
- Paper and cardboard
- Balls of varying types (plastic ball-pit balls, golf balls, ping-pong balls)
- Collection bins (these are your "buffers")
- Materials for marking "No Man's Land" (tape, rope, cones)
Setup
- Mark a "No Man's Land" zone (6-10 feet wide)
- Set up the sending station on one side
- Place collection bins (buffers) on the receiving side
- Provide construction materials to the team
- Scatter different ball types at the sending station
How It Works
Your team is building a serial connection! Construct a structure that can transport a continuous stream of data across No Man's Land.
- Build: Use tape and paper to construct a channel across No Man's Land
- Stabilize: Your structure may have supports within the zone, but you CANNOT be inside during transmission
- Transmit: Roll balls through your structure from the sending side
- Buffer: Balls should land in collection bins on the receiving side
- Score: Count successfully buffered balls at the end!
Rules
You MUST:
- Build a self-supporting structure (no holding it during transmission!)
- Stay outside No Man's Land during data transfer
- Use only provided materials
- Direct balls into the buffer bins
You CANNOT:
- Enter No Man's Land while transmitting
- Use external supports (walls, furniture) outside your materials
- Catch balls by hand on the receiving end
- Throw balls—they must roll/slide through your channel
You CAN:
- Rebuild or modify your structure between transmission attempts
- Retrieve fallen balls for re-transmission after a transmission period ends
- Have designated "senders" and "receivers"
- Use different ball types strategically
- Talk, coordinate, and have fun!
Tweaks & Variations
Instructors can modify difficulty:
- Mixed Data Types: Different balls = different character types (some roll better!)
- More Materials: Cardboard, classroom furniture = more engineering options
- Buffer Limits: Smaller bins = buffer overflow risk
- Longer Distance: Wider No Man's Land = more signal degradation
Stage 3: Out of Order
The Scenario
You're simulating network device communication—like Ethernet or Wi-Fi where packets travel unreliably and may arrive out of order or not at all.
Materials Needed
- Small bags (these are your "packets")
- Puzzle pieces (your actual data)
- Cornhole boards and bags
- Assembly area for puzzle reconstruction
Setup
- Set up cornhole boards at opposite ends of the play area
- Establish a throw line for senders
- Prepare puzzle pieces and bags on the sending side
- Create an assembly area on the receiving side
- Have multiple puzzles available for bonus points
How It Works
Your team is implementing TCP/IP! Bags are packets, puzzle pieces are data, and cornhole represents the unreliable network.
- Packetize: Load puzzle pieces into bags (deciding how much data per packet)
- Transmit: Throw bags toward the cornhole board (this is your unreliable network!)
- Receive: Successfully landed bags go to the receiving team
- Reassemble: Receivers must reconstruct the puzzle from received packets
- Score: Points for puzzle completion percentage and/or completed puzzles!
Rules
You MUST:
- Throw from behind the designated line
- Accept packet loss (missed throws = lost packets)
- Reassemble puzzles only from successfully received packets
You CANNOT:
- Walk packets across (no out-of-band delivery!)
- Open bags before they land successfully
- Interfere with other teams' transmissions
You CAN:
- Retry failed throws with the same packet
- Decide your own packet sizes (more pieces per bag = riskier)
- Request "retransmission" of needed pieces (communication allowed!)
- Have designated throwers, receivers, and assemblers
- Talk, coordinate, and have fun!
Tweaks & Variations
Instructors can modify difficulty:
- Heavier Pieces: Wooden puzzle pieces = heavier packets = more drops
- Multiple Puzzles: Jumbled sets = need for packet identification
- Variable Distance: Longer throws = higher latency, more loss
- Smaller Bags: Less capacity = more packets needed = more overhead
Overall Rules
These rules apply across ALL stages:
Prohibited:
- Interfering with other groups' activities
- Using materials designated for other groups
- Contributing or soliciting advice across groups
- Damaging materials needed for activity integrity
Permitted:
- Asking instructors for clarification
- Self-organizing into roles or sub-teams
- Using technology for calculations or strategy
- Getting LOUD and having FUN!
Discussion Questions
After completing all stages, gather everyone for discussion. Connect your physical experiences to real I/O challenges!
Block Device Reflection
Character Device Reflection
Network Device Reflection
Cross-Cutting Questions
Final Thoughts
Key Takeaways
Block Devices (Hard Disks, SSDs, Optical Media):
- ✅ High throughput for large, sequential transfers
- ✅ Data persists after power loss
- ❌ Seek time is a major bottleneck
- ❌ Physical media can be damaged
- 🔧 OS Solution: Disk scheduling, bad block management, caching
Character Devices (Serial Ports, Keyboards, Sensors):
- ✅ Simple, continuous byte stream
- ✅ Low latency for small amounts of data
- ❌ No inherent structure—must parse manually
- ❌ Buffer overflow if receiver can't keep up
- 🔧 OS Solution: Buffering, flow control, line disciplines
Network Devices (Ethernet, Wi-Fi, Internet):
- ✅ Can communicate over any distance
- ✅ Supports many-to-many communication
- ❌ Unreliable—packets can be lost, duplicated, or reordered
- ❌ Requires complex protocols for reliability
- 🔧 OS Solution: Protocol stacks (TCP/IP), checksums, retransmission
The Universal Challenge:
All I/O involves balancing throughput, latency, and reliability. You can optimize for one or two, but rarely all three. The operating system's job is to hide this complexity and present simple abstractions to applications!
Grading
Completion-based - Engage with all three stages, participate in discussion, and reflect on the connections to OS concepts. Full participation = full points!
Alternate Assignment (For Absences)
Couldn't make it to class? Complete this alternate assignment for credit.
Watch These Videos
Watch these videos about I/O devices and their interfaces:
- How do Hard Drives Work? - Covers block device mechanics
- Serial Communication Explained - Covers character devices and UART
- How Does the Internet Work? - Covers network packet switching
Answer These Questions
Submit a PDF with your answers to Brightspace:
Submission: Upload your PDF to the relevant Brightspace assignment.