teaching
CMSC 328
Embedded Operating Systems
overview | logistics | schedule | assignments | resourcesTentative Schedule (changes frequently)
| week | date | topics | readings | presentation | work assigned |
| 1 | 9/02/2013 | course introduction | syllabus; "The Back of the Envelope" by Bentley; "The UNIX Time-Sharing System" by Ritchie and Thompson | ||
| 9/03/2013 | hardware & software | ch 1-2 | |||
| 9/05/2013 | error handling; c for java programmers | ch. 3 | |||
| 2 | 9/09/2013 | python/c on the pi | led | ||
| 9/10/2013 | pointers; memory protection | "An Experimental Time-Sharing System" by Corbato, Daggett and Daley; K&R | |||
| 9/12/2013 | structures and arrays; stack overflow | K&R; "Reflections on Trusting Trust" by Ken Thompson | Android (keith) | ||
| 3 | 9/16/2013 | memory allocation | ch. 7 & appendix B | bmalloc | |
| 9/17/2013 | protection; rings; system calls | ch. 3 | |||
| 9/19/2013 | the file | ch 4-5 | iOS (Mo) | ||
| 4 | 9/23/2013 | time | ch 10-12 | evaluating allocators | |
| 9/24/2013 | debugging & tracing | ch 6-9. appendix A | |||
| 9/26/2013 | processes | ch 20-21 & 23-25 | OSX (Katie) | ||
| 5 | 9/30/2013 | shells | ch. 26-28 | shell | |
| 10/01/2013 | threads | ch 29 | |||
| 10/03/2013 | 6 | 10/07/2013 | synchronization | ch. 30-31 | thread-safe ring buffers | 10/08/2013 | semaphores | "The Structure of "THE"-Multiprogramming System" by Dijkstra; ch. 32 | BSD (Eli) | 10/10/2013 | scheduling & deadlock | ch. 33-35 | Linux (Julia) |
| 7 | 10/14/2013 | Fall Break | |||
| 10/15/2013 | |||||
| 10/17/2013 | computer organization; libraries | ch. 41-42 | Plan 9 (Elliot) | ||
| 8 | 10/21/2013 | assembly | Introducing ARM assembly language & ARM assembler in Raspberry Pi – Chapter 1 | bbOS | |
| 10/22/2013 | device drivers; IO | ||||
| 10/24/2013 | interrupts | BCM2835 Chap. 7 & 13 | RISC OS (Oliver) | ||
| 9 | 10/28/2013 | serial | ch 62-63; Appendix D | serial | |
| 10/29/2013 | signals II | ch 22 | |||
| 10/31/2013 | IPC | ch. 43 | Windows (Manon) | ||
| 10 | 11/04/2013 | pipes/fifo | ch. 44 | UART continued | |
| 11/05/2013 | sockets | ch. 56 & 58 | |||
| 11/07/2013 | sockets | ch. 59-61 | VxWorks (Nurzat) | ||
| 11 | 11/11/2013 | sockets | client-server | ||
| 11/12/2013 | buffering | ch. 13 | |||
| 11/14/2013 | benchmarks | Mac OS (Yu) | |||
| 12 | 11/18/2013 | memory mapping | ch. 49 | mmap() | |
| 11/19/2013 | virtual memory & paging | ch. 50 | |||
| 11/21/2013 | MS-DOS (Yuexi) | ||||
| 13 | 11/25/2013 | file systems | ch. 14-16 | ||
| 11/26/2013 | ch. 17-18 | QNX (Neil) | |||
| 11/28/2013 | Thanksgiving | ||||
| 14 | 12/02/2013 | file systems | fuse | ||
| 12/03/2013 | security | ch. 8-9 | Solaris (Georgia) | ||
| 12/05/2013 | Project Presentations | ||||
| 15 | 12/09/2013 | ||||
| 12/10/2013 | capabilities | ch. 38-39 | Dartmouth TSS (Maya) | ||
| 12/12/2013 | real-time | ||||
| 16 | 12/16/2013 | ||||
| 12/17/2013 | Final Project Presentations | ||||
| 12/19/2013 | |||||