Multiprocessing and Exceptional Control Flow

Key Question

How can our program create and interact with other programs?

../_images/chrome-site-isolation.png
  • Introduction to multiprocessing, fork, waitpid, execvp, process ids, inter-process communication, context switches, user versus supervisor mode.

  • Protected address spaces, virtual memory, main memory as cache, virtual to physical address mapping.

  • Concurrency versus parallelism, multiple cores versus multiple processors, concurrency issues with multiprocessing.

  • Interrupts, faults, systems calls, signals, design and implementation of a simple shell.

  • Virtualization as a general systems principle, with a discussion of processes, RAID, load balancers, AFS servers and clients.

Lectures

  • Multiprocessing

    • Learning Goals:

      • Learn how to use the fork() function to create a new process

      • Understand how a process is cloned and run by the OS

      • Understand how to use waitpid() to coordinate between processes

      • Learn how execvp() lets us execute another program within a process

      • Goal: write our first implementation of a shell!

Labs

Assignments