νλ‘μΈμ€λ μ»΄ν¨ν° κ³Όνμμ μ€μν κ°λ μΌλ‘, μ€ν μ€μΈ νλ‘κ·Έλ¨μ λνλ λλ€. νλ‘μΈμ€λ μ΄μ 체μ μμ κ΄λ¦¬λλ©°, κ°κ° λ 립μ μΌλ‘ μ€νλλ νλ‘κ·Έλ¨μ μΈμ€ν΄μ€λΌκ³ μκ°ν μ μμ΅λλ€.
λ€μν μ΄μ 체μ μμλ νλ‘μΈμ€λ₯Ό μμ±, κ΄λ¦¬, μ€μΌμ€λ§νκ³ μμμ ν λΉνλλ° μ¬μ©λλ μ¬λ¬ λ©μ»€λμ¦μ΄ μμ΅λλ€.
ν¬κ·ΈλΌμ΄λ νλ‘μΈμ€ (Foreground Process)
ν¬κ·ΈλΌμ΄λ νλ‘μΈμ€λ νμ¬ μ¬μ©μμ μ§μ μνΈ μμ©νλ νλ‘μΈμ€λ₯Ό λνλ
λλ€. μ¬μ©μκ° μ€νν νλ‘κ·Έλ¨μ΄λ λͺ
λ Ήμ΄ ν¬κ·ΈλΌμ΄λμμ μ€νλλ©΄ ν΄λΉ μμ
μ΄ μλ£λ λκΉμ§ μ μ΄λ₯Ό κ³μ μ μ§νλ©°, μ¬μ©μλ κ·Έ μ§ν μν©μ λ³Ό μ μμ΅λλ€.
μ£Όλ‘ ν°λ―Έλ μ°½μμ μ€νλ νλ‘μΈμ€κ° ν¬κ·ΈλΌμ΄λμμ λμν©λλ€.
λ°±κ·ΈλΌμ΄λ νλ‘μΈμ€ (Background Process)
λ°±κ·ΈλΌμ΄λ νλ‘μΈμ€λ μ¬μ©μμμ μ§μ μ μΈ μνΈ μμ© μμ΄ μ€νλλ νλ‘μΈμ€λ₯Ό μλ―Έν©λλ€. μ¬μ©μκ° λ€λ₯Έ μμ μ μννκ±°λ λ‘κ·Έμμν΄λ λ°±κ·ΈλΌμ΄λμμ μ€ν μ€μΈ νλ‘μΈμ€λ κ³μν΄μ μ€νλ©λλ€. νλ‘μΈμ€λ₯Ό λ°±κ·ΈλΌμ΄λλ‘ λ³΄λ΄λ λ°©λ²μ λ³΄ν΅ λͺ λ Ήμ΄ λ€μ "&"λ₯Ό λΆμ΄λ κ²μ λλ€.
νλ‘μΈμ€ μ μ΄ λΈλ‘ (Process Control Block, PCB)
PCBλ μ΄μ 체μ κ° κ° νλ‘μΈμ€λ₯Ό κ΄λ¦¬νκΈ° μν΄ μ¬μ©νλ μλ£ κ΅¬μ‘°μ λλ€. κ° νλ‘μΈμ€λ§λ€ νλμ PCBκ° ν λΉλλ©°, νλ‘μΈμ€μ μν, λ μ§μ€ν° κ°, μ€μΌμ€λ§ μ 보, λ©λͺ¨λ¦¬ κ΄λ¦¬ μ 보 λ±κ³Ό κ°μ μ€μν μ 보λ₯Ό μ μ₯ν©λλ€.
PCBμ λ€μ΄κ°λ μ 보
- νλ‘μΈμ€ ID (=PID) : νΉμ νλ‘μΈμ€λ₯Ό μλ³νκΈ° μν΄ λΆμ¬νλ κ³ μ ν λ²νΈ
- νλ‘μΈμ€ μν (Process State): νλ‘μΈμ€κ° νμ¬ μ΄λ€ μνμ μλμ§λ₯Ό λνλ λλ€. μ£Όμ μνλ‘λ μ€ν μ€, μ€λΉ μ€, λκΈ° μ€ λ±μ΄ μμ΅λλ€.
- νλ‘κ·Έλ¨ μΉ΄μ΄ν° (Program Counter): λ€μμ μ€νν λͺ λ Ήμ΄μ μ£Όμλ₯Ό κ°λ¦¬ν€λ λ μ§μ€ν° κ°μ λλ€.
- λ μ§μ€ν° μν λ° κ°: νλ‘μΈμ€μ λ μ§μ€ν° κ°λ€μ μ μ₯ν©λλ€. (μμ μ μ°¨λ‘κ° μμ λ, μ΄μ κΉμ§ μ¬μ©ν λ μ§μ€ν° μ€κ° κ°μ λͺ¨λ 볡μνκΈ° μν΄μ)
- CPU μ€μΌμ€λ§ μ 보: νλ‘μΈμ€μ μ°μ μμ, μ€μΌμ€λ§ νμ λν μ 보 λ±μ ν¬ν¨ν©λλ€.
- λ©λͺ¨λ¦¬ κ΄λ¦¬ μ 보: νλ‘μΈμ€μ λ©λͺ¨λ¦¬ ν λΉκ³Ό μ¬μ©μ λν μ 보λ₯Ό κ°μ§κ³ μμ΅λλ€. (νμ΄μ§ ν μ΄λΈ μ 보)
- μ μΆλ ₯ μν μ 보: νμ¬ νλ‘μΈμ€κ° μ μΆλ ₯ μμ μ μν μ€μΈ κ²½μ°, ν΄λΉ μνμ κ΄λ ¨λ μ 보λ₯Ό ν¬ν¨ν©λλ€.
μ΄λ¬ν μ 보λ€μ PCBλ₯Ό ν΅ν΄ μ΄μ 체μ κ° νλ‘μΈμ€λ₯Ό κ΄λ¦¬νκ³ , νλ‘μΈμ€ κ° μ νμ΄λ μν λ³νμ λμν μ μλλ‘ ν©λλ€. PCBλ νλ‘μΈμ€μ μ€νμ΄ μΌμ μ€λ¨λκ±°λ μ νλ λ νμν λͺ¨λ μ 보λ₯Ό 보μ νκ³ μμ΄μΌ ν©λλ€.
1λ² νλ‘μΈμ€μ μ°¨λ‘κ° λλκ³ 2λ² μ°¨λ‘μ νλ‘μΈμ€μκ² μ€ν μμκ° μμ λ, μ»΄ν¨ν° λ΄λΆμμ μΌμ΄λλ κ³Όμ μ μ΄ν΄λ΄ μλ€. 1λ² νλ‘μΈμ€λ μ°μ μ§κΈκΉμ§μ μ 보λ€μ λ°±μ ν©λλ€. μ΄ μ 보λ₯Ό λ¬Έλ§₯(Context)λΌκ³ λΆλ¦ λλ€. μ΄λ κ² λ¬Έλ§₯μ λ°±μ ν΄λλ©΄ μΈμ λ μ§ ν΄λΉ νλ‘μΈμ€μ μ€νμ μ¬κ°ν μ μμ΅λλ€.
λ¬Έλ§₯ κ΅ν(Context Switching)μ μ¬λ¬ νλ‘μΈμ€κ° λμμμ΄ λ²κ°μκ°λ©° μ€νλλ μ리μ λλ€. μ΄λ μ΄μ 체μ κ° λ€μ€ νλ‘μΈμ€λ₯Ό μ§μνκ³ , κ° νλ‘μΈμ€μ 곡ννκ² CPU μκ°μ ν λΉνκΈ° μν΄ νμν μμ μ λλ€. λ¬Έλ§₯ κ΅νμ νμ¬ μ€ν μ€μΈ νλ‘μΈμ€μ μνλ₯Ό μ μ₯νκ³ , λκΈ° μ€μΈ λ€λ₯Έ νλ‘μΈμ€μ μνλ₯Ό 볡μνμ¬ μ΄μ μνμμ κ³μ μ€νλ μ μλλ‘ νλ κ³Όμ μ ν¬ν¨ν©λλ€.
λ¬Έλ§₯ κ΅νμ μ£Όμ λ¨κ³
- νμ¬ νλ‘μΈμ€μ μν μ μ₯: νμ¬ μ€ν μ€μΈ νλ‘μΈμ€μ λ μ§μ€ν° κ°, νλ‘κ·Έλ¨ μΉ΄μ΄ν°, νλ‘μΈμ€ μν λ±μ PCB(νλ‘μΈμ€ μ μ΄ λΈλ‘)μ μ μ₯ν©λλ€ μ΄ μ 보λ€μ λμ€μ μ΄ νλ‘μΈμ€κ° λ€μ μ€νλ λ μ΄μ μνλ‘ λ³΅μνλ λ° μ¬μ©λ©λλ€.
- λ€μ μ€νν νλ‘μΈμ€ μ ν: μ€μΌμ€λ¬λ λκΈ° μ€μΈ νλ‘μΈμ€ μ€μμ λ€μμ μ€νν νλ‘μΈμ€λ₯Ό μ νν©λλ€. μ΄ μ νμ μ°μ μμ, λΌμ΄λ λ‘λΉ μ€μΌμ€λ§ λ± λ€μν μ€μΌμ€λ§ μκ³ λ¦¬μ¦μ λ°λΌ μ΄λ£¨μ΄μ§λλ€.
- μ νν νλ‘μΈμ€μ μν 볡μ: μ νν νλ‘μΈμ€μ PCBμμ μ μ₯λ μ 보λ₯Ό μ½μ΄μ ν΄λΉ νλ‘μΈμ€μ μνλ₯Ό 볡μν©λλ€. λ μ§μ€ν° κ°, νλ‘κ·Έλ¨ μΉ΄μ΄ν° λ±μ μ΄μ μ μ μ₯λ κ°μΌλ‘ μ€μ νμ¬ νλ‘μΈμ€κ° μ΄μ μ μΌμ μ€λ¨λ μμ μμ κ³μ μ€νλ μ μλλ‘ ν©λλ€.
- λ€μ νλ‘μΈμ€ μ€ν: λ¬Έλ§₯ κ΅ν ν, μ νλ νλ‘μΈμ€κ° μ΄μ΄μ μ€νλ©λλ€. μ΄ κ³Όμ μμ νμ¬ νλ‘μΈμ€λ μΌμ μ€λ¨λκ³ , μ νλ νλ‘μΈμ€κ° μ€ν μ€μΌλ‘ μ νλ©λλ€.
λ¬Έλ§₯ κ΅νμ μμ μλͺ¨κ° ν° μμ μ€ νλμ΄λ©°, μ€λ²ν€λκ° λ°μν μ μμ΅λλ€. λ°λΌμ ν¨μ¨μ μΈ λ¬Έλ§₯ κ΅νμ μμ€ν μ μ±λ₯μ μ€μν μν₯μ λ―ΈμΉ©λλ€. μ’μ μ€μΌμ€λ§ μκ³ λ¦¬μ¦κ³Ό λ¬Έλ§₯ κ΅νμ μ΅μνλ λ€μ€ νλ‘μΈμ€ μμ€ν μ ν¨μ¨μ±μ ν₯μμν€λ λ° κΈ°μ¬ν©λλ€. PCB(νλ‘μΈμ€ μ μ΄ λΈλ‘)μ λ¬Έλ§₯ κ΅ν(Context Switching)μ μ£Όλ‘ μ΄μ체μ μ 컀λ μμμμ κ΄λ¦¬λ©λλ€.
Process: A program in execution, representing an instance of a running application or task.
Foreground Process: Actively interacts with the user, typically executing tasks in the foreground, allowing user engagement.
Background Process: Operates independently of user interaction, executing tasks in the background without requiring direct user input.
Process Control Block (PCB): A data structure containing essential information about a process, including its state, program counter, and register values.
Context Switch: The process of saving and restoring a process's state, enabling seamless transition between multiple processes in a multitasking environment.
'Computer Science > Operating System' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
6 νλ‘μΈμ€ μνμ κ³μΈ΅ ꡬ쑰 (1) | 2023.12.28 |
---|---|
5 User Space in Process (νλ‘μΈμ€ μ¬μ©μ μμ) (0) | 2023.12.23 |
3 Dual Mode (User & Kernel mode) + System Call (1) | 2023.12.21 |
2 컀λ (Kernel) (0) | 2023.12.21 |
1 Operating System - μ΄μ체μ (0) | 2023.12.20 |
λκΈ