μμ€ν νΈμΆ(System Calls)
μ΄μ체μ λ 컀λ λͺ¨λ(Kernel Mode)μ μ¬μ©μ λͺ¨λ(User Mode)λ‘ λλμ΄ κ΅¬λλλ€. μ΄μ체μ μμ νλ‘κ·Έλ¨μ΄ ꡬλλλλ° μμ΄ νμΌμ μ½μ΄ μ€κ±°λ, νμΌμ μ°κ±°λ, νΉμ νλ©΄μ λ©μμ§λ₯Ό μΆλ ₯νλ λ± λ§μ λΆλΆμ΄ 컀λ λͺ¨λλ₯Ό μ¬μ©νλ€.
OSλ λ€μν μλΉμ€λ€μ μννκΈ° μν΄ νλμ¨μ΄λ₯Ό μ§μ μ μΌλ‘ κ΄λ¦¬νλ€. μ΄μ λ°λ©΄ μμ© νλ‘κ·Έλ¨μ OSκ° μ 곡νλ μΈν°νμ΄μ€λ₯Ό ν΅ν΄μλ§ μμμ μ¬μ©ν μ μλ€. OSκ° μ 곡νλ μ΄λ¬ν μΈν°νμ΄μ€λ₯Ό μμ€ν μ½(System Call) λΌκ³ νλ€.
μμ€ν μ½μ μ΄λ¬ν 컀λ μμμ κΈ°λ₯μ μ¬μ©μ λͺ¨λκ° μ¬μ© κ°λ₯νκ², μ¦ νλ‘μΈμ€κ° νλμ¨μ΄μ μ§μ μ κ·Όν΄μ νμν κΈ°λ₯μ μ¬μ©ν μ μκ² ν΄μ€λ€.
μμ€ν μ½μ νΈνκ² μ¬μ©νκΈ° μν μλ¨μΌλ‘ APIλ₯Ό μ 곡νλ€. APIλ μμ© νλ‘κ·Έλ¨μ μ½κ² λ§λ€κΈ° μν λκ΅¬λ‘ λλΆμ μ½κ² νλ‘κ·Έλλ°μ΄ κ°λ₯ν΄μ‘λ€.
ν΅μμ μΌλ‘ μμ€ν μ½μ μ¬λ¬ μ’ λ₯μ κΈ°λ₯μΌλ‘ λλμ΄μ Έ μλ€. κ° μμ€ν μ½μλ λ²νΈκ° ν λΉλκ³ μμ€ν μ½ μΈν°νμ΄μ€λ μ΄λ¬ν λ²νΈμ λ°λΌ μΈλ±μ€ λλ ν μ΄λΈμ μ μ§λλ€.
μλ κ·Έλ¦Όμ open() μμ€ν μ½μ νΈμΆ νμ λ μ΄μ체μ μμ μ΄λ»κ² μ²λ¦¬λλμ§λ₯Ό 보μ¬μ€λ€.
νμν κΈ°λ₯μ΄λ μμ€ν νκ²½μ λ°λΌ μμ€ν μ½μ΄ λ°μν λ μ’ λ λ§μ μ λ³΄κ° νμν μ μλ€. κ·Έλ¬ν μ λ³΄κ° λ΄κΈ΄ 맀κ°λ³μλ₯Ό μ΄μ체μ μ μ λ¬νκΈ° μν΄μλ λλ΅ 3κ°μ§ λ°©λ²μ΄ μλ€.
- 맀κ°λ³μλ₯Ό CPU λ μ§μ€ν° λ΄μ μ λ¬νλ€.
- μ΄ κ²½μ°μ 맀κ°λ³μμ κ°―μκ° CPU λ΄μ μ΄ λ μ§μ€ν° κ°μλ³΄λ€ λ§μ μ μλ€.
- μμ κ°μ κ²½μ°μ 맀κ°λ³μλ₯Ό λ©λͺ¨λ¦¬μ μ μ₯νκ³ λ©λͺ¨λ¦¬μ μ£Όμκ° λ μ§μ€ν°μ μ λ¬λλ€. (μλ κ·Έλ¦Ό μ°Έκ³ )
- 맀κ°λ³μλ νλ‘κ·Έλ¨μ μν΄ μ€ν(stack)μΌλ‘ μ λ¬(push) λ μλ μλ€.
- 2, 3λ² λ°©λ²μ κ²½μ° μ λ¬λλ 맀κ°λ³μμ κ°μλ κΈΈμ΄μ μ νμ΄ μκΈ° λλ¬Έμ λͺλͺ μ΄μ체μ μμ μ νΈνλ λ°©μμ΄λ€.
μμ€ν μ½μ μ ν
μμ€ν μ½μ μ¬μ― κ°μ§μ μ€μν λ²μ£Όλ‘ λλ μ μλ€.
- νλ‘μΈμ€ μ μ΄
- νμΌ μ‘°μ
- μ₯μΉ μ‘°μ
- μ 보 μ μ§λ³΄μ
- ν΅μ
- 보νΈ
1 νλ‘μΈμ€ μ μ΄(Process Control)
- λλ΄κΈ°(exit), μ€μ§(abort)
- μ μ¬(load), μ€ν(execute)
- νλ‘μΈμ€ μμ±(create process) - fork
- νλ‘μΈμ€ μμ± νλκ³Ό μ€μ (get process attribute and set process attribute)
- μκ° λκΈ°(wait time)
- μ¬κ±΄ λκΈ°(wait event)
- μ¬κ±΄μ μλ¦Ό(signal event)
- λ©λͺ¨λ¦¬ ν λΉ λ° ν΄μ : malloc, free
2 νμΌ μ‘°μ(File Manipulation)
- νμΌ μμ±(create file), νμΌ μμ (delete file)
- μ΄κΈ°(open), λ«κΈ°(close)
- μ½κΈ°(read), μ°κΈ°(write), μμΉ λ³κ²½(reposition)
- νμΌ μμ± νλ λ° μ€μ (get file attribute and set file attribute)
3 μ₯μΉ κ΄λ¦¬(Devide Management)
- νλμ¨μ΄μ μ μ΄μ μν μ 보λ₯Ό μ»μ(ioctl)
- μ₯μΉλ₯Ό μꡬ(request devices), μ₯μΉλ₯Ό λ°©μΆrelease device)
- μ½κΈ°(read), μ°κΈ°(write), μμΉ λ³κ²½
- μ₯μΉ μμ± νλ, μ₯μΉ μμ± μ€μ
- μ₯μΉμ λ Όλ¦¬μ λΆμ°©(attach) λλ λΆλ¦¬(detach)
4 μ 보 μ μ§(Information Maintenance)
- getpid(), alarm(), sleep()
- μκ°κ³Ό λ μ§μ μ€μ κ³Ό νλ(time)
- μμ€ν λ°μ΄ν°μ μ€μ κ³Ό νλ(date)
- νλ‘μΈμ€ νμΌ, μ₯μΉ μμ±μ νλ λ° μ€μ
5 ν΅μ (Communication)
- pipe(), shm_open(), mmap()
- ν΅μ μ°κ²°μ μμ±, μ κ±°
- λ©μμ§μ μ‘μ , μμ
- μν μ 보 μ λ¬
- μ격 μ₯μΉμ λΆμ°© λ° λΆλ¦¬
6. 보νΈ(Protection)
- chmod()
- umask()
- chown()
μΌλ°μ μΈ ν΅μ λͺ¨λΈμλ λ©μμ§ μ λ¬κ³Ό 곡μ λ©λͺ¨λ¦¬ λκ°μ§κ° μλ€.
λ©μμ§ μ λ¬ λͺ¨λΈμμλ λ νλ‘μΈμ€μ ν΅μ μ μ 보 κ΅νμ μν λ©μμ§λ₯Ό μ£Όκ³ λ°λλ€.
곡μ λ©λͺ¨λ¦¬ λͺ¨λΈμμλ λ€λ₯Έ νλ‘μΈμ€κ° μμ ν λ©λͺ¨λ¦¬μ μ κ·Όμ μν΄ νΉμ μμ€ν μ½μ νΈμΆνλ€. μΌλ°μ μΌλ‘ μ΄μ체μ λ μλ‘ λ€λ₯Έ νλ‘μΈμ€κ°μ λ©λͺ¨λ¦¬ μ κ·Όμ μ°¨λ¨νλ€. 곡μ λ©λͺ¨λ¦¬ κΈ°λ²μ μ¬μ©νκΈ° μν΄μλ ν΅μ νλ €λ νλ‘μΈμ€λ€μ΄ μ΄λ¬ν μ°¨λ¨μ νμ΄μ£Όλλ° λμν΄μΌνλ€.
μ°Έκ³
'πCS > OS' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[OS] νμ΄μ§ κ΅μ²΄ μκ³ λ¦¬μ¦ (0) | 2021.10.13 |
---|---|
[OS] νμ΄μ§ & μΈκ·Έλ¨Όν μ΄μ (0) | 2021.10.13 |
[OS] νλ‘μΈμ€ μ£Όμ κ³΅κ° (0) | 2021.08.23 |
[OS] μΈν°λ½νΈ (0) | 2021.08.23 |
[OS] νλ‘μΈμ€ vs μ€λ λ (0) | 2021.08.18 |
λκΈ