1. νλ‘μΈμ€μ κ°λ
νλ‘μΈμ€λ μ€ν μ€μΈ νλ‘κ·Έλ¨μ μλ―Ένλ€.
κ·Έλ¦¬κ³ νλ‘κ·Έλ¨μ λμ€ν¬μ μ‘΄μ¬νλ λͺ λ Ήμ΄μ μ μ λ°μ΄ν°μ λ¬Άμμ΄λ€. μ΄κ²μ μ°λ¦¬κ° μ¬μ© κ°λ₯νλλ‘ μ€ννλ κ²μ΄ μ΄μ체μ μ λͺ©νμ΄λ€. νλ‘μΈμ€μ κ΅¬μ± μμλ₯Ό μ΄ν΄νκΈ° μν΄μλ νλμ¨μ΄ μνλ₯Ό μ΄ν΄ν΄μΌ νλ€. νλ‘κ·Έλ¨μ΄ μ€νλλ λμ νλμ¨μ΄ μνλ₯Ό μ½κ±°λ κ°±μ ν μ μκΈ° λλ¬Έμ΄λ€. κ·Έμ€ κ°μ₯ μ€μν νλμ¨μ΄ κ΅¬μ± μμλ λ©λͺ¨λ¦¬μ΄λ€. λͺ λ Ήμ΄μ νλ‘κ·Έλ¨μ΄ μ½κ³ μ°λ λ°μ΄ν°λ λͺ¨λ λ©λͺ¨λ¦¬μ μ μ₯λλ€. λ μ§μ€ν°λ μ€μν κ΅¬μ± μμμ΄λ€. νλ‘κ·Έλ¨ μΉ΄μ΄ν°λ νλ‘κ·Έλ¨μ μ΄λ€ λͺ λ Ήμ΄κ° μ€ν μ€μΈμ§ μλ €μ€λ€. μ€ν ν¬μΈν°μ νλ μ ν¬μΈν°λ ν¨μμ λ³μμ λ¦¬ν΄ μ£Όμλ₯Ό μ μ₯νλ μ€νμ κ΄λ¦¬ν λ μ¬μ©νλ λ μ§μ€ν°μ΄λ€. λ νλ‘κ·Έλ¨μ μꡬ μ μ₯μ₯μΉμ μ κ·ΌνκΈ°λ νλ€. μ΄ IO μ 보λ νλ‘μΈμ€κ° νμ¬ μ΄μ΄ λμ νμΌ λͺ©λ‘μ κ°μ§κ³ μλ€.
2. νλ‘μΈμ€ API
λ€μ μ±ν°μμ μμΈν λ€λ£° μμ μ΄κΈ° λλ¬Έμ μ΄λ€ μ’ λ₯κ° μλμ§λ§ νμΈ.
- Create β νλ‘μΈμ€λ₯Ό μλ‘ μμ±νλ€
- Destroy β νλ‘μΈμ€λ₯Ό κ°μ λ‘ μ’ λ£νλ€
- Wait β μ’ λ£ μ λκΈ°
- Miscellaneous Control β λκΈ°, μ’ λ£ μΈμ μΌμμ μ§ λ° μ¬κ° λ±
- Status β μΌλ§λ μ€νλλμ§, μ΄λ€ μνμΈμ§
3. νλ‘μΈμ€ μμ±

- νλ‘κ·Έλ¨ μ½λμ μ μ λ°μ΄ν°λ₯Ό λ©λͺ¨λ¦¬, νλ‘μΈμ€μ μ£Όμ 곡κ°μ λ‘λ.
- μ΄μ체μ λ λμ€ν¬μ ν΄λΉ λ°μ΄νΈλ₯Ό μ½μ΄μ λ©λͺ¨λ¦¬μ μ΄λκ°μ μ¬λ €μΌ νλ€.
- νμν λΆλΆλ§ λ©λͺ¨λ¦¬μ νμ¬ β νμ΄μ§, μ€μν μ΄ν΄ νμ. μμ μλ κ·Έλ₯ λ€ λλ €λ°μ.
- μΌμ λμ λ©λͺ¨λ¦¬κ° νλ‘κ·Έλ¨μ μ€νμκ° μ€ν (λ°νμ μ€ν) μ©λλ‘ ν λΉλμ΄μΌ ν¨.
- νμ μν λ©λͺ¨λ¦¬ μμλ ν λΉλμ΄μΌ ν¨. (
malloc,free) - μ μΆλ ₯κ³Ό κ΄κ³λ μ΄κΈ°ν μμ μν (STDIN, STDOUT, STDERR 3κ°μ νμΌ λμ€ν¬λ¦½ν°) β 3λ²μ§Έ λΆλΆμΈ μμμ±μμ λ€λ£Έ
- μ€νμ€λΉ μλ£. νλ‘κ·Έλ¨μ μμ μ§μ μΈ main()μμλΆν° νλ‘κ·Έλ¨ μ€ν. μ΄μ체μ λ CPUλ₯Ό μλ‘ μμ±λ νλ‘μΈμ€μκ² ν λΉ. νλ‘κ·Έλ¨ μ€ν μμ.
4. νλ‘μΈμ€ μν
νλ‘μΈμ€λ 3κ°μ§ μνλ₯Ό κ°μ§λ€.

- μ€ν(Running): νλ‘μΈμ€λ λͺ λ Ήμ΄λ₯Ό μ€ννκ³ μλ€.
- μ€λΉ(Ready): μ€νν μ€λΉκ° λμ΄ μμ§λ§ μ΄μ체μ κ° λ€λ₯Έ νλ‘μΈμ€λ₯Ό μ€ννκ³ μλ λ±μ μ΄μ λ‘ κΈ°λ€λ¦¬λ μ€
- λκΈ°(Blocked): νλ‘μΈμ€κ° λ€λ₯Έ μ¬κ±΄μ κΈ°λ€λ¦¬λ λμ νλ‘μΈμ€μ μνμ μ€λ¨μν€λ μ°μ°. ex) λμ€ν¬μ λν μ μΆλ ₯ μμ² β μμ°¨μ μΌλ‘ μ€νν΄μΌ νκΈ° λλ¬Έμ λ€ μλ£λ λκΉμ§ ν΄λΉ νλ‘μΈμ€λ λ©μΆ°μμ(blocked).
μ΄μ체μ λ μ΄λ€ νλ‘μΈμ€λ₯Ό μ€νν μ§ μ€μΌμ₯΄λ¬λ₯Ό ν΅ν΄ κ²°μ μ λ΄λ¦°λ€.
5. μλ£κ΅¬μ‘°
μ΄μ체μ λ λ€λ₯Έ νλ‘κ·Έλ¨λ€μ²λΌ μ 보λ₯Ό μ μ§νκΈ° μν μλ£ κ΅¬μ‘°λ₯Ό κ°μ§κ³ μλ€.

νλ‘μΈμ€ μνλ₯Ό νμ νκΈ° μν νλ‘μΈμ€ 리μ€νΈ λ±.
μ΄μ체μ λ μ΄λ κ² λ μ§μ€ν° λ° νλ‘μΈμ€μ μνλ₯Ό μ μ₯νκ³ , μ΄λ₯Ό ν΅ν΄ νλ‘μΈμ€ μ€νμ μ¬κ°νλ€ (context switch)
μ°Έκ³ : OSTEP κ΅μ¬