728x90
μμ€ν νΈμΆ(system call)μ μ΄μ 체μ μ ν΅μ¬ κΈ°λ₯ μ€ νλλ‘ μ¬μ©μ λͺ¨λμμ μ€νλλ μ ν리μΌμ΄μ νλ‘κ·Έλ¨μ΄ 컀λ λͺ¨λμμ μ€νλλ μ΄μ체μ μ μλΉμ€λ₯Ό μμ²νλ 맀컀λμ¦μ λλ€. μμ€ν μ½μ ν΅ν΄ μ ν리μΌμ΄μ μ νλμ¨μ΄ μμμ μ κ·Όνκ±°λ νμΌ μμ€ν , νλ‘μΈμ€ κ΄λ¦¬, λ©λͺ¨λ¦¬ κ΄λ¦¬ λ±μ κΈ°λ₯μ μ¬μ©ν μ μμ΅λλ€.
νΉμ§
- λͺ¨λ μ ν : μμ€ν μ½μ ν΅ν΄ μ¬μ©μ λͺ¨λμμ 컀λ λͺ¨λλ‘ μ νλ©λλ€. μ΄λ 보μκ³Ό μμ μ±μ μν΄ μ€μν κ³Όμ μ λλ€.
- νλ‘κ·Έλλ° μΈν°νμ΄μ€ : μμ€ν μ½μ μ΄μ체μ μ λΌμ΄λΈλ¬λ¦¬λ‘ λ€μν νλ‘κ·Έλλ° μΈμ΄μμ μ΄λ₯Ό νΈμΆνμ¬ OSκΈ°λ₯μ μ¬μ©ν μ μμ΅λλ€
- μΆμν : μμ€ν μ½μ νλμ¨μ΄μ μ§μ μνΈ μμ©νλ κ²μ μΆμννμ¬, νλ‘κ·Έλ¨μ΄ λ μ½κ² νλμ¨μ΄λ₯Ό μ¬μ©ν μ μλλ‘ ν©λλ€.
μ£Όμ μμ€ν μ½
- νμΌ μμ€ν
κ΄λ ¨
- open() : νμΌμ μ΄κ±°λ μμ±ν©λλ€.
- read() : νμΌμμ λ°μ΄ν°λ₯Ό μ½μ΅λλ€.
- write(): νμΌμ λ°μ΄ν°λ₯Ό μλλ€.
- close(): μ΄λ € μλ νμΌμ λ«μ΅λλ€.
- νλ‘μΈμ€ κ΄λ¦¬
- fork(): μλ‘μ΄ νλ‘μΈμ€λ₯Ό μμ±ν©λλ€.
- exec(): νμ¬ νλ‘μΈμ€λ₯Ό μλ‘μ΄ νλ‘κ·Έλ¨μΌλ‘ λ체ν©λλ€.
- wait(): μμ νλ‘μΈμ€κ° μ’ λ£λ λκΉμ§ κΈ°λ€λ¦½λλ€.
- exit(): νλ‘μΈμ€λ₯Ό μ’ λ£ν©λλ€.
- λ©λͺ¨λ¦¬ κ΄λ¦¬
- mmap(): νμΌμ΄λ μ₯μΉ λ©λͺ¨λ¦¬λ₯Ό λ©λͺ¨λ¦¬ 맡νν©λλ€.
- munmap(): λ©λͺ¨λ¦¬ 맡νμ ν΄μ ν©λλ€.
- λλ°μ΄μ€ κ΄λ¦¬
- ioctl(): μ₯μΉμ μ μ΄ λ° μ€μ μ μν λ€μν μμ μ μνν©λλ€.
μμ€ν μ½μ λμ κ³Όμ
- μ ν리μΌμ΄μ μ΄ μμ€ν μ½μ νΈμΆν©λλ€.
- μμ€ν μ½ λ²νΈμ μΈμκ° λ μ§μ€ν°λ μ€νμ μ€μ λ©λλ€.
- μννΈμ¨μ΄ μΈν°λ½νΈ(μ: int 0x80 on x86)λ μμ€ν μ½ λͺ λ Ήμ΄λ₯Ό ν΅ν΄ 컀λ λͺ¨λλ‘ μ νλ©λλ€.
- 컀λμ΄ ν΄λΉ μμ€ν μ½ νΈλ€λ¬λ₯Ό μ€νν©λλ€.
- 컀λμ΄ μμ²λ μμ μ μνν ν, κ²°κ³Όλ₯Ό λ μ§μ€ν°μ μ μ₯νκ³ μ¬μ©μ λͺ¨λλ‘ λ³΅κ·ν©λλ€.
- μ ν리μΌμ΄μ μ΄ μμ€ν μ½μ κ²°κ³Όλ₯Ό νμΈνκ³ μ΄μ΄μ μ€νμ κ³μν©λλ€.
728x90
'πμ€ν°λ > μ΄μ체μ ' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
PCB, Context Switching (1) | 2024.06.19 |
---|---|
μΈν°λ½νΈ (0) | 2024.06.16 |
CPU μ€μΌμ€λ§ μκ³ λ¦¬μ¦ (5) | 2024.06.16 |