When : Monday, Nov 18th,
Where: In class
Materials:
See schedule
Lectures: 8 - 15
Tags: mm3 - mm4, io1 - io3, st1 - st3
Closed book, no cheat sheet
Office hours: Please check Piazza.
The style of exam questions is similar to midterm.
Mandatory understandings:
TLB miss/hit, the "3-in-1" flow (TLB, paging, virtual memory combined).
Page eviction policies (clock, LRU2Q), pros and cons.
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.), pros and cons.
Journaling, write ordering, file system inconsistency.
RAID schemes, pros and cons.
VM system call and TLB miss flows.
(and general understandings of what we cover in class).
#-------------------------------------------
When : Monday, Oct 21st,
Time : in class
Where : in class
Materials:
See the schedule page
Lectures: 1 - 7 (lec8 not included)
Tags: 154-recap, pc1 - pc5, mm1 - mm2 (mm3 not included)
Closed book, no cheat sheet
Time conflict: If you cannot make it to the midterm (due to an emergency travel, etc.), please email me as soon as possible, not in last minute.
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 (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.)
The questions will revolve around things that we discussed in class (especially the "..." parts!). Bottom line, if you understand 100% *every* slide that I covered in the lectures, then you will do fine (hopefully). You can skip slides that I don't cover in the lectures.
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.
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).
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 remember how to chop the virtual address. To help you with addressing-related problems, I will provide a cheat sheet (partial information from mm9 slides).
Memory management maths: e.g., given the setup of the virtual address, what are the maximum sizes of pages/segments, how many segments/pages can be supported, etc.?
Memory sharing: concept 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?
(And of course other than these, you are expected to know the general understanding of what we covered in class).