# ======================================
Part 1: Wednesday, Dec 3, in class, 11:25am-12:25pm
Part 2: Friday, Dec 5, in class, 11:25am-12:25pm
Exam prep office hours: See the extra tab in the cs230 calendar spreadsheet file, titled "HG hours."
Materials:
See schedule
Lectures: L 8 - L 15
Tags: mm3 - mm4, io1 - io3, st1 - st3
Closed book, no cheat sheet
Part 1 of Final :
All T/F questions from L8-L15 (around 50% of them will show up in the midterm)
Fill-in-the-blank questions only for L8-9 (mm3 and mm4)
Part 2 of Final:
No more T/F questions. No need to study the T/F handouts, except the calculation related questions.
Fill-in-the-blank questions, full coverage L8-L15
Time conflict: If you cannot make it to the midterm (due to family/medical emergencies, etc.), please email me as soon as possible, not in the last minute. We don't give exceptions for last minute interview or conference travels (sorry).
Mandatory understandings:
TLB miss/hit, the "3-in-1" flow (TLB, paging, virtual memory combined).
Page eviction policies (perfect LRU, clock, clean/dirty, LRU2Q, etc.), pros and cons, their algorithms, page accesses, cache hits vs. misses.
Disk positioning, seek, rotation, etc.
IO scheduling policies (SSTF, SCAN, LOOK, C-LOOK, etc.), jumps, seek cost, pros and cons.
SSD garbage collection, write amplification, random vs. sequential writes.
FS data management (linked allocation, FAT table, multi-linked, etc.), how they work, and pros and cons.
Journaling, write ordering, file system data/metadata inconsistencies.
RAID schemes (RAID-0, 1, 4, 5, 10, 15, etc.), how to map each block to which disk, pros and cons, read/write performance, capacity, reliability tradeoffs.
VM system-call and TLB-miss control flows.
Must memorize power of 2, 2^1 to 2^10 ... 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, and K / M / G / T / P (2^10 to 2^50)
(and general understandings of what we covered in class, including all the trade-X-for-Y tradeoffs).
# ======================================
Part 1: Monday, Oct 27, in class, 11:25am-12:25am
Part 2: Wednesday, Oct 29, in class, 11:25am-12:25am
Exam prep office hours: See the extra tab in the cs230 calendar spreadsheet file, titled "HG hours."
Materials for Midterm:
See the schedule page
Lectures: L0 - L7
Tags: pc0 - pc5, mm1 - mm2
Closed book, no cheat sheet
Part 1 of Midterm :
All T/F questions from L0-L7 (around 50% of them will show up in the midterm)
Fill-in-the-blank questions only for L0-L3 (pc0 to pc3)
Part 2 of Midterm:
No more T/F questions. No need to study the T/F handouts, except the calculation related questions.
Fill-in-the-blank questions, full coverage L0-L7
Time conflict: If you cannot make it to the midterm (due to family/medical emergencies, etc.), please email me as soon as possible, not in the last minute. We don't give exceptions for last minute interview or conference travels (sorry).
Likely around 120 T/F question worth around 40 points. Think fast, e.g. not more than 15 seconds per question, so total 15 * 120 = 30 minutes. These are exactly the same T/F questions we did in class, with maybe 5-10 new T/F questions and some rare variations. Because there are no surprises for the T/F questions, there is a higher penalty for a wrong answer (-1 point for every wrong T/F answer, out of the total 100 point for the entire exam). So, make sure you really master all the T/F questions and answers.
Short essays and fill in the blank questions worth 60 points or more. The questions will revolve around things that we discussed in the lecture slides (especially the "..." parts!) and the calculation related T/F questions. Bottom line, if you understand 100% *every* slide that I covered and you know how to fill in the "..." parts, then you will do fine (hopefully). You can skip slides that I don't cover in the lecture videos.
I will not ask questions about definitions (e.g., what is a process? What is a heap? What is a virtual memory? What is a semaphore?). This type of questions will not appear.
Instead, I will ask about the general concepts (you must memorize how semaphore works, how page table works, pros/cons of an approach compared to other approaches). Bottom line you need to memorize how every mechanism, every policy, every algorithm works.
I will not ask you to write a lot of code (you have written a lot of code in your projects), therefore you don't have to memorize all the code in the lecture slides. But you do need to understand what the code is all about, what every line does. Thus, I will test your understanding of some code (e.g. what lock is missing? is deadlock possible? why? what's the lock performance? etc.)
Below are the mandatory materials that you need to understand:
Locks: the purpose of every line in the final implementation of lock()/unlock() routines.
Semaphores: the semaphore initial values and the purpose of every line in the final implementation of the NP-NB-NC solution.
Synchronization: In general, how code can lead to a deadlock or a race condition.
Readers/writers: the purpose of ever sema_down/sema_up in the final R/W solution (including how sema_down and sema_up works).
CPU scheduling: the advantages and disadvantages of every basic CPU scheduling policy (FIFO, SJF, STCF, RR). General pros/cons of MLFQ (but you don't need to memorize what every version of MLFQ is doing, you just need to understand the pros/cons of a certain policy). When all kinds of interrupts happen. Meanings of Ready/Blocked/Run states.
Memory management: the advantages and disadvantages of every memory management schemes (BB, Segmentation, Paging, Seg+Paging, 2-level Paging).
Addressing: translation from virtual to physical address in all management schemes (as well as the reverse concept -- the creation of pointer values). You must know how to chop the virtual address depending on the specification provided.
Memory management math: e.g., given the setup of the virtual address, what are the maximum sizes of pages/segments, how many segments/pages can be supported, how to translate virtual to physical addresses, etc.?
Memory sharing: between two processes, specifically lecture mm1, slide 53, fine-grained sharing -- given the figure, where a frame is being shared by two processes P1 (*p) and P2 (*q), how their page table entries are being setup?
Must memorize Hex to Bits conversation (from x0 to xF), e.g. x2 = 0010, xC = 1000, x5 = 0101
Did I just ask you to study everything basically? Well, it's for your own benefits.
# ======================================