Processes and Threads

47 flashcardsby —Griffith—
Study these flashcardsFree · spaced repetition · iPhone, Android, Mac & web

All cards

1
What is a process?
A program in execution, consisting of code, data, and resources
2
What are the key characteristics of a process?
Owns memory space, isolated from others, managed by OS
3
Which state means a process is being created?
New
4
Which state means a process is waiting for a processor?
Ready
5
Which state means process instructions are being executed?
Running
6
Which state means a process is waiting for an event?
Waiting
7
Which state means a process has finished execution?
Terminated
8
What is Inter-Process Communication (IPC)?
Mechanisms that allow processes to communicate and synchronize actions
9
Which IPC mechanism allows multiple processes to access the same memory space?
Shared Memory
10
Which IPC mechanism lets processes send and receive messages through a queue?
Message Queues
11
Which IPC mechanism passes data in a unidirectional flow between processes?
Pipes
12
Which IPC mechanism is used for process communication over a network?
Sockets
13
Which IPC mechanism sends simple notifications to processes?
Signals
14
What is a thread?
The smallest unit of execution within a process
15
What are thread characteristics?
Shares memory with other threads, has its own stack and registers, faster to create than processes
16
How is memory handled between processes and threads?
Processes have separate memory, threads share memory
17
How does creation speed differ between processes and threads?
Processes are slower to create, threads are faster
18
How do processes communicate compared to threads?
Processes use IPC, threads communicate via shared memory
19
Which has higher overhead, processes or threads?
Processes
20
What is multithreading?
The ability of a CPU/core to execute multiple threads concurrently
21
What are advantages of multithreading?
Improves performance, efficient CPU use, responsive applications
22
Give example applications of multithreading.
Web servers, modern operating systems
23
What is the purpose of synchronization?
To avoid race conditions and ensure data consistency
24
What analogy explains mutexes?
A restroom with a single key
25
What real application fits mutexes?
Preventing multiple threads from writing to a file simultaneously
26
What analogy explains semaphores?
A parking lot with limited spots
27
What real application fits semaphores?
Controlling access to limited database connections
28
What analogy explains monitors?
A secretary managing meeting room access
29
What real application fits monitors?
High-level synchronization abstraction with locks and condition variables
30
What analogy explains locks?
Locking your personal locker
31
What real application fits locks?
General mechanisms for mutual exclusion, like read/write locks
32
What are user threads?
Threads managed by a user-level thread library
33
Name examples of user thread libraries.
POSIX Pthreads, Windows threads, Java threads
34
What are kernel threads?
Threads supported by the operating system kernel
35
Name examples of systems supporting kernel threads.
Windows, Solaris, Linux, Tru64 UNIX, Mac OS X
36
What is the many-to-one threading model?
Many user-level threads map to one kernel thread
37
Give examples of many-to-one systems.
Solaris Green Threads, GNU Portable Threads
38
What is the one-to-one threading model?
Each user thread maps to a kernel thread
39
Give examples of one-to-one systems.
Windows, Linux, Solaris 9+
40
What is the many-to-many threading model?
Many user threads mapped to many kernel threads
41
Give examples of many-to-many systems.
Solaris pre-9, Windows with ThreadFiber
42
What is the two-level threading model?
Like many-to-many, with OS creating sufficient kernel threads
43
Give examples of two-level model systems.
Solaris pre-9, Windows with ThreadFiber
44
What do thread libraries provide?
APIs for creating and managing threads
45
What are ways thread libraries are implemented?
Entirely in user space, or as kernel-supported libraries
46
What are benefits of using threads?
Improved performance, efficient resources, simpler concurrent program structure
47
What are challenges of using threads?
Complex synchronization, avoiding deadlocks, harder debugging
Study all 47 cards for free