λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
πŸ–₯️ Computer Science

[μ‰½κ²Œ λ°°μš°λŠ” 운영체제] ch.3 ν”„λ‘œμ„ΈμŠ€μ™€ μŠ€λ ˆλ“œ - μ—°μŠ΅ & 심화 문제

by GroovyArea 2022. 11. 2.

μ—°μŠ΅ 문제

1. ν”„λ‘œκ·Έλž¨μ΄ ν”„λ‘œμ„ΈμŠ€κ°€ 되렀면 μš΄μ˜μ²΄μ œλ‘œλΆ€ν„° 무엇을 λ°›λŠ”μ§€?

  • ν”„λ‘œμ„ΈμŠ€ μ œμ–΄ 블둝(Process Control Block)

 

2. ν”„λ‘œμ„ΈμŠ€μ˜ μƒνƒœ 쀑 CPUλ₯Ό ν• λ‹Ήλ°›κΈ° μœ„ν•΄ κΈ°λ‹€λ¦¬λŠ” μƒνƒœ

  • μ€€λΉ„ μƒνƒœ(Ready Status)

 

3. ν”„λ‘œμ„ΈμŠ€μ˜ μƒνƒœ 쀑 μž…μΆœλ ₯ μž‘μ—…μ„ ν•˜κΈ° μœ„ν•΄ μ΄λ™ν•˜λŠ” μƒνƒœ

  • λŒ€κΈ° μƒνƒœ(Blocking Status)

 

4. CPU μŠ€μΌ€μ€„λŸ¬κ°€ μ€€λΉ„ μƒνƒœμ— μžˆλŠ” ν”„λ‘œμ„ΈμŠ€ 쀑 ν•˜λ‚˜λ₯Ό 골라 CPUλ₯Ό ν• λ‹Ήν•˜λŠ” μž‘μ—…

  • μ‹€ν–‰ μƒνƒœ(Runnung Status)

 

5. μœ λ‹‰μŠ€μ—μ„œ Ctrl+Z λ₯Ό 눌러 ν”„λ‘œμ„ΈμŠ€κ°€ μ€‘λ‹¨λ˜λ©΄ ν”„λ‘œμ„ΈμŠ€λŠ” μ–΄λ–€ μƒνƒœλ‘œ λ°”λ€ŒλŠ”μ§€?

  • νœ΄μ‹ μƒνƒœ(Pause Status)

 

6. μ‹€ν–‰ μƒνƒœμ—μ„œ ν•˜λ‚˜μ˜ ν”„λ‘œμ„ΈμŠ€κ°€ λ‚˜κ°€κ³  μƒˆλ‘œμš΄ ν”„λ‘œμ„ΈμŠ€κ°€ λ“€μ–΄μ˜€λŠ” 상황

  • λ¬Έλ§₯ κ΅ν™˜(Context Switching)
  • 두 ν”„λ‘œμ„ΈμŠ€ κ°„μ˜ μ œμ–΄ 블둝 λ‚΄μš©μ΄ λ³€κ²½ 됨.
  • κΈ°μ‘΄ ν”„λ‘œμ„ΈμŠ€ μž‘μ—…μ„ μ €μž₯ ν›„ μ‹€ν–‰ λ˜λŠ” ν”„λ‘œμ„ΈμŠ€μ˜ μ œμ–΄ λΈ”λ‘μ˜ λ‚΄μš©μ„ κ°€μ§€κ³  CPUκ°€ μ„ΈνŒ…ν•¨
  • ν”„λ‘œμ„ΈμŠ€ κ°„ μ œμ–΄ 블둝을 κ΅ν™˜ν•˜λŠ” μž‘μ—…

 

7. μ‹€ν–‰ 쀑인 ν”„λ‘œμ„ΈμŠ€λ‘œλΆ€ν„° μƒˆλ‘œμš΄ ν”„λ‘œμ„ΈμŠ€λ₯Ό λ³΅μ‚¬ν•˜λŠ” μ‹œμŠ€ν…œ ν˜ΈμΆœμ€?

  • fork()
  • ν˜„μž¬ 싀행쀑인 ν”„λ‘œμ„ΈμŠ€μ™€ 같은 ν”„λ‘œμ„ΈμŠ€κ°€ ν•˜λ‚˜ μƒμ„±λœλ‹€.
  • κΈ°μ‘΄ ν”„λ‘œμ„ΈμŠ€ : λΆ€λͺ¨ ν”„λ‘œμ„ΈμŠ€
  • μƒˆ ν”„λ‘œμ„ΈμŠ€ : μžμ‹ ν”„λ‘œμ„ΈμŠ€

 

8. ν”„λ‘œμ„ΈμŠ€μ˜ 골격은 κ·ΈλŒ€λ‘œ λ‘” 채 μ½”λ“œ μ˜μ—­λ§Œμ„ λ°”κΎΈλŠ” μ‹œμŠ€ν…œ 호좜?

  • exec()
  • ν”„λ‘œμ„ΈμŠ€μ˜ ꡬ쑰체λ₯Ό μž¬ν™œμš©ν•˜κΈ° μœ„ν•΄ μ‚¬μš©
  • 기쑴의 ν”„λ‘œμ„ΈμŠ€ μ œμ–΄ 블둝, λ©”λͺ¨λ¦¬, λΆ€λͺ¨-μžμ‹ 관계λ₯Ό κ·ΈλŒ€λ‘œ μ‚¬μš©ν•¨
  • μƒˆλ‘œμš΄ Code Area만 κ°€μ Έμ˜€λ©΄ λœλ‹€.

 

9. λΆ€λͺ¨ ν”„λ‘œμ„ΈμŠ€κ°€ 기닀리지 μ•Šμ•„ μžμ›μ΄ νšŒμˆ˜λ˜μ§€ λͺ»ν•˜κ³  계속 μ‚΄μ•„ μžˆλŠ” ν”„λ‘œμ„ΈμŠ€?

  • Orphan Process
  • Zombie Process

 

10. ν”„λ‘œμ„ΈμŠ€μ˜ μ½”λ“œμ— μ •μ˜λœ μ ˆμ°¨μ— 따라 CPU에 μž‘μ—… μš”μ²­μ„ ν•˜λŠ” μ‹€ν–‰ λ‹¨μœ„λ‘œμ„œ κ°€λ²Όμš΄ ν”„λ‘œμ„ΈμŠ€λ‘œ λΆˆλ¦¬μš°λŠ” 것은?

  • Thread
  • CPU μŠ€μΌ€μ€„λŸ¬κ°€ CPU에 μ „λ‹¬ν•˜λŠ” ν•˜λ‚˜μ˜ 일
  • μž‘μ—…μ˜ λ‹¨μœ„

 

11. λ―Έμ•„ ν”„λ‘œμ„ΈμŠ€λ₯Ό λ°©μ§€ν•˜κΈ° μœ„ν•΄ λΆ€λͺ¨ ν”„λ‘œμ„ΈμŠ€λŠ” μ–΄λ–€ μ‹œμŠ€ν…œ ν˜ΈμΆœμ„ μ‚¬μš©ν•˜λŠ”μ§€?

  • wait()
  • μžμ‹ ν”„λ‘œμ„ΈμŠ€κ°€ μ’…λ£Œλ  경우 λ‹€μŒ λ¬Έμž₯을 μ‹€ν–‰

 

12. μž‘μ—…μ΄ λλ‚œ ν”„λ‘œμ„ΈμŠ€μ˜ μžμ›μ„ νšŒμˆ˜ν•˜λŠ” ν–‰μœ„?

  • Garbage Collection

 

13. λͺ¨λ“  ν”„λ‘œμ„ΈμŠ€λ₯Ό λΆ€λͺ¨-μžμ‹ κ΄€κ³„λ‘œ λ§Œλ“€μ–΄ μžμ› 회수λ₯Ό μš©μ΄ν•˜κ²Œ ν•˜λŠ” ν”„λ‘œμ„ΈμŠ€μ˜ ꡬ쑰?

  • ν”„λ‘œμ„ΈμŠ€ 계측 ꡬ쑰
λ°˜μ‘ν˜•