Schedule
Week 1 Introduction
Monday – 14 January
lecture/discussion
- Intro to Course < 30 min.
- What is an operating system
- Getting started with Vagrant . (Vagrantfile)
- History of OSs and their future
- Booting a computer
Wednesday – 16 January
lecture/lab
Week 2 Processes
Monday -21 January
- Intro to Processes
- Lab 1 – bootloader
- due 30 January
Wednesday -23 January
- Lab 1 – bootloader
- due 30 January (demo in class)
- Process lab
Week 3 Processes / Scheduling
Monday – 28 January
- CPU Scheduling
Wednesday – 30 January
- Scheduling Worksheet
- bootloader demos
- process calisthenics (demo in class)
- Lab 2 – Fibonacci
- due 8 February (email submission)
Week 4 Threads
Monday – 4 February
- Quiz 1
- Intro to Threads
Wednesday – 6 February
- more on threading
- Lab 3 Simple Shell
- due 18 February
- lab time
Week 5 pThreads
Monday – 11 February
- Introduction to threads and semaphores
- Semaphore worksheet
- lab 3 Simple Shell
- due 1 March
Wednesday – 13 February
- locks
- monitors, shared memory, locks, and condition variablesPython Coke example pre-monitor
Python Coke with monitors
Python Reader Writer Start
Python Locker room challenge - pThreads
Week 6 Concurrency
Monday – 18 February
- The case against threads
- John Ousterhout. “Why threads are a bad idea (for most purposes).”
- Robert van Renesse “Goal-Oriented Programming or Composition using Events or Threads Considered Harmful“
- Deadlock and the Banker’s Algorithm (OSTEP ch 32)
- Deadlock worksheet.
Wednesday – 20 February
Week 7 Locking – Semaphores
Monday – 25 February
- Hadoop and Map Reduce
Wednesday – 27 February
- general lab and catch up day
- Lab 3 – Simple Shell due Friday
- Thread Calisthenics . up to 55xp
Week 8 Spring Break
Monday – 4 March
- SPRING BREAK
Wednesday – 6 March
Week 9 Memory
Monday – 11 March
- introduction to CPU scheduling (rough notes)
- worksheet: comparison of scheduling algorithms
- Lab 4: Pthreads
- due Friday 22 March
Wednesday – 14 March
- Quiz 2 . (Concurrency section of textbook)
- Redhat discussion
- Con discussion
Week 10 NVIDIA
Monday – 18 March
- NVIDIA conference – no class this week
Wednesday – 20 March
- no class
Week 11 Memory & Disks
Monday – 25 March
- Memory lecture
- Memory and disk
- Calisthenics. As a reminder, you are to work through these calisthenics and enter and run the programs. You then demo the calisthenic to me, which means that I will select a subset of the code and ask you to run and explain it to me. You need to understand the calisthenic. When demoing please give me a 3×5 with the name of the calisthenic, your name, your avatar name, and the date. You can only demo 3 calisthenics per week.
- How Large is the TLB? (35xp)
- My Malloc (25 xp)
- My malloc using mmap (25 xp)
- Malloc using the Magic (25xp)
- Test 1 Posted (due anytime before 25 April) 100-150xp possible
Wednesday – 27 March
Week 12 File System
Monday – 1 April
- File System Team Worksheet
- File Systems and Disk Drives (lecture notes)
- Calisthenics
- Secondary Storage (25 xp)
- File Operations (25 xp)
Wednesday – 3 April
- SSDs
Week 13 Virtualization
Monday – 8 April
- peer evaluations
- File Systems (lecture notes)
Wednesday – 10 April
Week 14 Distributed Systems
Monday – 15 April
- Quiz 3 (Scheduling ostep 7-10; persistence ostep 36-41 — details forthcoming)
- Hadoop Distributed File System
- Cloudera Quickstart VM Instructions team demo sales – 15xp
- US Zip Code Data = team demo population of cities 20xp
- individual demo largest city in each state . – 25xp
- Test 2 Posted – A programming challenge
Wednesday – 17 April
- no class
Week 15 – Con
Monday – 22 April
Wednesday – 24 April
- Con Demo