Syllabus

Computer Systems discusses computers as an integrated whole, including: hardware resources} (e.g., CPU cores, CPU cache, memory management unit (MMU), RAM); the operating system; and systems languages (assembly language, C (the low-level high-level language), POSIX threads, the shell (the original UNIX scripting language), and Python (the de facto scripting language of today)). This course will review the topics above (but including only an abridged "reading knowledge" of assembly). It will then apply this background to a real-world case study of importance today: Docker-style containers, the Cloud, and orchestration frameworks for clusters of servers.

NOTE: The CCIS faculty has voted for a strict cheating policy. Please ask, if you're not sure what's allowed.


Reading list: This list will be updated as we progress in the semester. Please check back regularly for the assigned readings for the quiz.
Week Topics Chapter/Reading/Quiz
Jan. 11 C/pointers/system calls, and models of linking

HW0 due

01.11-01.txt, 01.11-02.pdf, 01.11-03.txt
class lecture, xv6:syscall.c, xv6:sysproc
The UNIX Time-Sharing System
Jan. 18 University holiday: Martin Luther King Jr.'s Birthday, no class.
Jan. 25 UNIX shell, process startup,
file descriptors, and environment vars., I/O re-direction
Ch. 4--6, Ch. 2 (code), Ch. 5 (code);
xv6: file.c, sysfile.c, pipe.c, proc.[ch]
Feb. 1 Virtual Memory, clock algo.; Cache/MMU/TLB
02.01-01.txt, 02.01-02.txt, 02.01-03.txt
class lecture; Ch. 13--15, Ch. 17--19,
xv6: memlayout.h, exec.c, kalloc.c, mmu.h, and vm.c
Required reading:
Virtual memory, processes, and sharing in multics
Optional suggested reading:
What Every Programmer Should Know About Memory
Feb. 11 POSIX Threads, Concurrency; a first look at Locks
02.11.txt 02.12.txt 02.15.txt
Ch. 28--31, xv6:spinlock.c
Required readings: Optional readings:
Feb. 15 University holiday -- Presidents' Day, no class.
Feb. 22 ELF dynamic libs: file/prog./sect. hdrs., GOT, PLT
static/dynamic linking
class lecture
Feb. 29 Midterm Exam
Intro. to threads
Ch. 26--27
Mar. 7 Spring break -- no class.
Mar. 14 Scheduling get/setcontext, and xv6:swtch.S xv6:fs.c
Ch. 7, Ch. 8, Ch. 10
Readings:
Mar. 21 Intro to Filesystem Ch. 37 - 43
Mar. 28 Filesystem contd.; Python: high-level scripting class lecture, xv6:fs.c,file.c,sysfile.c,exec.c
Apr. 4 Virtual Machines class lecture
Apr. 11 Linux Containers, Docker, Cloud, Orchestration
Cloud, orchestration (cont.);
class lecture
ostep.org: App B
Apr. 18 University holiday: Patriots' Day, no class.
Apr. 25 Final Projects Due Project Presentations