Bird
Raised Fist0
Operating Systemsknowledge~20 mins

Process vs thread in Operating Systems - Practice Questions

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Challenge - 5 Problems
🎖️
Process vs Thread Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
🧠 Conceptual
intermediate
2:00remaining
Difference in resource allocation between process and thread

Which of the following best describes how resources are allocated between a process and a thread?

AThreads have separate memory spaces, but processes share the same memory space.
BProcesses share memory space, but threads have their own separate memory spaces.
CEach process has its own memory space, while threads within the same process share the same memory space.
DBoth processes and threads share the same memory space and resources equally.
Attempts:
2 left
💡 Hint

Think about how multitasking works in your computer and how programs run independently.

📋 Factual
intermediate
2:00remaining
Execution context of process vs thread

What is the main difference in execution context between a process and a thread?

ABoth processes and threads have their own execution context including program counter and stack.
BThreads have their own execution context including program counter and stack, while processes do not.
CA process has its own execution context including program counter and stack, while threads share the same execution context.
DNeither processes nor threads have an execution context.
Attempts:
2 left
💡 Hint

Consider what allows a thread or process to run independently.

🔍 Analysis
advanced
2:00remaining
Impact of thread failure vs process failure

What typically happens when a thread fails compared to when a process fails?

AIf a thread fails, it crashes only that thread; if a process fails, it crashes only that process without affecting others.
BIf a thread fails, it usually crashes the entire process; if a process fails, it crashes only itself without affecting others.
CIf a thread fails, it crashes the entire system; if a process fails, it crashes only that thread.
DIf a thread fails, it crashes only that thread; if a process fails, it crashes the entire system.
Attempts:
2 left
💡 Hint

Think about isolation and how errors propagate in multitasking systems.

Comparison
advanced
2:00remaining
Overhead comparison between creating a process and a thread

Which statement correctly compares the overhead of creating a process versus creating a thread?

ACreating a thread and a process have the same overhead because both require separate memory allocation.
BCreating a process has less overhead than creating a thread because processes are lighter weight.
CCreating a process has no overhead, but creating a thread requires significant overhead.
DCreating a thread has less overhead than creating a process because threads share resources with their parent process.
Attempts:
2 left
💡 Hint

Consider what resources need to be allocated when starting a new process or thread.

Reasoning
expert
2:00remaining
Choosing between process and thread for a web server

A web server needs to handle many simultaneous client requests efficiently. Which approach is generally better and why?

AUsing a single process with no threads is better to avoid complexity and overhead.
BUsing multiple threads is better because threads share memory and can communicate faster, improving performance.
CUsing multiple processes is better because each process is isolated, preventing one request from affecting others.
DUsing a single thread per request is better because it avoids context switching.
Attempts:
2 left
💡 Hint

Think about performance and resource sharing in handling many tasks at once.

Practice

(1/5)
1. Which of the following best describes a process in an operating system?
easy
A. An independent program with its own memory space
B. A small part of a program that shares memory with others
C. A hardware component that executes instructions
D. A file stored on the hard drive

Solution

  1. Step 1: Understand what a process is

    A process is a running program that has its own separate memory and resources.
  2. Step 2: Compare options

    An independent program with its own memory space correctly states that a process is independent and has its own memory. Other options describe threads, hardware, or files, which are incorrect.
  3. Final Answer:

    An independent program with its own memory space -> Option A
  4. Quick Check:

    Process = independent program [OK]
Hint: Processes have separate memory; threads share memory [OK]
Common Mistakes:
  • Confusing processes with threads
  • Thinking processes share memory
  • Mixing hardware and software terms
2. Which syntax correctly describes a thread in a process?
easy
A. A thread is a file that stores program data
B. A thread runs independently with its own memory
C. A thread is a separate program loaded by the OS
D. A thread shares the process's memory and runs concurrently

Solution

  1. Step 1: Recall thread characteristics

    Threads are parts of a process that share the same memory and run at the same time.
  2. Step 2: Evaluate options

    A thread shares the process's memory and runs concurrently correctly states that threads share memory and run concurrently. Other options incorrectly describe threads as independent or files.
  3. Final Answer:

    A thread shares the process's memory and runs concurrently -> Option D
  4. Quick Check:

    Thread = shared memory + concurrency [OK]
Hint: Threads share memory inside a process [OK]
Common Mistakes:
  • Thinking threads have separate memory
  • Confusing threads with separate programs
  • Mixing threads with files
3. Consider a program that creates 2 threads inside a single process. What is true about their memory usage?
medium
A. Both threads share the same memory space of the process
B. Each thread has its own separate memory space
C. Threads cannot share memory and must communicate via files
D. Threads run in different processes to share memory

Solution

  1. Step 1: Understand thread memory sharing

    Threads within the same process share the process's memory space.
  2. Step 2: Analyze options

    Both threads share the same memory space of the process correctly states that threads share memory. Each thread has its own separate memory space is wrong because threads do not have separate memory. Options C and D are incorrect about communication and process separation.
  3. Final Answer:

    Both threads share the same memory space of the process -> Option A
  4. Quick Check:

    Threads share process memory [OK]
Hint: Threads share process memory, not separate spaces [OK]
Common Mistakes:
  • Assuming threads have isolated memory
  • Believing threads communicate only via files
  • Confusing threads with separate processes
4. A developer writes code to create a new thread but the program crashes immediately. Which is the most likely cause?
medium
A. The thread was created without sharing memory
B. The process does not have enough memory for threads
C. The thread function was not defined or called properly
D. Threads cannot run concurrently in a process

Solution

  1. Step 1: Identify common thread creation errors

    One common error is not defining or calling the thread's function correctly, causing crashes.
  2. Step 2: Evaluate options

    The thread function was not defined or called properly points to this cause. The thread was created without sharing memory is incorrect because threads share memory by design. The process does not have enough memory for threads is less common and Threads cannot run concurrently in a process is false as threads do run concurrently.
  3. Final Answer:

    The thread function was not defined or called properly -> Option C
  4. Quick Check:

    Thread crashes often due to bad function call [OK]
Hint: Check thread function definition first if crash occurs [OK]
Common Mistakes:
  • Blaming memory sharing for crashes
  • Ignoring thread function errors
  • Thinking threads can't run concurrently
5. A program needs to perform multiple tasks simultaneously and share data efficiently. Which approach is best and why?
hard
A. Use multiple processes because they share memory easily
B. Use multiple threads within one process to share memory and run concurrently
C. Use multiple processes because threads cannot run concurrently
D. Use a single thread to avoid memory sharing issues

Solution

  1. Step 1: Analyze task requirements

    The program needs concurrency and efficient data sharing.
  2. Step 2: Compare processes and threads

    Processes have separate memory, making sharing harder. Threads share memory and run concurrently, fitting the need.
  3. Step 3: Evaluate options

    Use multiple threads within one process to share memory and run concurrently correctly matches the requirement. Options A and C incorrectly describe memory sharing and concurrency. Use a single thread to avoid memory sharing issues limits concurrency.
  4. Final Answer:

    Use multiple threads within one process to share memory and run concurrently -> Option B
  5. Quick Check:

    Threads = concurrency + shared memory [OK]
Hint: Threads share memory and run tasks together efficiently [OK]
Common Mistakes:
  • Thinking processes share memory easily
  • Believing threads can't run at the same time
  • Choosing single thread for multitasking