Topics • Paging • Virtual Memory • File Systems • I/O Devices Operating Systems • Project 3: Macro Shell Final Exam Review Fill in the Page Table Fill in the Page Table: Answer 0 0 1 Page 0 1 Page 0 2 2 3 Page 2 3 Page 2 Page 0 Page 0 0 0 1 Page 1 Page 1 4 4 Page 1 Page 1 1 1 4 5 5 Page 2 Page 2 2 2 3 6 6 Page 3 Page 3 3 3 7 Page 3 Page 3 7 7 Logical Page Table Logical Page Table Memory Memory Physical Physical Memory Memory Draw Arrows Draw Arrows: Answer Offset Offset 000 000 Page 0 000 Page 0 000 001 001 001 0 0 1 0 1 1 001 0 0 1 0 1 1 010 010 010 010 Page 1 Page 1 Page Frame Page Frame 011 011 011 011 00 01 00 01 100 100 Page 2 100 Page 2 100 01 11 01 11 101 101 101 101 10 00 10 00 110 110 Page 3 110 Page 3 110 11 10 11 10 111 111 111 111 Page Table Page Table Physical Physical Logical Logical Memory Memory Memory Memory 1
Virtual Memory Virtual Memory • Page faults • Thrashing – What is a page fault? – What is thrashing? – What happens during a page fault? – What is a working set? • Page replacement algorithms • Paging tradeoffs – What is Belady’s anomaly? – How does the page size affect performance? – How does the OPT algorithm work? – How does LRU work? – What are some LRU approximations? File Systems File Systems • Concepts • Storing files (aliases) – What is the file system abstraction (user view)? – What is a soft-link? A hard-link? Difference? • Implementation • Disk management – Files – How do you keep track of free blocks? + What is some of the info required to store a file? – What do you do with bad blocks? + What is an I-node? An linked-list w/index (FAT)? – What is a partition? – Directories + How are directories stored? + What information does a directory have? I/O Devices I/O Devices • Hardware • Disks – What is DMA? – What is the performance based on? – What are some IO device types? – What is the “Elevator” algorithm? • Software • Clocks – What is an interrupt handler? – How does a clock work? – How does it work? 2
Project 3: Macro Shell Project 3: Macro Shell • Server • Sockets – What does the socket code look like? – What is a socket? – What is a concurrent server? (Project 4) • Connection setup – What is a non-concurrent server? (Project 3) – How do you connect? – What possible errors might the server see? • Send and receive • Client – How do send and receive interact? – What does the socket code look like? – What possible errors might the client see? 3
Recommend
More recommend