# Processes and Threads

## Processes

### What is a Process?

- **Definition and Explanation:**
  - [Wikipedia: Process (computing)](https://en.wikipedia.org/wiki/Process_(computing))
  - [GeeksforGeeks: Process in Operating System](https://www.geeksforgeeks.org/process-in-operating-system/)

- **Process vs. Program:**
  - [What is the difference between a process and a program?](https://stackoverflow.com/questions/2002717/what-is-the-difference-between-a-process-and-a-program) (Stack Overflow) 

### Process Management

- **Process Lifecycle and States:**
    - [Wikipedia: Process state](https://en.wikipedia.org/wiki/Process_state)
    - [GeeksforGeeks: Process States in Operating System](https://www.geeksforgeeks.org/process-states-in-operating-system/) 
- **Process Control Block (PCB):**
    - [Wikipedia: Process control block](https://en.wikipedia.org/wiki/Process_control_block)
    - [Tutorialspoint: Process Control Block](https://www.tutorialspoint.com/operating-system/os_process_control_block.htm)
- **Process Scheduling:**
    - [Tutorialspoint: CPU Scheduling](https://www.tutorialspoint.com/operating-system/os_process_scheduling.htm)
    - [GeeksforGeeks: CPU Scheduling Algorithms](https://www.geeksforgeeks.org/cpu-scheduling-algorithms/)
- **Inter-process Communication (IPC):**
    - [Wikipedia: Inter-process communication](https://en.wikipedia.org/wiki/Inter-process_communication)
    - [Tutorialspoint: Inter Process Communication](https://www.tutorialspoint.com/inter_process_communication/index.htm)


## Threads

### What is a Thread?

- **Definition and Explanation:**
   - [Wikipedia: Thread (computing)](https://en.wikipedia.org/wiki/Thread_(computing))
   - [GeeksforGeeks: Threads in Operating System](https://www.geeksforgeeks.org/threads-processes-in-operating-system/) 
- **Threads vs. Processes:**
   - [Programiz: Difference Between Process and Thread](https://www.programiz.com/operating-system/process-vs-thread)
   - [Stack Overflow: What is the difference between a thread and a process?](https://stackoverflow.com/questions/2002717/what-is-the-difference-between-a-process-and-a-program)


### Thread Management 

- **Thread Creation and Management:**
    - [Java Threads - Tutorialspoint](https://www.tutorialspoint.com/java/java_multithreading.htm) (Example for Java)
    - [POSIX Threads - Tutorialspoint](https://www.tutorialspoint.com/operating_system/os_multi_threading.htm) (Example for C/C++)
- **Thread Synchronization:**
    - [Wikipedia: Thread synchronization](https://en.wikipedia.org/wiki/Thread_synchronization)
    - [Tutorialspoint: Thread Synchronization](https://www.tutorialspoint.com/operating-system/os_thread_synchronization.htm)
- **Types of Threads (Kernel-level, User-level):**
    - [GeeksforGeeks: Types of Threads](https://www.geeksforgeeks.org/types-of-threads/)
- **Thread Pools:**
    - [Oracle Java Documentation: Thread Pools](https://docs.oracle.com/javase/tutorial/essential/concurrency/pools.html)


## Concurrency and Parallelism

- **Concurrency (computer science):**
   - [Wikipedia: Concurrency (computer science)](https://en.wikipedia.org/wiki/Concurrency_(computer_science)) 
- **Parallel Computing:** 
   - [Wikipedia: Parallel computing](https://en.wikipedia.org/wiki/Parallel_computing)

## Books

- **Operating System Concepts by Silberschatz, Galvin, and Gagne:** (**ISBN:** 978-1292400451)
  - Excellent coverage of processes, threads, and concurrency.
- **Modern Operating Systems by Andrew S. Tanenbaum:** (**ISBN:** 978-0133591620)
  - In-depth explanations of operating system concepts, including process and thread management. 
