λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
πŸ›  컴퓨터과학: CS

[운영체제] 운영체제의 ꡬ쑰 (컀널, μΈν„°νŽ˜μ΄μŠ€, μ‹œμŠ€ν…œ 호좜, λ””λ°”μ΄μŠ€ λ“œλΌμ΄λ²„)

by 🐀 쀀콩이 2023. 8. 8.

πŸ’‘ μ»€λ„κ³Ό μΈν„°νŽ˜μ΄μŠ€

 

μš΄μ˜μ²΄μ œλŠ” 컀널과 μΈν„°νŽ˜μ΄μŠ€λ‘œ μ΄λ£¨μ–΄μ ΈμžˆμŠ΅λ‹ˆλ‹€.

 

컴퓨터 μ‹œμŠ€ν…œμ˜ ꡬ쑰

 

컀널(kernel)은 운영체제의 핡심적인 κΈ°λŠ₯인 ν”„λ‘œμ„ΈμŠ€ 관리, λ©”λͺ¨λ¦¬ 관리, μ €μž₯μž₯치 관리 등을 λ‹΄λ‹Ήν•˜λŠ” 역할을 ν•©λ‹ˆλ‹€. μ΄λŠ” μžλ™μ°¨μ˜ 엔진에 λΉ„μœ ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

 

μžλ™μ°¨κ°€ 움직이기 μœ„ν•΄μ„œλŠ” μ—”μ§„λΏλ§Œ μ•„λ‹ˆλΌ μš΄μ „μžκ°€ μ‘°μž‘ν•  수 μžˆλŠ” ν•Έλ“€κ³Ό λΈŒλ ˆμ΄ν¬λ„ ν•„μš”ν•©λ‹ˆλ‹€. λ˜ν•œ ν˜„μž¬ 속도, κΈ°μ–΄μ˜ μƒνƒœ, μ—”μ§„ μ˜¨λ„ 등을 μ•Œλ €μ£ΌλŠ” κ³„κΈ°νŒλ„ ν•„μš”ν•©λ‹ˆλ‹€. μ΄λŸ¬ν•œ 뢀뢄을 μžλ™μ°¨μ˜ μΈν„°νŽ˜μ΄μŠ€λΌκ³  ν•©λ‹ˆλ‹€. μš΄μ˜μ²΄μ œμ—λ„ μΈν„°νŽ˜μ΄μŠ€κ°€ 있으며, μ΄λŠ” μ‚¬μš©μžμ˜ λͺ…령을 μ»€λ„λ‘œ μ „λ‹¬ν•˜κ³  μ‹€ν–‰ κ²°κ³Όλ₯Ό μ‚¬μš©μžμ—κ²Œ μ•Œλ €μ£ΌλŠ” 역할을 ν•©λ‹ˆλ‹€.

 

 

πŸ’‘ μ‹œμŠ€ν…œ 호좜과 λ””λ°”μ΄μŠ€ λ“œλΌμ΄λ²„

 

μ‹œμŠ€ν…œ 호좜(System Call)은 컀널이 μžμ‹ μ„ λ³΄ν˜Έν•˜κΈ° μœ„ν•΄ λ§Œλ“  μΈν„°νŽ˜μ΄μŠ€μž…λ‹ˆλ‹€. 컀널은 μ‚¬μš©μžλ‚˜ μ‘μš© ν”„λ‘œκ·Έλž¨μœΌλ‘œλΆ€ν„° 컴퓨터 μžμ›μ„ λ³΄ν˜Έν•˜κΈ° μœ„ν•΄ 직접적인 접근을 μ°¨λ‹¨ν•©λ‹ˆλ‹€. 이둜 인해 μžμ›μ„ μ΄μš©ν•˜λ €λ©΄ μ‹œμŠ€ν…œ ν˜ΈμΆœμ΄λΌλŠ” μΈν„°νŽ˜μ΄μŠ€λ₯Ό 톡해 μ ‘κ·Όν•΄μ•Ό ν•©λ‹ˆλ‹€.

 

μ‹œμŠ€ν…œ ν˜ΈμΆœμ— λŒ€ν•œ μ£Όμš” λ‚΄μš©μ€ λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.

 

  • μ‹œμŠ€ν…œ ν˜ΈμΆœμ€ 운영체제 컀널이 μ œκ³΅ν•˜λŠ” μ‹œμŠ€ν…œ μžμ›μ˜ μ‚¬μš©κ³Ό μ—°κ΄€λœ ν•¨μˆ˜μž…λ‹ˆλ‹€.
  • μ‘μš© ν”„λ‘œκ·Έλž¨μ΄ ν•˜λ“œμ›¨μ–΄ μžμ›μ— μ ‘κ·Όν•˜κ±°λ‚˜ μš΄μ˜μ²΄μ œκ°€ μ œκ³΅ν•˜λŠ” μ„œλΉ„μŠ€λ₯Ό μ΄μš©ν•˜λ € ν•  λ•Œ, μ‹œμŠ€ν…œ ν˜ΈμΆœμ„ μ‚¬μš©ν•΄μ•Ό ν•©λ‹ˆλ‹€.
  • μš΄μ˜μ²΄μ œλŠ” 컀널이 μ œκ³΅ν•˜λŠ” μ„œλΉ„μŠ€λ₯Ό μ‹œμŠ€ν…œ ν˜ΈμΆœμ„ ν†΅ν•΄μ„œλ§Œ μ œν•œν•˜μ—¬, λ‹€λ₯Έ λ°©λ²•μœΌλ‘œ 컀널 μ˜μ—­μ— μ ‘κ·Όν•˜μ§€ λͺ»ν•˜κ²Œ 막아 컴퓨터 μžμ›μ„ λ³΄ν˜Έν•©λ‹ˆλ‹€.
  • μ‹œμŠ€ν…œ ν˜ΈμΆœμ€ 컀널이 μ œκ³΅ν•˜λŠ” μ„œλΉ„μŠ€λ₯Ό μ΄μš©ν•˜κΈ° μœ„ν•œ μΈν„°νŽ˜μ΄μŠ€μ΄λ©°, μ‚¬μš©μžκ°€ 자발적으둜 컀널 μ˜μ—­μœΌλ‘œ μ§„μž…ν•˜λŠ” μœ μΌν•œ μˆ˜λ‹¨μž…λ‹ˆλ‹€.

 

μ‘μš© ν”„λ‘œκ·Έλž¨κ³Ό 컀널 κ°„μ˜ μΈν„°νŽ˜μ΄μŠ€κ°€ μ‹œμŠ€ν…œ 호좜(System Call)이라면, 컀널과 ν•˜λ“œμ›¨μ–΄ κ°„μ˜ μΈν„°νŽ˜μ΄μŠ€λŠ” λ“œλΌμ΄λ²„(Driver)κ°€ λ‹΄λ‹Ήν•©λ‹ˆλ‹€. 컴퓨터 ν•˜λ“œμ›¨μ–΄μ˜ λ‹€μ–‘ν•œ μ’…λ₯˜λ‘œ 인해 컀널이 λͺ¨λ“  ν•˜λ“œμ›¨μ–΄μ— λŒ€ν•œ μΈν„°νŽ˜μ΄μŠ€λ₯Ό κ°œλ°œν•˜κΈ° μ–΄λ €μš΄λ°, 이λ₯Ό μœ„ν•΄ ν•˜λ“œμ›¨μ–΄ μ œμž‘μžλ“€μ΄ κ΄€λ ¨ μ†Œν”„νŠΈμ›¨μ–΄μΈ λ””λ°”μ΄μŠ€ λ“œλΌμ΄λ²„λ₯Ό κ°œλ°œν•˜λŠ” 것이 μΌλ°˜μ μž…λ‹ˆλ‹€. ν•˜λ“œμ›¨μ–΄ μ œμž‘μžλŠ” 각 ν•˜λ“œμ›¨μ–΄μ˜ νŠΉμ„±μ„ κ°€μž₯ 잘 μ΄ν•΄ν•˜κ³  μžˆμœΌλ―€λ‘œ, 그듀이 μ†Œν”„νŠΈμ›¨μ–΄λ₯Ό κ°œλ°œν•˜λŠ” 것이 더 νš¨μœ¨μ μž…λ‹ˆλ‹€. 이에 따라 컀널은 μž…μΆœλ ₯κ³Ό 같은 기본적인 뢀뢄을 μ œμž‘ν•˜κ³ , ν•˜λ“œμ›¨μ–΄μ˜ νŠΉμ„±μ„ κ³ λ €ν•œ λ””λ°”μ΄μŠ€ λ“œλΌμ΄λ²„λŠ” 컀널이 싀행될 λ•Œ ν•¨κ»˜ μ‹€ν–‰λ˜λ„λ‘ κ΅¬μ„±λ©λ‹ˆλ‹€.

 

 

πŸ’‘ μ»€λ„μ˜ μ—­ν• 

 

운영체제의 핡심 κΈ°λŠ₯을 λͺ¨μ•„놓은 컀널이 주둜 ν•˜λŠ” 일은 λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.

 

  • ν”„λ‘œμ„ΈμŠ€ 관리: ν”„λ‘œμ„ΈμŠ€μ— CPU λ₯Ό λ°°λΆ„ν•˜κ³  ν•„μš”ν•œ 제반 ν™˜κ²½μ„ μ œκ³΅ν•©λ‹ˆλ‹€.
  • λ©”λͺ¨λ¦¬ 관리: ν”„λ‘œμ„ΈμŠ€μ— μž‘μ—… 곡간을 λ°°μΉ˜ν•˜κ³  μ‹€μ œ λ©”λͺ¨λ¦¬λ³΄λ‹€ 큰 가상곡간을 μ œκ³΅ν•©λ‹ˆλ‹€.
  • 파일 μ‹œμŠ€ν…œ 관리: 데이터λ₯Ό μ €μž₯ν•˜κ³  μ ‘κ·Όν•  수 μžˆλŠ” μΈν„°νŽ˜μ΄μŠ€λ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€.
  • μž…μΆœλ ₯ 관리: ν•„μš”ν•œ μž…λ ₯κ³Ό 좜λ ₯ μ„œλΉ„μŠ€λ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€.
  • ν”„λ‘œμ„ΈμŠ€ κ°„ 톡신 관리: 곡동 μž‘μ—…μ„ μœ„ν•œ 각 ν”„λ‘œμ„ΈμŠ€ κ°„ ν™˜κ²½μ„ μ§€μ›ν•©λ‹ˆλ‹€.

 

 

πŸ’‘ μ°Έκ³ 

 

μ‰½κ²Œ λ°°μš°λŠ” 운영체제 - μ‘°μ„±ν˜Έ