Two threads inside the same process share
Astack and registers but not heap
Bthe program counter but not the heap
Ceverything, including stack and registers
Dheap, globals, open files; NOT stack or registers
Answer & Solution
Correct answer: D. heap, globals, open files; NOT stack or registers
Threads share the process-wide resources: heap, globals, open file table, code segment. Each thread has its OWN stack (so function calls don't collide) and its OWN registers (its current CPU state). The TCB stores the per-thread bits; the PCB stores the shared bits. Confusing this leads to subtle race conditions and stack corruption.
Related questions
On a MULTI-CORE system, a SPIN LOCK is generallyDisabling INTERRUPTS as a way to implement mutual exclusion on a single-CPU system isA LIVELOCK differs from a DEADLOCK in thatSuppose thread A acquires lock L1, then thread B acquires lock L2. Now A tries to acquire Without atomic hardware support, building a correct mutual-exclusion lock for $N \geq 2$ tA CRITICAL SECTION isLinux's `pthread_mutex_lock()` is typically implemented as a HYBRID:What is the PRIMARY problem with using a SPIN LOCK on a SINGLE-CPU uniprocessor system (wi