PPTX

advertisement
Operating Systems
ECE344
Lecture 13: Final Review
Ding Yuan
Announcements
• Piazza bonus points
– Will keep “endorsing” students’ answers and
questions until Final exam
• Additional office hours
– Tuesdays 2-3PM
– You can also send me emails for appointments
• Please keep checking Piazza for important
announcements
Course Plugs
• If you like ECE 344 topics and you like programming,
you might find some other courses interesting next
year
• ECE454: Computer System Programming
• ECE419: Distributed Systems
• ECE552: Computer Architecture
Overview
• Final mechanics
• What we have learnt
–
–
–
–
–
–
–
Scheduling
Memory management
Paging
Page replacement
Disk I/O
File systems
Advanced topics (won’t appear in the final exam)
• The End
Final Exam
• April 24th, 9:30 AM
– NR-25
• Closed book
– Last year’s final exam is posted on the class
website
Final Mechanics
• Bulk of the final covers material after midterm
– Scheduling, memory management (paging and
replacement), file systems
• Some material on concurrency, synchronization
– Synch primitives, synch problems
• Based upon lecture material and project
• Again, please, do not cheat
Scheduling
• When does scheduling happen?
– Job changes state (e.g., waiting to running)
– Interrupt, exception
– Job creation, termination
Scheduling Goals
• Goals
–
–
–
–
–
Maximize CPU utilization
Maximize job throughput
Minimize turnaround time
Minimize waiting time
Minimize response time
• Different systems have different goals
• What is the goal of a batch system?
• What is the goal of an interactive system?
Starvation
• Starvation
– Indefinite denial of a resource (CPU, lock)
• Causes
– Side effect of scheduling
– Side effect of synchronization
• Operating systems try to prevent
starvation
Scheduling Algorithms
• What are the properties, advantages and disadvantages
of the following scheduling algorithms?
–
–
–
–
–
First Come First Serve (FCFS)/First In First Out (FIFO)
Shortest Job First (SJF)
Priority
Round Robin
Multilevel feedback queues
• What scheduling algorithm does Unix use? Why?
Memory Management
• Why is memory management useful?
– Why do we have virtual memory if it is so complex?
• What are the mechanisms for implementing MM?
– Physical and virtual addressing
– Partitioning, paging, and segmentation
– Page tables, TLB
• What are the policies related to MM?
– Page replacement
• What are the overheads related to providing
memory management?
Virtualizing Memory
• What is the difference between a physical and
virtual address?
• What is the difference between fixed and
variable partitioning?
– How do base and limit registers work?
• What is internal fragmentation?
• What is external fragmentation?
• What is a protection fault?
Paging
•
•
•
•
•
How is paging different from partitioning?
What are the advantages/disadvantages of paging?
What are page tables?
What are page table entries (PTE)?
Know these terms
– Virtual page number (VPN), page frame number (PFN),
offset
• Know how to break down virtual addresses into page
numbers, offset
• How have you implemented paging in OS161?
Page Table Entries
• What is a page table entry?
• What are all of the PTE bits used for?
– Modify
– Reference
– Valid
– Protection
Segmentation
• What is segmentation?
• How does it compare/contrast with paging?
• What are its advantages/disadvantages with
respect to partitioning, paging?
• What is a segment table?
• How can paging and segmentation be
combined?
Page Tables
• Page tables introduce overhead
– Space for storing them
– Time to use them for translation
• What techniques can be used to reduce their
overhead?
• How do two-level (multi-level) page tables
work?
TLBs
•
•
•
•
What problem does the TLB solve?
How do TLBs work?
Why are TLBs effective?
How are TLBs managed?
– What happens on a TLB miss fault?
• What is the difference between a hardware
and software managed TLB?
Page Faults
• What is a page fault?
• How is it used to implement demand
paged virtual memory?
• What is the complete sequence of steps,
from a TLB miss to paging in from disk, for
translating a virtual address to a physical
address?
Advanced Mem Management
• What is shared memory?
• What is copy on write?
• What are memory mapped files?
Page Replacement
• What is the purpose of the page replacement
algorithm?
• What application behavior does page
replacement try to exploit?
• When is the page replacement algorithm used?
• Understand
– Belady’s (optimal), FIFO, LRU, Approximate LRU, LRU
Clock, Working Set
• What is thrashing?
Disk
• Understand the memory hierarchy concept,
locality
• Physical disk structure
– Platters, surfaces, tracks, sectors, cylinders, arms,
heads
• Disk interface
– How does the OS make requests to the disk?
• Disk performance
– What steps determine disk request performance?
– What are seek, rotation, transfer?
File Systems
• Topics
–
–
–
–
–
–
Files
Directories
Sharing
Protection
Layouts
Buffer Cache
• What is a file system?
• Why are file systems useful (why do we have
them)?
Files and Directories
• What is a file?
– What operations are supported?
– What characteristics do they have?
– What are file access methods?
• What is a directory?
– What are they used for?
– How are the implemented?
– What is a directory entry?
• How are directories used to do path name
translation?
File System Layouts
• What are file system layouts used for?
• What are the general strategies?
– Contiguous, linked, indexed?
• What are the tradeoffs for those strategies?
• How do those strategies reflect file access
methods?
• What is an inode?
– How are inodes different from directories?
– How are inodes and directories used to do path
resolution, find files?
File Buffer Cache
• What is the file buffer cache, and why do
operating systems use one?
• What is the difference between caching reads
and caching writes?
• What are the tradeoffs of using memory for a
file buffer cache vs. VM?
Final words on the lab
• Likely the hardest lab you do in your undergraduate
years
– But if you survived it, your programming & hacking
capabilities have significant improvements
– OS: one of the hardest program to write & debug
– Debug concurrent programs, user- AND kernel space, lowlevel hardware, interrupts and exceptions, assembly, etc.
– Hack into a large, unfamiliar code base and implement
additional features
– Work as a team
– Using version control systems
– etc.
• I am very very proud of you!
Summary
• Now you understand how a computer
works internally
– More importantly, you had your hands dirty
and implemented one
– If you found such ‘hand-dirty’ experience
interesting:
• Take my ECE 454 course in Fall
• Consider doing a Master with me
• Any remaining questions?
The End
• Congratulations on surviving ECE 344!
– It’s a very challenging course, but I hope you
found it worthwhile
• Good luck, and thanks for a great class!
Download