IPC Review Questions - angrave/SystemProgramming GitHub Wiki

Topics

  • Virtual Memory
  • Page Table
  • MMU/TLB
  • Address Translation
  • Page Faults
  • Frames/Pages
  • Single level vs multi level page table
  • Calculating offsets for multi-level page table
  • Pipes
  • Pipe read write ends
  • Writing to a zero reader pipe
  • Reading from a zero writer pipe
  • Named pipe and Unnamed Pipes
  • Buffer Size/Atomicity
  • Scheduling Algorithms
  • Measures of Efficiency

Questions

  • What is virtual memory?
  • What are the following and what is their purpose?
    • Translation Lookaside Buffer
    • Physical Address
    • Memory Management Unit. Multilevel page table. Frame number. Page number and page offset.
    • The dirty bit
    • The NX Bit
  • What is a page table? How about a physical frame? Does a page always need to point to a physical frame?
  • What is a page fault? What are the types? When does it result in a segfault?
  • What are the advantages to a single level page table? Disadvantages? How about a multi leveled table?
  • What does a multi leveled table look like in memory?
  • How do you determine how many bits are used in the page offset?
  • Given a 64 bit address space, 4kb pages and frames, and a 3 level page table, how many bits is the Virtual page number 1, VPN2, VPN3 and the offset?
  • What is a pipe? How do I create a pipe?
  • When is SIGPIPE delivered to a process?
  • Under what conditions will calling read() on a pipe block? Under what conditions will read() immediately return 0
  • What is the difference between a named pipe and an unnamed pipe?
  • Is a pipe thread safe?
  • Write a function that uses fseek and ftell to replace the middle character of a file with an 'X'
  • Write a function that create a pipe and uses write to send 5 bytes, "HELLO" to the pipe. Return the read file descriptor of the pipe.
  • What happens when you mmap a file?
  • Why is getting the file size with ftell not recommended? How should you do it instead?
  • What is scheduling?
  • What is turnaround time? Response Time? Wait time?
  • What is the convoy effect?
  • Which algorithms have the best turnaround/response/wait time on average