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 |