λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
⭐ Group_Study/Operating System

[1μ£Όμ°¨] Process Management

by ν¬μŠ€νŠΈμ‰μ΄ν¬ 2022. 12. 6.

Process Management

Job vs Process

βœ” μž‘μ—…(job) / ν”„λ‘œκ·Έλž¨ (Program)

  • μ‹€ν–‰ ν•  ν”„λ‘œκ·Έλž¨ + 데이터
  • 컴퓨터 μ‹œμŠ€ν…œμ— μ‹€ν–‰ μš”μ²­ μ „μ˜ μƒνƒœ

βœ” ν”„λ‘œμ„ΈμŠ€(Process)

  • 싀행을 μœ„ν•΄ μ‹œμŠ€ν…œ 컀널에 λ“±λ‘λœ μž‘μ—…
  • μ‹œμŠ€ν…œ μ„±λŠ₯ ν–₯상을 μœ„ν•΄ 컀털에 μ˜ν•΄ 관리됨

ν”„λ‘œμ„ΈμŠ€μ˜ μ •μ˜

βœ” 싀행쀑인 ν”„λ‘œκ·Έλž¨

  • 컀널에 λ“±λ‘λ˜κ³  μ»€λ„μ˜ 관리 ν•˜μ— μžˆλŠ” μž‘μ—…
  • 각쒅 μžμ›λ“€μ„ μš”μ²­ν•˜κ³  ν• λ‹Ή 받을 수 μžˆλŠ” 개체
  • ν”„λ‘œμ„ΈμŠ€ 관리 블둝 (PCB)을 ν• λ‹Ή 받은 개체
  • λŠ₯동적인 개체(active entity): μ‹€ν–‰ 쀑에 각쒅 μžμ›μ„ μš”κ΅¬, ν• λ‹Ή, λ°˜λ‚©ν•˜λ©° 진행

βœ” Process Control Block(PCB)

  • 컀널 곡간 (kernel space) 내에 쑴재
  • 각 ν”„λ‘œμ„ΈμŠ€λ“€μ— λŒ€ν•œ 정보 관리

ν”„λ‘œμ„ΈμŠ€μ˜ μ’…λ₯˜

μžμ› (Resource)

βœ” μ»€λ„μ˜ 관리 ν•˜μ— ν”„λ‘œμ„ΈμŠ€μ—κ²Œ ν• λ‹Ή/λ°˜λ‚©λ˜λŠ” μˆ˜λ™μ  개체(passive entity)
βœ” μžμ›μ˜ λΆ„λ₯˜

  • H/W resources: Processor, memory, disk, monitor...
  • S/W resources: Message, signal, files, installed SWs ...

Process Control Block (PCB)

βœ” OSκ°€ ν”„λ‘œμ„ΈμŠ€ 관리에 ν•„μš”ν•œ 정보 μ €μž₯
βœ” ν”„λ‘œμ„ΈμŠ€ 생성 μ‹œ 생성

PCBκ°€ κ΄€λ¦¬ν•˜λŠ” 정보

βœ” PID: Process Identification Number

  • ν”„λ‘œμ„ΈμŠ€ 고유 식별 번호

βœ” μŠ€μΌ€μ€„λ§ 정보

  • ν”„λ‘œμ„ΈμŠ€ μš°μ„ μˆœμœ„ λ“±κ³Ό 같은 μŠ€μΌ€μ€„λ§ κ΄€λ ¨ 정보

βœ” ν”„λ‘œμ„ΈμŠ€ μƒνƒœ

  • μžμ› ν• λ‹Ή, μš”μ²­ 정보 λ“±

βœ” λ©”λͺ¨λ¦¬ 관리 정보

  • Page table, segment table λ“±

βœ” μž…μΆœλ ₯ μƒνƒœ 정보

  • ν• λ‹Ή 받은 μž…μΆœλ ₯ μž₯치, 파일 등에 λŒ€ν•œ 정보 λ“±

βœ” λ¬Έλ§₯ μ €μž₯ μ˜μ—­(context save area)

  • ν”„λ‘œμ„ΈμŠ€μ˜ λ ˆμ§€μŠ€ν„° μƒνƒœλ₯Ό μ €μž₯ν•˜λŠ” 곡간 λ“±

βœ” 계정 정보

  • μžμ› μ‚¬μš© μ‹œκ°„ 등을 관리

ν”„λ‘œμ„ΈμŠ€μ˜ μƒνƒœ (Process States)

βœ” ν”„λ‘œμ„ΈμŠ€ - μžμ› κ°„μ˜ μƒν˜Έ μž‘μš©μ— μ˜ν•΄ κ²°μ •
βœ” ν”„λ‘œμ„ΈμŠ€ μƒνƒœ 및 νŠΉμ„±

Process State Transition Diagram

Created State

βœ” μž‘μ—…(job)λ₯Ό 컀널에 등둝
βœ” PCB ν• λ‹Ή 및 ν”„λ‘œμ„ΈμŠ€ 셍성
βœ” 컀널: κ°€μš© λ©”λͺ¨λ¦¬ 곡간 체크 및 ν”„λ‘œμ„ΈμŠ€ μƒνƒœ 전이

  • Ready or Suspended ready

Ready State

βœ” ν”„λ‘œμ„Έμ„œ 외에 λ‹€λ₯Έ λͺ¨λ“  μžμ›μ„ ν• λ‹Ή 받은 μƒνƒœ

  • ν”„λ‘œμ„Έμ„œ ν• λ‹Ή λŒ€κΈ° μƒνƒœ
  • μ¦‰μ‹œ μ‹€ν–‰ κ°€λŠ₯ μƒνƒœ

βœ” Dispatch (or Shedule)

  • Ready -> running

Running State

βœ” ν”„λ‘œμ„Έμ„œμ™€ ν•„μš”ν•œ μžμ›μ„ λͺ¨λ‘ ν• λ‹Ή 받은 μƒνƒœ

βœ” Preemption

  • running -> ready
  • ν”„λ‘œμ„Έμ„œ μŠ€μΌ€μ€„λ§

βœ” Block/sleep

  • running -> asleep
  • I/O λ“± μžμ› ν• λ‹Ή μš”μ²­

Blocked/Asleep State

βœ” ν”„λ‘œμ„Έμ„œ 외에 λ‹€λ₯Έ μžμ›μ„ κΈ°λ‹€λ¦¬λŠ” μƒνƒœ

  • μžμ› 할당은 System Call에 μ˜ν•΄ 이루어진닀

βœ” Wake-up

  • Alseep -> Ready

Suspended State

βœ” λ©”λͺ¨λ¦¬λ₯Ό ν• λ‹Ή 받지 λͺ»ν•œ(λΉΌμ•—κΈ΄) μƒνƒœ

  • Memory image(λ©”λͺ¨λ¦¬μ˜ μƒνƒœ)λ₯Ό swap device에 보관
  • Swap Device: ν”„λ‘œκ·Έλž¨ 정보 μ €μž₯을 μœ„ν•΄ νŠΉλ³„ν•œ 파일 μ‹œμŠ€ν…œ
  • 컀널 λ˜λŠ” μ‚¬μš©μžμ— μ˜ν•΄ λ°œμƒ

βœ” Swap-out(suspended), Swap-in(resume)

Terminated/Zombie State

βœ” ν”„λ‘œμ„ΈμŠ€ μˆ˜ν–‰μ΄ λλ‚œ μƒνƒœ
βœ” λͺ¨λ“  μžμ› λ°˜λ‚© ν›„, 컀널 내에 일뢀 PCB μ •λ³΄λ§Œ 남아 μžˆλŠ” μƒνƒœ

  • 이후 ν”„λ‘œμ„ΈμŠ€ 관리λ₯Ό μœ„ν•΄ 정보 μˆ˜μ§‘

ν”„λ‘œμ„ΈμŠ€ 관리λ₯Ό μœ„ν•œ 자료 ꡬ쑰

βœ” Ready Queue
βœ” I/O Queue
βœ” Device Queue

'⭐ Group_Study > Operating System' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

[2μ£Όμ°¨] Process Scheduling  (0) 2022.12.13
[2μ£Όμ°¨] Thread Management  (0) 2022.12.12
[1μ£Όμ°¨] Process Management: Interrupt, Context Switching  (0) 2022.12.07
[1μ£Όμ°¨] OS Overview  (1) 2022.12.05
[1μ£Όμ°¨] Computer System Overview  (0) 2022.12.04

λŒ“κΈ€