CS 332 s20 — Software Protection and Virtual Machines

Table of Contents

1 Video Lecture

Please watch the video lecture: It contains sections on

  1. Software Protection and Virtual Machines (0:01)
  2. Announcements (0:24)
  3. Why Handle Memory Protection in Software? (1:11)
  4. Software Protection via a Single-Language System (5:33)
  5. Most Systems Use Both Software and Hardware Protection (9:57)
  6. Language-Independent Software Fault Isolation (13:05)
  7. The Java Virtual Machine: Sandbox via Intermediate Code (16:34)
  8. Virtualize Everything: the Virtual Machine (19:43)
  9. Process VM vs System VM (21:52)
  10. System VM Types (24:19)
  11. Example Use Cases of Virtual Machines (25:46)
  12. Benefits of Virtual Machines (27:26)
  13. Making a Virtual CPU (VCPU): Trap-and-Emulate (31:04)
  14. Making a Virtual CPU: Binary Translation (33:34)
  15. Modern CPUs Provide Extensive VM Support (36:02)
  16. Paravirtualization: Guest and VMM Meet in the Middle (38:22)
  17. Virtual Machine Page Tables (41:57)
  18. Virtual Machine Page Tables (43:28)
  19. Reading: Xen and the art of virtualization (45:24)

The Panopto viewer has table of contents entries for each slide (https://carleton.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=0a564ad6-056b-4a84-9719-abcd0154914d). You can access the lecture slides here.

2 Reading: Xen and the Art of Virtualization

If you want to learn more about virtualization, read this foundational paper: Barham, Paul, et al. "Xen and the art of virtualization." ACM SIGOPS operating systems review 37.5 (2003): 164-177.

3 Homework

  1. Lab 4 peer review is due 9pm tonight, June 1.
  2. The week 8 quiz is due 9pm Wednesday, June 3.
  3. Make a lab 4 check-in forum post by 9pm Wednesday, June 3