Course Schedule

September 2017
MondayTuesdayWednesdayThursdayFriday
28
29
30
31
1
4
5
6

Handout: consensus

Overview of run-time systems

Topic: Our understanding of run-time systems

7
8
11

Simple systems

Read Andrew Appel, A Run-Time System

Topic: The (old) run-time system for SML/NJ

12
13

Simple systems

Topic: Followup on Appel's run-time system

14
15
18

Simple garbage collectors

Topic: Appel's generational collector and its implementation of Appel's collector in the run-time system

System to be scouted is approved by the end of class today

19
20

Simple garbage collectors

Topic: Finishing up Appel's collector and the SML/NJ system

21
22
25

Calling conventions and stack walking

Read:

  • SYSV ABI for AMD64: Section 3.2 (calling sequence), skipping parameter-passing details; Section 3.7 (stack unwinding)

  • SYSV ABI for MIPS: pages 3-11 to 3-17 (calling sequence), pages 3-27 to 3-28 (stack backtracing), pages 3-30 to 3-35 (process stack), pages 3-46 to 3-48 (C stack)

Topic: Walking a call stack

26
27

Looking at the stack: exceptions

Read:

Topic: Two ways to implement exceptions

28

Scouting reports due at 11:59PM

29

October 2017
MondayTuesdayWednesdayThursdayFriday
2

Case study (preliminaries)

Topic: Choosing a system

3
4

Multiple stacks: threads

Read Gordon V. Cormack (1988), A Micro-Kernel for Concurrency in C

Topic: Synchronization and communication

5
6
9

No class: Indigenous Peoples' Day

10
11

Multiple stacks: threads

Read Frigo, Leiserson, and Randall, The Implementation of the Cilk-5 Multithreaded Language

Topic: Scheduling by work-stealing

12
13
16

Case study: Foreign and native calls in Lua

Read:

Topic: Lua's C API and how it differs from a traditional FFI

ECE ABET visit day. Class in Halligan 209

17
18

Case study: Foreign and native calls in Lua

Topic: Calls and call stacks in Lua

19
20
23

Garbage collection

Read Marlow, Harris, Peyton Jones: Block-Structured Generational Collector

Topic: Generational GC revisited: pages/arenas

24
25

Garbage collection

Topic: Putting the parallel in parallel GC (using handout from previous class)

OOPSLA (some students away)

26
27
30

Case study: Lua calls and FFI

Topic: Implementations of call and pcall

31
1

Case study: Coroutines in Lua

Read:

Topic: Coroutines: the programming model

2
3

November 2017
MondayTuesdayWednesdayThursdayFriday
30

Case study: Lua calls and FFI

Topic: Implementations of call and pcall

31
1

Case study: Coroutines in Lua

Read:

Topic: Coroutines: the programming model

2
3
6

Case study: Coroutines in Lua

Topic: Coroutines: the implementation

7

Last day to have let Norman know your plans for a final deliverable

8

Case study: Message passing in Erlang

Topic: Erlang's concurrency model

9
10
13

Case study: Message passing in Erlang

Topic: Design space of message-passing implementations

14

Good day to have sent Norman a first draft of your final deliverable

15

Case study: Message passing in Erlang

Topic: Analysis of BEAM's message passing

16
17
20

Case study: Thread scheduling in Erlang

Topic: Erlang's scheduler

21
22

No class: Thanksgiving

23
24
27

Foreign calls in Haskell

Read:

Topic: Foreign calls in Haskell with H/Direct (compare with Lua FFI)

28

Good day to get your final deliverable to a peer reviewer

29

Implementing coroutines—the model

Read Andrew Birrell (1989), An Introduction to Programming with Threads

Topic: Implementing Lua coroutines using Cormack threads

30
1

December 2017
MondayTuesdayWednesdayThursdayFriday
27

Foreign calls in Haskell

Read:

Topic: Foreign calls in Haskell with H/Direct (compare with Lua FFI)

28

Good day to get your final deliverable to a peer reviewer

29

Implementing coroutines—the model

Read Andrew Birrell (1989), An Introduction to Programming with Threads

Topic: Implementing Lua coroutines using Cormack threads

30
1
4

One-shot continuations

Topic: One-shot continuations in Chez Scheme (compare with Lua coroutines)

Last day to give Norman a draft in time to get feedback

5
6

Garbage collection

Read Blackburn and McKinley: Immix: A Mark Region Garbage Collector...

Topic: A hybrid collector

7
8
11

Retrospective

Topic: Retrospective: what have we learned?

12
13
14

Final deliverables due

15
18
19
20
21
22
25
26
27
28
29
1
2
3
4
5