28 August – Tuesday
- Introduction to course and logistics
- What is an operating system
- The history of OSs and their future
30 August – Thursday
- Intro to C – pointers and memory allocation – (PDF of slides)
- OS Structure
4 September – Tuesday
- C – bitwise operators.
- Java 7 bug.
6 September – Thursday
- Introduction to processes and threads (chapter 3 of essentials book)
- Project 1 (C basics) due on Friday 7 Sept)
11 September – Tuesday
- what happens when you press the ‘on’ button
13 September – Thursday
- semaphores and synchronization
18 September – Tuesday
- Walkthrough of project 3 – pdf
- semaphore team worksheet
- CURRENT STATUS. I have been roughly following the schedule of the University of Texas operating systems course taught by professor Dahlin. You might find the following pdfs of his lecture notes helpful. They also contain references to where you can find the info in the textbook:
20 September – Thursday
- Semaphores cont’d
- dining philosophers problem from book
- Python challenge (there are solutions on the web — please don’t google)
- LockerRoom lockerRoom.py
- another semaphore worksheet
- monitors (section 6.7 of textbook)
- more on threading
25 September – Tuesday
- Study guide: 50 questions to guide study.
- Extra credit projects posted to projects page
- Synchronization wrap up
- Python Synchronization example – PythonMonitorExample.py
- Extra credit – to be done individually or with a single partner.
- Reader Writer problem – Modify the Locker Room problem to be a solution to the reader writer problem (multiple readers can be accessing the shared data; but a writer must have exclusive access). Your solution can use semaphores or monitors, but more credit is given to solutions using monitors.
- Retrievers, Adders, and Removers that access a shared linked list (we are not implementing a linked list). Retrievers merely examine the list so there can be multiple retrievers. Adders add new items to the end. Adders must be mutually exclusive meaning multiple adders cannot access the list concurrently. However, an add can proceed in parallel with any number of retrievers. Removers remove items anywhere in the list. At most one remover can access the list and removing an item is mutually exclusive with retrievals and additions. Solutions using monitors will be given more XP than solutions using semaphores.
- An example of creating and using monitors is the PythonMonitorExample.py above. Output is expected to match the Locker Room output: simply printing a list of what is currently accessing the shared data.
- Due 29 September. Submit to submit.o.bot mentioned in class.
27 September – Thursday
- Locker Room Solution using semaphores.
- Ways of earning extra XP: presentations.
- Fast Paced Intro to GDB
- Deadlock (pdf of slides)
- Deadlock algorithms
2 October – Tuesday
- RAT 1: processes and threads (a double length RAT)
4 October – Thursday
- CPU scheduling
5 October – Friday
- Project 3 parseUcontext due
9 October – Tuesday
- CPU Scheduling continued (pdf of slides)
- presentation: Goal Oriented Programming or Composition using Events – Osato Guobadia & Edward Martinez
- new presentation topics listed on the Extra XP page
- project 3 – ULT_Yield() due
11 October – Thursday
- No class. Please watch: Greg Kroah Hartman on the Linux Kernel
16 October – Tuesday
- Fall Break
18 October – Thursday
- presentation: Therac-25 NYTimes article – Emily Hoffman and Regan Royster
- memory and architecture
23 October – Tuesday
- presentation: Inside Windows 7 – User Mode Scheduler – Isaac Erickson & Bradley Ruggiero
- memory and the OS
25 October – Thursday
- presentation: Operating System Scheduler Design for Mulitcore Architectures – Michael Glitzos
- virtual memory – pdf of slides
30 October – Tuesday
- RAT: Scheduling
- Project 4 posted
1 November – Thursday
- RAT – rescheduled
- Virtual Memory
6 November – Tuesday
- Virtual Memory
8 November – Thursday
- Virtual Memory worksheet
13 November – Tuesday
- project 4 discussion: Fun with bootloaders
15 November – Thursday
- intro to file systems
20 November – Tuesday
- Video lecture on Transactions by Professor Dahlin.
- XP questions on video
- lab day
22 November – Thursday
- Thanksgiving break
27 November – Tuesday
- Lessons from Giant Scale Services – presentation by Ross and Dylan
- Presentation: Google File System – Michael Crawford and Erik Nosar
- Final Exam available.
29 November – Thursday
- System Calls in Linux – Stephen Schmith
- Journaled file systems
31 November – Saturday
last day to turn in programming projects
4 December – Tuesday
- Why Cryptosystems Fail – Bethany Akers & Rebecca Wright
- journaled file systems continued.
6 December – Thursday