[CS] μ‹œμŠ€ν…œ 콜(System Call)

βœ… μš΄μ˜μ²΄μ œλŠ” μ‚¬μš©μž λͺ¨λ“œ(User mode)와 컀널 λͺ¨λ“œ(Kernel mode)둜 λ‚˜λ‰˜μ–΄ λ™μž‘ν•˜κ³ , μ΄λ ‡κ²Œ λ‚˜λ‰˜μ–΄ λ™μž‘ν•˜λŠ” 것을 이쀑 λ™μž‘ λͺ¨λ“œ(Dual Mode Operation)라고 함

β˜‘οΈ μ‚¬μš©μž λͺ¨λ“œ : μ ‘κ·Όν•  수 μžˆλŠ” λ©”λͺ¨λ¦¬ μ˜μ—­μ΄ μ‚¬μš©μžμ—κ²Œ ν—ˆμš©λœ μ •λ„λ‘œ μ œν•œλ˜μ–΄ 있고, ν•˜λ“œμ›¨μ–΄μ— μ§μ ‘μ μœΌλ‘œ μ ‘κ·Όν•  수 μ—†μŒ

β˜‘οΈ 컀널 λͺ¨λ“œ : λͺ¨λ“  μ‹œμŠ€ν…œ λ©”λͺ¨λ¦¬μ™€ CPU Instruction에 μ ‘κ·Ό κ°€λŠ₯ν•˜κ³ , ν•˜λ“œμ›¨μ–΄μ— μ§μ ‘μ μœΌλ‘œ μ ‘κ·Όν•  수 있음

⇒ 컀널 λͺ¨λ“œκ°€ μ‚¬μš©μž λͺ¨λ“œλ³΄λ‹€ 높은 κΆŒν•œμ„ κ°€μ Έ μ‚¬μš©μž λͺ¨λ“œμ—μ„œ μœ μ € μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ ν•„μš”μ— 따라 컀널 λͺ¨λ“œλ‘œ λ³€ν™˜ν•˜μ—¬ μ‹œμŠ€ν…œ μ˜μ—­μ— μ ‘κ·Όν•  수 있음

β˜‘οΈ μ™œ 이쀑 λ™μž‘ λͺ¨λ“œ ꡬ동 ?

: μ‹œμŠ€ν…œμ„ λ³΄ν˜Έν•˜κΈ° μœ„ν•¨ (μœ μ € μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ΄ ν•¨λΆ€λ‘œ μ‹œμŠ€ν…œ μžμ›μ— μ ‘κ·Όν•  수 μ—†κ²Œ 함)

 

μ‹œμŠ€ν…œ 콜 처리

1️⃣ μ‚¬μš©μž ν”„λ‘œμ„ΈμŠ€κ°€ μ‹œμŠ€ν…œ 콜 호좜 (컀널 λͺ¨λ“œ μ§„μž…)

2️⃣ 컀널은 λ‚΄λΆ€μ μœΌλ‘œ μ‹œμŠ€ν…œ μ½œμ„ κ΅¬λΆ„ν•˜κΈ° μœ„ν•΄ κΈ°λŠ₯λ³„λ‘œ 고유번호λ₯Ό ν• λ‹Ήν•˜κ³  κ·Έ λ²ˆν˜Έμ— ν•΄λ‹Ήν•˜λŠ” μ œμ–΄ 루틴을 μ •μ˜

3️⃣ 컀널은 μš”μ²­λ°›μ€ μ‹œμŠ€ν…œ μ½œμ— λŒ€μ‘ν•˜λŠ” 고유번호λ₯Ό ν™•μΈν•˜κ³  λ²ˆν˜Έμ— λ§žλŠ” μ„œλΉ„μŠ€ 루틴 호좜

4️⃣ 컀널은 μ„œλΉ„μŠ€ 루틴을 μ²˜λ¦¬ν•˜κ³ , μ‚¬μš©μž λͺ¨λ“œλ‘œ μ „ν™˜

 

μ‹œμŠ€ν…œ 콜 μœ ν˜•

1️⃣ ν”„λ‘œμ„ΈμŠ€ μ œμ–΄(Process Control) : ν”„λ‘œμ„ΈμŠ€ μ‹€ν–‰, 생성, λŒ€κΈ° λ“±

  • fork()
  • exec()
  • wait()
  • exit()

2️⃣ 파일 μ‘°μž‘(File Manipulation) : 파일 μ—΄κΈ°, 읽기, μ“°κΈ° λ“±

  • open()
  • read()
  • write()
  • close()

3️⃣ μž₯치 관리(Device Management) : λ””λ°”μ΄μŠ€ λΆ€μ°©, 뢄리, 읽기, μ“°κΈ° λ“±

  • ioctl()
  • read()
  • write()

4️⃣ 정보 μœ μ§€(Information Maintenance) : μ‹œκ°„, λ‚ μ§œ μ„€μ • λ“±

  • getpid()
  • alarm()
  • sleep()

5️⃣ 톡신(Communication) : 톡신 μ—°κ²° 생성, 제거, μƒνƒœ 정보 전달 λ“±

  • pipe()
  • shm_open()
  • mmap()

6️⃣ 보호(Protection)

  • chmod()
  • umask()
  • chown()

'CS > OS' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

[CS] IPC(Inter Process Communication)  (0) 2024.02.06
[CS] PCB & Context Switching  (0) 2024.02.01
[CS] μΈν„°λŸ½νŠΈ (Interrupt)  (0) 2023.11.29
[CS] ν”„λ‘œμ„ΈμŠ€ μ£Όμ†Œ 곡간  (0) 2023.10.28
[CS] ν”„λ‘œμ„ΈμŠ€μ™€ μŠ€λ ˆλ“œ  (1) 2023.10.28