Files
amILearningEnough/docs/resources/operatingSystem/processManagementStructures.md
2024-12-21 01:23:20 +05:30

66 lines
3.6 KiB
Markdown

# Process Management Structures
## Core Concepts
- **Process:**
- [Wikipedia: Process (computing)](https://en.wikipedia.org/wiki/Process_(computing))
- An instance of a program in execution.
- **Process Management:**
- [GeeksforGeeks: Process Management in Operating System](https://www.geeksforgeeks.org/process-management-in-operating-system/)
- The tasks performed by an operating system to manage processes.
## Key Data Structures
- **Process Control Block (PCB):**
- [Wikipedia: Process control block](https://en.wikipedia.org/wiki/Process_control_block)
- A data structure that stores information about a process, such as its process ID, state, program counter, register values, memory allocation details, and more.
- **Process Table:**
- [Techopedia: Process Table](https://www.techopedia.com/definition/1066/process-table)
- A table maintained by the operating system that contains entries (usually PCBs) for each active process.
## Process States
- **Process State:**
- [Wikipedia: Process state](https://en.wikipedia.org/wiki/Process_state)
- Represents the current activity of a process, such as running, ready, blocked (waiting), etc.
- **Process State Diagram:**
- [GeeksforGeeks: Process States in Operating System](https://www.geeksforgeeks.org/process-states-in-operating-system/)
- Illustrates the possible states of a process and transitions between them.
## Process Scheduling
- **Process Scheduling:**
- [Tutorialspoint: CPU Scheduling](https://www.tutorialspoint.com/operating_system/os_process_scheduling.htm)
- The mechanism by which the operating system determines which process gets access to the CPU and for how long.
- **Scheduling Algorithms:**
- [GeeksforGeeks: CPU Scheduling Algorithms](https://www.geeksforgeeks.org/cpu-scheduling-algorithms/)
- Various algorithms like First-Come, First-Served (FCFS), Shortest Job First (SJF), Priority Scheduling, Round Robin, etc., used to determine the execution order of processes.
## Inter-process Communication (IPC)
- **Inter-process Communication:**
- [Wikipedia: Inter-process communication](https://en.wikipedia.org/wiki/Inter-process_communication)
- Mechanisms that allow processes to communicate and synchronize with each other. Examples include:
- **Pipes:** [Wikipedia: Pipeline (Unix)](https://en.wikipedia.org/wiki/Pipeline_(Unix))
- **Message Queues:** [Wikipedia: Message queue](https://en.wikipedia.org/wiki/Message_queue)
- **Shared Memory:** [Wikipedia: Shared memory](https://en.wikipedia.org/wiki/Shared_memory)
- **Sockets:** [Wikipedia: Network socket](https://en.wikipedia.org/wiki/Network_socket)
## Threads and Concurrency
- **Thread (computing):**
- [Wikipedia: Thread (computing)](https://en.wikipedia.org/wiki/Thread_(computing))
- A lightweight process that shares resources with other threads within the same process.
- **Concurrency (computer science):**
- [Wikipedia: Concurrency (computer science)](https://en.wikipedia.org/wiki/Concurrency_(computer_science))
- Dealing with multiple tasks seemingly at the same time.
- **Thread Synchronization:**
- [Tutorialspoint: Thread Synchronization](https://www.tutorialspoint.com/operating-system/os_thread_synchronization.htm)
- Mechanisms (like mutexes, semaphores, etc.) to prevent race conditions and ensure data consistency when multiple threads access shared resources.
## Additional Resources
- **Books:**
- *Operating System Concepts* by Silberschatz, Galvin, and Gagne (**ISBN:** 978-1292400451)
- *Modern Operating Systems* by Andrew S. Tanenbaum (**ISBN:** 978-0133591620)