Co-authored-by: GitHub Copilot

“Whether you build cloud infrastructure, embedded systems, or AI platforms, understanding how programs actually run is foundational to every other OS topic we will cover.”

How does an operating system actually run an application program, and what abstractions does it provide to make that manageable, secure, and efficient?

You will answer this not by reading a single textbook chapter, but by exploring with generative AI and validating what you find through targeted web searches and critical reasoning. Generally, follow the steps below:

  1. Explore – Use a generative AI tool (ChatGPT, Copilot, Claude, etc.) to discover the different ways a computer can execute an application program. Do not ask for a list upfront. Instead, start with a broad question and then drill down.
  2. Compare – For at least three distinct execution models you discover, analyze their pros and cons.
  3. Extract Abstractions – Pick one model and identify the key OS abstraction(s) that make it work. Explain why that abstraction is essential.
  4. Validate – For every claim you take from AI, verify it with at least one external source (e.g., a reputable website, research paper, or OS textbook).
  5. Prepare for Demo – You will present your findings in class (not submit a written report). The focus is on your process, not just your final answers.

Part 1: Exploration – Your AI Conversation

Start a conversation with a generative AI. Here are some starter prompts you might use (modify as you like):

  • “What are the different ways an operating system can run a user program?”
  • “How does execution differ between a compiled C program, a Python script, and a Java program?”
  • “What happens when a program makes a system call?”
  • “What is the role of the CPU mode (user vs. kernel) during program execution?”

Do not stop at the first answer. Follow up:

  • “Are there other models I missed?”
  • “What are the performance trade-offs between these?”
  • “Which one gives the OS the most control? Which gives the least?”

Keep a log of your conversation. For each prompt, note:

  1. the exact prompt text,
  2. a 1–2 sentence summary of the AI’s response, and
  3. your immediate reaction or follow-up question.
    This log will be part of your in-class demo.

Part 2: Compare & Contrast (≥ 3 Models)

From your exploration, select at least three distinct execution models. For each model, give a concrete example (e.g., “Direct execution of a C binary on Linux,” “Python bytecode on CPython,” “Docker container,” etc.).

Then create a concise comparison using the dimensions below:

Dimension What to consider
Speed / Overhead How much extra work does the OS or runtime do?
Isolation / Security Can one program crash or spy on another?
Portability Can the same binary run on different hardware/OS?
Developer Experience Is it easy to write, debug, and deploy?
OS Control How much visibility and control does the OS have over the program’s resources?

Important: Do not just copy the AI’s table. Rewrite it in your own words and check each fact against a second source.

Part 3: The Abstractions That Matter

Pick one execution model from your list. Now answer:

  1. What OS abstraction(s) are absolutely critical for this model to work? (e.g., process, virtual memory, file descriptor, thread, pipe, etc.)
  2. What hardware complexity does this abstraction hide from the programmer?
  3. How does the OS use this abstraction to manage resources (CPU, memory, I/O, security)?
  4. What breaks if this abstraction is poorly designed or missing? Give a concrete scenario.

Bridge to the course: The abstraction you choose will likely connect directly to one of our major course themes, e.g., processes, memory management, virtualization, or concurrency. Use this as an early preview of what’s to come.

Part 4: Validation & Critical Reflection

For your demo, be prepared to discuss:

  • Which AI responses were correct? How did you verify them?
  • Did the AI contradict itself or give a misleading answer? Give an example and explain how you caught it.
  • What was the most surprising thing you learned?
  • What limitations did you find in the AI’s knowledge about operating systems?

In-Class Demo & Discussion (Submission)

Instead of a written report, you will sign up for a 5–7 minute in-class presentation where you:

  1. Show your AI conversation log (key prompts and responses).
  2. Present your comparison table (≥3 models) and explain your reasoning.
  3. Describe your chosen abstraction and why it matters.
  4. Share one validation story – a claim you verified (or debunked) with an external source.
  5. Answer questions from me and your peers.

Grading will focus on:

  • Depth of exploration (did you push the AI beyond surface-level answers?)
  • Critical thinking (did you challenge and verify the AI’s output?)
  • Clarity of explanation (can you teach this to others?)
  • Quality of validation (did you use credible sources?)
  • Intellectual maturity – Be ready to articulate what you know, what you don’t yet know, and what you want to learn. This is the first assignment—embrace uncertainty. Relate your findings (and gaps) to the course learning outcomes.

Resources (for Validation)

You are not required to read these cover-to-cover, but they are excellent for fact-checking:

  • Operating Systems: Three Easy Pieces (Remzi & Andrea) – free online
  • Modern Operating Systems (Tanenbaum)
  • Official documentation: Linux kernel docs, Microsoft Learn, Docker docs, JVM specification.
  • Reputable online encyclopedias: Wikipedia (check the references!), StackOverflow (with skepticism).

Quick validation trick: Use site-specific search (e.g., site:pages.cs.wisc.edu/~remzi/OSTEP/ "system call") to verify a claim in under 2 minutes.

Tips for Working with AI

  • Be specific. Vague prompts give vague answers.
  • Ask for sources. Some AI tools will cite them; if not, ask: “Where can I verify this?”
  • Play devil’s advocate. Ask: “Is that always true? Are there counterexamples?”
  • Compare multiple AI tools if you have access (e.g., ChatGPT vs. Claude) – they often give different perspectives.
  • Remember: You are the expert in the room. The AI is a junior research assistant—you must check its work.

This assignment is designed to set you up for success in the rest of the course. The skills you practice here, i.e., exploring with AI, validating sources, and explaining complex ideas clearly—are exactly what we will build on in every subsequent module.