μ‹œμŠ€ν…œ 호좜(System Call,μ‹œμŠ€ν…œ 콜)

2024. 6. 16. 19:33Β· πŸ“–μŠ€ν„°λ””/운영체제
λͺ©μ°¨
  1. νŠΉμ§•
  2. μ£Όμš” μ‹œμŠ€ν…œ 콜
  3. μ‹œμŠ€ν…œ μ½œμ˜ λ™μž‘ κ³Όμ •

μ‹œμŠ€ν…œ 호좜(system call)은 운영 체제의 핡심 κΈ°λŠ₯ 쀑 ν•˜λ‚˜λ‘œ μ‚¬μš©μž λͺ¨λ“œμ—μ„œ μ‹€ν–‰λ˜λŠ” μ• ν”Œλ¦¬μΌ€μ΄μ…˜ ν”„λ‘œκ·Έλž¨μ΄ 컀널 λͺ¨λ“œμ—μ„œ μ‹€ν–‰λ˜λŠ” 운영체제의 μ„œλΉ„μŠ€λ₯Ό μš”μ²­ν•˜λŠ” λ§€μ»€λ‹ˆμ¦˜μž…λ‹ˆλ‹€. μ‹œμŠ€ν…œ μ½œμ„ 톡해 μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ€ ν•˜λ“œμ›¨μ–΄ μžμ›μ— μ ‘κ·Όν•˜κ±°λ‚˜ 파일 μ‹œμŠ€ν…œ, ν”„λ‘œμ„ΈμŠ€ 관리, λ©”λͺ¨λ¦¬ 관리 λ“±μ˜ κΈ°λŠ₯을 μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

 

νŠΉμ§•

  • λͺ¨λ“œ μ „ν™˜ : μ‹œμŠ€ν…œ μ½œμ„ 톡해 μ‚¬μš©μž λͺ¨λ“œμ—μ„œ 컀널 λͺ¨λ“œλ‘œ μ „ν™˜λ©λ‹ˆλ‹€. μ΄λŠ” λ³΄μ•ˆκ³Ό μ•ˆμ „μ„±μ„ μœ„ν•΄ μ€‘μš”ν•œ κ³Όμ •μž…λ‹ˆλ‹€.
  • ν”„λ‘œκ·Έλž˜λ° μΈν„°νŽ˜μ΄μŠ€ : μ‹œμŠ€ν…œ μ½œμ€ 운영체제의 라이브러리둜 λ‹€μ–‘ν•œ ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄μ—μ„œ 이λ₯Ό ν˜ΈμΆœν•˜μ—¬ OSκΈ°λŠ₯을 μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€
  • 좔상화 : μ‹œμŠ€ν…œ μ½œμ€ ν•˜λ“œμ›¨μ–΄μ™€ 직접 μƒν˜Έ μž‘μš©ν•˜λŠ” 것을 μΆ”μƒν™”ν•˜μ—¬, ν”„λ‘œκ·Έλž¨μ΄ 더 μ‰½κ²Œ ν•˜λ“œμ›¨μ–΄λ₯Ό μ‚¬μš©ν•  수 μžˆλ„λ‘ ν•©λ‹ˆλ‹€.

 

μ£Όμš” μ‹œμŠ€ν…œ 콜

  1. 파일 μ‹œμŠ€ν…œ κ΄€λ ¨
    • open() : νŒŒμΌμ„ μ—΄κ±°λ‚˜ μƒμ„±ν•©λ‹ˆλ‹€.
    • read() :  νŒŒμΌμ—μ„œ λ°μ΄ν„°λ₯Ό μ½μŠ΅λ‹ˆλ‹€.
    • write(): νŒŒμΌμ— λ°μ΄ν„°λ₯Ό μ”λ‹ˆλ‹€.
    • close(): μ—΄λ € μžˆλŠ” νŒŒμΌμ„ λ‹«μŠ΅λ‹ˆλ‹€.
  2. ν”„λ‘œμ„ΈμŠ€ κ΄€λ¦¬
    • fork(): μƒˆλ‘œμš΄ ν”„λ‘œμ„ΈμŠ€λ₯Ό μƒμ„±ν•©λ‹ˆλ‹€.
    • exec(): ν˜„μž¬ ν”„λ‘œμ„ΈμŠ€λ₯Ό μƒˆλ‘œμš΄ ν”„λ‘œκ·Έλž¨μœΌλ‘œ λŒ€μ²΄ν•©λ‹ˆλ‹€.
    • wait(): μžμ‹ ν”„λ‘œμ„ΈμŠ€κ°€ μ’…λ£Œλ  λ•ŒκΉŒμ§€ κΈ°λ‹€λ¦½λ‹ˆλ‹€.
    • exit(): ν”„λ‘œμ„ΈμŠ€λ₯Ό μ’…λ£Œν•©λ‹ˆλ‹€.
  3. λ©”λͺ¨λ¦¬ κ΄€λ¦¬
    • mmap(): νŒŒμΌμ΄λ‚˜ μž₯치 λ©”λͺ¨λ¦¬λ₯Ό λ©”λͺ¨λ¦¬ λ§΅ν•‘ν•©λ‹ˆλ‹€.
    • munmap(): λ©”λͺ¨λ¦¬ λ§΅ν•‘을 ν•΄μ œν•©λ‹ˆλ‹€.
  4. λ””λ°”μ΄μŠ€ κ΄€λ¦¬
    • ioctl(): μž₯치의 μ œμ–΄ λ° μ„€μ •을 μœ„ν•œ λ‹€μ–‘ν•œ μž‘업을 μˆ˜ν–‰ν•©λ‹ˆλ‹€.

 

μ‹œμŠ€ν…œ μ½œμ˜ λ™μž‘ κ³Όμ •

 

  1. μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ΄ μ‹œμŠ€ν…œ μ½œμ„ ν˜ΈμΆœν•©λ‹ˆλ‹€.
  2. μ‹œμŠ€ν…œ 콜 λ²ˆν˜Έμ™€ μΈμžκ°€ λ ˆμ§€μŠ€ν„°λ‚˜ μŠ€νƒμ— μ„€μ •λ©λ‹ˆλ‹€. 
  3. μ†Œν”„νŠΈμ›¨μ–΄ μΈν„°λŸ½νŠΈ(예: int 0x80 on x86)λ‚˜ μ‹œμŠ€ν…œ 콜 λͺ…λ Ήμ–΄λ₯Ό 톡해 컀널 λͺ¨λ“œλ‘œ μ „ν™˜λ©λ‹ˆλ‹€.
  4. 컀널이 ν•΄λ‹Ή μ‹œμŠ€ν…œ 콜 ν•Έλ“€λŸ¬λ₯Ό μ‹€ν–‰ν•©λ‹ˆλ‹€.
  5. 컀널이 μš”μ²­λœ μž‘μ—…μ„ μˆ˜ν–‰ν•œ ν›„, κ²°κ³Όλ₯Ό λ ˆμ§€μŠ€ν„°μ— μ €μž₯ν•˜κ³  μ‚¬μš©μž λͺ¨λ“œλ‘œ λ³΅κ·€ν•©λ‹ˆλ‹€.
  6. μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ΄ μ‹œμŠ€ν…œ 콜의 κ²°κ³Όλ₯Ό ν™•μΈν•˜κ³  μ΄μ–΄μ„œ 싀행을 κ³„μ†ν•©λ‹ˆλ‹€.

 

'πŸ“–μŠ€ν„°λ”” > 운영체제' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

PCB, Context Switching  (1) 2024.06.19
μΈν„°λŸ½νŠΈ  (0) 2024.06.16
CPU μŠ€μΌ€μ€„λ§ μ•Œκ³ λ¦¬μ¦˜  (5) 2024.06.16
  1. νŠΉμ§•
  2. μ£Όμš” μ‹œμŠ€ν…œ 콜
  3. μ‹œμŠ€ν…œ μ½œμ˜ λ™μž‘ κ³Όμ •
'πŸ“–μŠ€ν„°λ””/운영체제' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€
  • λ©”λͺ¨λ¦¬μ˜ μ£Όμ†Œ 곡간: 물리/λ…Όλ¦¬μ£Όμ†Œ 가상메λͺ¨λ¦¬ & μ£Όμ†Œ λ³€ν™˜
  • PCB, Context Switching
  • μΈν„°λŸ½νŠΈ
  • CPU μŠ€μΌ€μ€„λ§ μ•Œκ³ λ¦¬μ¦˜
mmmhmm
mmmhmm
λ„€λͺ¨ν•˜λ‚˜ 동그라미 λ‘κ°œ
hmmummλ„€λͺ¨ν•˜λ‚˜ 동그라미 λ‘κ°œ
전체
였늘
μ–΄μ œ
mmmhmm
hmmumm
mmmhmm
  • λΆ„λ₯˜ 전체보기 (50)
    • πŸ–₯οΈν”„λ‘œμ νŠΈ (3)
    • πŸ’‘ν”„λ‘œμ νŠΈ λ¬Έμ œν•΄κ²° (6)
    • πŸ”¦κ³΅λΆ€ λ¬Έμ œν•΄κ²°κ³Όμ • (2)
    • πŸ“–μŠ€ν„°λ”” (38)
      • λ°μ΄ν„°λ² μ΄μŠ€ (10)
      • μŠ€ν”„λ§ (6)
      • λ„€νŠΈμ›Œν¬ (10)
      • 운영체제 (12)
hELLO Β· Designed By μ •μƒμš°.v4.2.2
mmmhmm
μ‹œμŠ€ν…œ 호좜(System Call,μ‹œμŠ€ν…œ 콜)
μƒλ‹¨μœΌλ‘œ

ν‹°μŠ€ν† λ¦¬νˆ΄λ°”

단좕킀

λ‚΄ λΈ”λ‘œκ·Έ

λ‚΄ λΈ”λ‘œκ·Έ - κ΄€λ¦¬μž ν™ˆ μ „ν™˜
Q
Q
μƒˆ κΈ€ μ“°κΈ°
W
W

λΈ”λ‘œκ·Έ κ²Œμ‹œκΈ€

κΈ€ μˆ˜μ • (κΆŒν•œ μžˆλŠ” 경우)
E
E
λŒ“κΈ€ μ˜μ—­μœΌλ‘œ 이동
C
C

λͺ¨λ“  μ˜μ—­

이 νŽ˜μ΄μ§€μ˜ URL 볡사
S
S
맨 μœ„λ‘œ 이동
T
T
ν‹°μŠ€ν† λ¦¬ ν™ˆ 이동
H
H
단좕킀 μ•ˆλ‚΄
Shift + /
⇧ + /

* λ‹¨μΆ•ν‚€λŠ” ν•œκΈ€/영문 λŒ€μ†Œλ¬Έμžλ‘œ 이용 κ°€λŠ₯ν•˜λ©°, ν‹°μŠ€ν† λ¦¬ κΈ°λ³Έ λ„λ©”μΈμ—μ„œλ§Œ λ™μž‘ν•©λ‹ˆλ‹€.