πŸ“Œ Process Management

λͺ¨κΉ…Β·2023λ…„ 4μ›” 1일
0

πŸ“– 01. ν”„λ‘œμ„ΈμŠ€ 생성 (Process Creation)

  • ν”„λ‘œμ„ΈμŠ€ μ–΄λ–»κ²Œ λ§Œλ“€μ–΄μ§€λŠ”κ°€?
    -> ν”„λ‘œμ„ΈμŠ€μ˜ 생성은 λˆ„κ°€λ§Œλ“œλŠ”κ°€?
    -> λΆ€λͺ¨ ν”„λ‘œμ„ΈμŠ€κ°€ λ§Œλ“ λ‹€.
    -> μƒμ„±ν•˜λŠ” 방법은 보톡 볡제 생성을 ν•˜κ²Œ λœλ‹€.
    -> ν”„λ‘œμ„ΈμŠ€λŠ” λΆ€λͺ¨κ°€ μžμ‹μ„ λ§Œλ“œλŠ”λ° μ—¬λŸΏμ„ λ§Œλ“€ 수 μžˆλ‹€.
    -> ν”„λ‘œμ„ΈμŠ€μ˜ κ³„μΈ΅λ„λŠ” νŠΈλ¦¬ν˜•νƒœλ‘œ ν˜•μ„±λœλ‹€.
    -> ν”„λ‘œμ„ΈμŠ€κ°€ 싀행이 되렀면 μžμ›μ΄ ν•„μš”ν•˜κ³  μš΄μ˜μ²΄μ œλ‘œλΆ€ν„° λ°›λŠ”λ‹€. λΆ€λͺ¨μ™€ μžμ›μ„ κ³΅μœ ν•  λ•Œλ„ 있고 아닐 λ•Œλ„ μžˆλ‹€
    -> μ›μΉ™μ μœΌλ‘œλŠ” μžμ›μ„ κ³΅μœ ν•˜μ§€λŠ” μ•ŠλŠ”λ‹€. CPUλ₯Ό μ–»μœΌλ €κ³  κ²½μŸμ„ 함
    -> ν”„λ‘œμ„ΈμŠ€κ°€ 싀행이 될 λ•Œ λΆ€λͺ¨μ™€ μžμ‹μ΄ κ³΅μ‘΄ν•˜λ©° μˆ˜ν–‰λ˜λŠ” κ²½μš°κ°€ 있고 μžμ‹μ„ ν•˜λ‚˜ μƒμ„±ν•œ λ‹€μŒ μžμ‹μ΄ μ’…λ£Œλ  λ•ŒκΉŒμ§€ λΆ€λͺ¨κ°€ κΈ°λ‹€λ¦¬λŠ” 그런 λͺ¨λΈμ΄ μžˆλ‹€.

  • ν”„λ‘œμ„ΈμŠ€μ˜ 생성은 λΆ€λͺ¨κ°€ μžμ‹μ„ μƒμ„±ν•œλ‹€.
    -> μ–΄λ–»κ²Œ 생성을 ν•˜λŠ”κ°€? λ³΅μ œμƒμ„±
    -> μžμ‹μ€ λΆ€λͺ¨μ˜ μ£Όμ†Œκ³΅κ°„μ„ 볡사함, μš΄μ˜μ²΄μ œμ— μžˆλŠ” PCBλΌλ˜μ§€ μžμ›μ„ λ³΅μ‚¬ν•œλ‹€.
    -> λ³΅μ œμƒμ„±μ„ ν•˜κ²Œ 되면 μ»΄ν“¨ν„°μ•ˆμ— μ‘΄μž¬ν•˜λŠ” λͺ¨λ“  ν”„λ‘œμ„ΈμŠ€λŠ” λͺ¨λ‘ 같은 일을 ν•΄μ•Όν•œλ‹€
    -> ν•˜μ§€λ§Œ κ·Έλ ‡κ²Œ ν•˜μ§€μ•Šκ³  κ·Έ 곡간에 μƒˆλ‘œμš΄ ν”„λ‘œκ·Έλž¨μ„ 올릴 수 μžˆλ‹€.
    -> λ³΅μ œλΌλŠ”κ²ƒμ΄ fork()λΌλŠ” μ‹œμŠ€ν…œμ½œ
    -> λ‹€λ₯Έ ν”„λ‘œκ·Έλž¨μœΌλ‘œ μ˜¬λ¦¬λŠ” 것이 exec() μ‹œμŠ€ν…œμ½œμ΄λ‹€.

  • μ‚¬μš©μž ν”„λ‘œμ„ΈμŠ€κ°€ 직접 λ‹€λ₯Έ ν”„λ‘œμ„ΈμŠ€λ₯Ό μƒμ„±ν•˜λŠ” 것이 μ•„λ‹ˆλΌ 운영체제λ₯Ό ν†΅ν•΄μ„œλ§Œ 생성이 κ°€λŠ₯ν•˜λ‹€.
    -> μ‹œμŠ€ν…œ 콜이기 λ•Œλ¬Έμ— μš΄μ˜μ²΄μ œκ°€ λŒ€μ‹  ν•΄μ£ΌλŠ” 것이닀.

πŸ“– 02. ν”„λ‘œμ„ΈμŠ€ μ’…λ£Œ (Process Termination)

  • 보톡은 ν”„λ‘œμ„ΈμŠ€κ°€ μ’…λ£Œ 될 λ•Œ exit()μ΄λΌλŠ” μ‹œμŠ€ν…œ μ½œμ„ ν•˜λ©΄ ν”„λ‘œμ„ΈμŠ€κ°€ μ’…λ£Œκ°€ λœλ‹€.
  • cμ–Έμ–΄μ—μ„œ ν•¨μˆ˜ λ§ˆμ§€λ§‰μ— ' } 'λ₯Ό ν•˜κ²Œ 되면 μ»΄νŒŒμΌλŸ¬κ°€ μ•Œμ•„μ„œ exit()을 ν˜ΈμΆœν•΄μ€€λ‹€.
    -> λ˜λŠ” λͺ…μ‹œμ μœΌλ‘œ exit()μ‹œμŠ€ν…œμ½œμ„ λΆˆλŸ¬μ„œ μ’…λ£Œ μ‹œν‚¬ 수 μžˆλ‹€.
  • μ΄λ ‡κ²Œ ν”„λ‘œμ„ΈμŠ€κ°€ μ’…λ£Œκ°€ 될 λ•Œ μžμ‹μ΄ λΆ€λͺ¨μ—κ²Œ 데이터λ₯Ό λ³΄λ‚΄κ²Œ λœλ‹€.
    -> ν”„λ‘œμ„ΈμŠ€μ˜ μ„Έκ³„μ—μ„œλŠ” λΆ€λͺ¨ ν”„λ‘œμ„ΈμŠ€ 보닀 μžμ‹ ν”„λ‘œμ„ΈμŠ€κ°€ λ¨Όμ € μ£½μ–΄μ•Ό ν•œλ‹€. wait()μ‹œμŠ€ν…œ μ½œμ„ ν†΅ν•΄μ„œ 전달이 λœλ‹€.
  • 자발적으둜 μ‹œμŠ€ν…œμ΄ μ’…λ£Œλ˜λ©΄ exit을 ν•˜λ©΄λ˜κ³ 
    λΉ„μžλ°œμ μœΌλ‘œ μ‹œμŠ€ν…œμ„ μ’…λ£Œμ‹œν‚€λ €λ©΄ abortλ₯Ό ν•˜λ©΄ λœλ‹€ (κ°•μ œμ’…λ£Œ)
    -> μ–΄λ–€ μžμ›μ˜ ν•œκ³„μΉ˜λ₯Ό λ„˜μ–΄μ„œλ©΄ κ°•μ œμ’…λ£Œ μ‹œν‚΄
    -> μžμ‹μ—κ²Œ 일을 μ‹œν‚€λ €κ³  μƒμ„±μ‹œμΌ°λŠ”λ° ν• λ‹Ήλœ 일이 μ—†μœΌλ©΄ μ£½μž„
    -> λΆ€λͺ¨ ν”„λ‘œμ„ΈμŠ€κ°€ μ’…λ£Œλ˜λŠ” 경우 μžμ‹ ν”„λ‘œμ„ΈμŠ€κ°€ μ’…λ£Œλœλ‹€. (이 세계에선 μžμ‹μ΄ λ¨Όμ € μ£½μ–΄μ•Ό ν•œλ‹€.)





[좜처] 반효경 κ΅μˆ˜λ‹˜ κ°•μ˜

profile
λ©ˆμΆ”μ§€ μ•ŠκΈ°

0개의 λŒ“κΈ€