[운영체제] 2. ν”„λ‘œμ„ΈμŠ€ κ°œμš”

blob

1. ν”„λ‘œμ„ΈμŠ€

ν”„λ‘œμ„ΈμŠ€λž€ μ‹€ν–‰ 쀑인 ν”„λ‘œκ·Έλž¨μ„ μ˜λ―Έν•œλ‹€. λ³Έλ”” ν”„λ‘œκ·Έλž¨μ΄λž€ λ””μŠ€ν¬ λ‚΄ 파일둜써 μ‘΄μž¬ν•˜λ©° 정적이고 μˆ˜λ™μ μΈ κ°œμ±„μ΄λ‹€. ν•˜μ§€λ§Œ 운영체제둜 ν•„μš”ν•œ μžμ›μ„ ν• λ‹Ήλ°›μ•„ λ™μž‘μ„ μ‹€ν–‰ν•˜λ©΄ λŠ₯동적이고 동적인 ν”„λ‘œμ„ΈμŠ€κ°€ λœλ‹€.

ν”„λ‘œμ„ΈμŠ€μ˜ μƒνƒœ λ³€ν™”

ν”„λ‘œμ„ΈμŠ€λŠ” 일단 μƒμ„±λœ ν›„μ—λŠ” μžμ›μ„ ν• λ‹Ήλ°›κ³  μ’…λ£Œλ˜κΈ° μ „κΉŒμ§€ λ‹€μ„― λ‹¨κ³„μ˜ μƒνƒœλ₯Ό μ˜€κ°„λ‹€.

etc-image-1
ν”„λ‘œμ„ΈμŠ€ μƒνƒœμ˜ λ‹€μ„― 단계

  1. 생성 β†’ μ€€λΉ„
    • μŠ€μΌ€μ€„λŸ¬μ— μ˜ν•΄ ν˜ΈμΆœλ˜λŠ”λ°, 이 λ•Œ λ©”λͺ¨λ¦¬ 이용 κ°€λŠ₯μ„±κ³Ό μ–΄λ–€ μž₯μΉ˜κ°€ μš”κ΅¬λ˜λŠ”μ§€ κ²€μ‚¬ν•œλ‹€.
  2. μ€€λΉ„ β†’ μ‹€ν–‰
    • 사전에 μ •μ˜λœ μŠ€μΌ€μ€„λ§ μ•Œκ³ λ¦¬μ¦˜μ— 따라 ν”„λ‘œμ„ΈμŠ€κ°€ μ‹€ν–‰λœλ‹€. (λ””μŠ€νŒ¨μΉ˜λΌκ³  ν•œλ‹€.)
  3. μ‹€ν–‰ β†’ μ€€λΉ„
    • ν• λ‹Ή μ‹œκ°„μ΄λ‚˜ μš°μ„ μˆœμœ„ μ•Œκ³ λ¦¬μ¦˜μ˜ 선점방식에 μ˜ν•΄ μ€€λΉ„μƒνƒœλ‘œ λ˜λŒμ•„κ°€λŠ” κ²½μš°λ„ μžˆλ‹€.
  4. μ‹€ν–‰ β†’ λŒ€κΈ°
    • μž…μΆœλ ₯ ν˜Ήμ€ νŽ˜μ΄μ§€ κ΅ν™˜λ“±μ˜ μž‘μ—…μ€ μ‹œκ°„μ΄ 였래 걸리기 λ•Œλ¬Έμ— κ·Έ 사이 CPUλ₯Ό λ‹€λ₯Έ μžμ›μ— ν• λ‹Ήν•˜κΈ° μœ„ν•΄ λŒ€κΈ° μƒνƒœλ‘œ 보낸닀.
  5. λŒ€κΈ° β†’ μ€€λΉ„
    • μž₯μΉ˜κ΄€λ¦¬μžμ˜ μ‹ ν˜Έμ— μ˜ν•΄ μΌμ–΄λ‚œλ‹€. νŽ˜μ΄μ§€ κ΅ν™˜μ˜ 경우 νŽ˜μ΄μ§€ μΈν„°λŸ½νŠΈ ν•Έλ“€λŸ¬κ°€ λ©”λͺ¨λ¦¬μ— νŽ˜μ΄μ§€κ°€ μ‘΄μž¬ν•œλ‹€κ³  μ‹ ν˜Έν•˜κ²Œ 되며 ν”„λ‘œμ„ΈμŠ€κ°€ μ€€λΉ„ 큐둜 μ΄λ™ν•œλ‹€.
  6. μ‹€ν–‰ β†’ μ’…λ£Œ
    • μ„±κ³΅μ μœΌλ‘œ μ’…λ£Œλ˜κ±°λ‚˜ μš΄μ˜μ²΄μ œκ°€ μ—λŸ¬λ₯Ό κ°μ§€ν•˜κ³  κ°•μ œμ’…λ£Œ ν•œ 경우 μ‹€μ‹œλœλ‹€.

ν”„λ‘œμ„ΈμŠ€ μ œμ–΄λΈ”λ‘(PCB)

ν”„λ‘œμ„ΈμŠ€μ˜ 효율적인 관리λ₯Ό μœ„ν•΄ μš΄μ˜μ²΄μ œκ°€ ν”„λ‘œμ„ΈμŠ€μ˜ 정보λ₯Ό λ³΄κ΄€ν•˜λŠ” 블둝. ν”„λ‘œμ„ΈμŠ€κ°€ 진행됨에 따라 λ³€κ²½λ˜κΈ°λ„ ν•˜λ©°, ν”„λ‘œμ„ΈμŠ€κ°€ μ’…λ£Œλ˜λŠ” 경우 사라진닀.

 

PCB λ‚΄μš©μ˜ μ˜ˆμ‹œ (운영체제 λ³„λ‘œ 상이할 수 있음) :

  • ν”„λ‘œμ„ΈμŠ€ μƒνƒœ
  • ν”„λ‘œμ„ΈμŠ€ 번호(PID)
    • ν”„λ‘œμ„ΈμŠ€ 고유 식별값
  • ν”„λ‘œκ·Έλž¨ μΉ΄μš΄ν„°(PC)
    • ν”„λ‘œμ„ΈμŠ€ μˆ˜ν–‰μ„ μœ„ν•œ λ‹€μŒ λͺ…λ Ήμ˜ μ£Όμ†Œ
  • λ ˆμ§€μŠ€ν„°
    • CPU의 λ ˆμ§€μŠ€ν„°μ— ν•΄λ‹Ήν•˜λŠ” 정보λ₯Ό ν¬ν•¨ν•œλ‹€. μ‹€ν–‰ μƒνƒœμ—μ„œ λ‹€λ₯Έ μƒνƒœλ‘œ μ „μ΄λ˜λŠ” 경우 여기에 μž„μ‹œ μ €μž₯ν•˜μ—¬ λ‹€μ‹œ μ‹€ν–‰μƒνƒœκ°€ 될 λ•Œ ν™œμš©ν•œλ‹€.
  • λ©”λͺ¨λ¦¬ 관리 정보
    • ν”„λ‘œμ„ΈμŠ€κ°€ μ €μž₯된 μ£Όμ†Œ 및 가상 λ©”λͺ¨λ¦¬μ™€ μ‹€μ œ λ©”λͺ¨λ¦¬μ˜ 맀핑 정보, κΈ°μ€€ λ ˆμ§€μŠ€ν„°μ™€ 경계 λ ˆμ§€μŠ€ν„° λ“±μ˜ 정보λ₯Ό ν¬ν•¨ν•œλ‹€.
  • νšŒκ³„ 및 μž…μΆœλ ₯ μƒνƒœ 정보
    • 주둜 μ„±λŠ₯ μΈ‘μ •κ³Ό μˆœμœ„μ— λŒ€ν•œ λͺ©μ μ„ μœ„ν•œ 정보듀이 ν¬ν•¨λœλ‹€.

ν”„λ‘œμ„ΈμŠ€ 생성과 μ’…λ£Œ

  • ν”„λ‘œμ„ΈμŠ€ 생성
    • ν”„λ‘œμ„ΈμŠ€κ°€ ν”„λ‘œμ„ΈμŠ€ 생성 μ‹œμŠ€ν…œ ν˜ΈμΆœμ„ μ΄μš©ν•˜μ—¬ μžμ‹ ν”„λ‘œμ„ΈμŠ€λ₯Ό λ‘˜ 수 μžˆλ‹€. μ΄λ•Œ μžμ‹ ν”„λ‘œμ„ΈμŠ€λŠ” λΆ€λͺ¨ ν”„λ‘œμ„ΈμŠ€μ˜ μžμ› 일뢀(μ‹œμŠ€ν…œ κ³ΌλΆ€ν•˜ 방지)λ₯Ό μ–»λŠ”λ‹€.
  • ν”„λ‘œμ„ΈμŠ€ μ’…λ£Œ
    • λΆ€λͺ¨ ν”„λ‘œμ„ΈμŠ€κ°€ μžμ‹ ν”„λ‘œμ„ΈμŠ€μ˜ μž‘μ—…μ„ 더 이상 μ›μΉ˜ μ•Šμ„ λ•Œ μ’…λ£Œμ‹œν‚¬ 수 μžˆλ‹€. λ˜ν•œ λΆ€λͺ¨ ν”„λ‘œμ„ΈμŠ€κ°€ μ’…λ£Œλ˜λŠ” 경우 μžμ‹ ν”„λ‘œμ„ΈμŠ€λ“€μ€ μš΄μ˜μ²΄μ œμ— μ˜ν•΄ 연속적 μ’…λ£Œκ°€ λ°œμƒν•œλ‹€.

ν”„λ‘œμ„ΈμŠ€ κ°„μ˜ 관계

  • 독립적 ν”„λ‘œμ„ΈμŠ€
    • ν•΄λ‹Ή ν”„λ‘œμ„ΈμŠ€λ“€μ€ κ²°μ •μ μ΄κ³ , μž¬μƒ κ°€λŠ₯ν•˜λ‹€.
    • λ‹€λ₯Έ ν”„λ‘œμ„ΈμŠ€μ™€ 영ν–₯을 주고받지 μ•ŠλŠ” ν”„λ‘œμ„ΈμŠ€λ₯Ό μ˜λ―Έν•œλ‹€.
  • 유기적 ν”„λ‘œμ„ΈμŠ€
    • ν•΄λ‹Ή ν”„λ‘œμ„ΈμŠ€λ“€μ€ λΉ„결정적이며 μž¬μƒ λΆˆκ°€λŠ₯ν•˜λ‹€.
    • μ‹€ν–‰ 쀑인 λ‹€λ₯Έ ν”„λ‘œμ„ΈμŠ€μ™€ 유기적으둜 영ν–₯을 μ£Όκ³ λ°›λŠ” ν”„λ‘œμ„ΈμŠ€λ₯Ό μ˜λ―Έν•œλ‹€.

2. μ“°λ ˆλ“œ

etc-image-2
λ©€ν‹° μ“°λ ˆλ“œ ν”„λ‘œμ„ΈμŠ€μ˜ μ˜ˆμ‹œ

  • μ“°λ ˆλ“œλŠ” ν”„λ‘œμ„ΈμŠ€ λ‚΄μ—μ„œ λ‹€μ€‘μ²˜λ¦¬λ₯Ό μœ„ν•΄ κ³ μ•ˆλœ κ°œλ…μ΄λ‹€.
  • μš΄μ˜μ²΄μ œμ—μ„œ ν”„λ‘œμ„ΈμŠ€κ°€ κ°–λŠ” μ˜λ―ΈλŠ” β€˜μžμ› μ†Œμœ  λ‹¨μœ„β€™ 및 β€˜λ””μŠ€νŒ¨μΉ­ λ‹¨μœ„β€™ 두 κ°€μ§€μ˜ 역할을 λ‹΄λ‹Ήν–ˆμ—ˆλ‹€.
  • μ΅œκ·Όμ— λ“€μ–΄μ„œλŠ” β€˜λ””μŠ€νŒ¨μΉ­ λ‹¨μœ„β€™λŠ” μ“°λ ˆλ“œ(κ²½λŸ‰ ν”„λ‘œμ„ΈμŠ€)κ°€ λ‹΄λ‹Ήν•˜κ³  β€˜μžμ› μ†Œμœ μ˜ λ‹¨μœ„β€™λ₯Ό ν”„λ‘œμ„ΈμŠ€(μž‘μ—…)둜 κ΅¬λΆ„ν•˜μ—¬ μ·¨κΈ‰ν•˜κ³  μžˆλ‹€.
  • ν•˜λ‚˜μ˜ ν”„λ‘œμ„ΈμŠ€λŠ” μ—¬λŸ¬ 개의 μ“°λ ˆλ“œλ₯Ό κ°€μ§ˆ 수 μžˆλ‹€.
  • μ“°λ ˆλ“œλŠ” μ œμ–΄μ˜ 흐름을 μ˜λ―Έν•˜κ³ , μ΄λŠ” ν”„λ‘œμ„ΈμŠ€μ—μ„œ μ‹€ν–‰μ˜ κ°œλ…λ§Œμ„ λΆ„λ¦¬ν•˜μ—¬ 싀행에 ν•„μš”ν•œ μ΅œμ†Œν•œμ˜ μ •λ³΄λ§Œμ„ 가지고 μ“°λ ˆλ“œλΌλ¦¬λŠ” ν”„λ‘œμ„ΈμŠ€μ˜ μ‹€ν–‰ ν™˜κ²½μ„ κ³΅μœ ν•œλ‹€.
  • ν•˜λ‚˜μ˜ ν”„λ‘œμ„ΈμŠ€μ—μ„œ 닀쀑 μ“°λ ˆλ“œλ₯Ό 이용 μ‹œ μ—¬λŸ¬ 개의 CPU ν˜Ήμ€ CPUκ°€ 멀티코어인 경우 병렬 μ²˜λ¦¬κ°€ κ°€λŠ₯해진닀.

3. μŠ€μΌ€μ€„λ§

CPUμ—κ²Œ μ–΄λ–€ μž‘μ—…λ“€μ„ ν• λ‹Ήν•˜μ—¬ μš°μ„ μ μœΌλ‘œ μ²˜λ¦¬ν•˜κ²Œ 할지, 처리 μˆœμ„œλ₯Ό κ²°μ •ν•˜λŠ” ν–‰μœ„

μŠ€μΌ€μ€„λ§ μ •μ±…

μš΄μ˜μ²΄μ œμ—μ„œ ν”„λ‘œμ„ΈμŠ€λ₯Ό μŠ€μΌ€μ€„λ§ν•  λ•Œμ—λŠ” 곡정성과 κ· ν˜•μ„ μ€‘μ‹œν•΄μ•Ό ν•œλ‹€.

  • μΌκ΄„μ²˜λ¦¬ 운영체제의 μŠ€μΌ€μ€„λ§ λͺ©ν‘œ
    • μ²˜λ¦¬λŸ‰ κ·ΉλŒ€ν™”, λ°˜ν™˜μ‹œκ°„ μ΅œμ†Œν™”, CPU ν™œμš© κ·ΉλŒ€ν™”
  • λŒ€ν™”ν˜• 운영체제의 μŠ€μΌ€μ€„λ§ λͺ©ν‘œ
    • λΉ λ₯Έ 응닡 μ‹œκ°„, κ³Όλ‹€ν•œ λŒ€κΈ°μ‹œκ°„ 방지

μœ„μ˜ λͺ©ν‘œλ“€μ€ μ„œλ‘œ μƒλ°˜λœ μ„±μ§ˆμ„ 가지고 μžˆμœΌλ―€λ‘œ λ™μ‹œμ— μΆ©μ‘±μ‹œν‚€κΈ°λŠ” μ–΄λ ΅λ‹€.

  • 선점 μŠ€μΌ€μ€„λ§ μ •μ±…
    • 진행 쀑인 μž‘μ—…μ— μΈν„°λŸ½νŠΈλ₯Ό κ±Έκ³  λ‹€λ₯Έ μž‘μ—…μ— CPUλ₯Ό ν• λ‹Ήν•˜λŠ” μ „λž΅μ΄λ‹€. μš°μ„ μˆœμœ„μ— 따라 μž‘μ—…μ΄ λ³€κ²½λœλ‹€. μž‘μ—…μ΄ 변경될 λ•Œ ν”„λ‘œμ„ΈμŠ€μ˜ μƒνƒœλ₯Ό PCB에 μ €μž₯ν•˜κ³  λ‹€λ₯Έ μž‘μ—…μœΌλ‘œ κ΅μ²΄ν•˜λŠ” λ¬Έλ§₯ κ΅ν™˜(Context Switching) μ΄ λ°œμƒν•˜λ©°, 이 과정이 λΉˆλ²ˆν•˜λ©΄ μ˜€λ²„ν—€λ“œκ°€ λ°œμƒν•œλ‹€.
  • 비선점 μŠ€μΌ€μ€„λ§ μ •μ±…
    • ν”„λ‘œμ„ΈμŠ€κ°€ μžμ›μ„ ν• λ‹Ήλ°›μ•„ 싀행에 λ“€μ–΄κ°€λ©΄ I/O μΈν„°λŸ½νŠΈκ°€ κ±Έλ¦¬κ±°λ‚˜ μ’…λ£Œλ  λ•ŒκΉŒμ§€ μ‹€ν–‰μƒνƒœμ— μžˆλŠ”λ‹€. 응닡 μ‹œκ°„μ˜ 예츑이 κ°€λŠ₯ν•˜λ©° 짧은 μž‘μ—…μ΄ κΈ΄ μž‘μ—…μ„ κΈ°λ‹€λ¦¬κ±°λ‚˜ 곡정성이 λ–¨μ–΄μ§ˆ 수 μžˆλ‹€.

μ°Έκ³ : λ¬΄ν•œλ£¨ν”„μ— λ“€μ–΄κ°„ μž‘μ—…μ˜ 경우 선점/비선점에 관계없이 μš΄μ˜μ²΄μ œκ°€ μΈν„°λŸ½νŠΈλ₯Ό 걸게 λœλ‹€.