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

2023. 8. 30. 00:31·컴퓨터 ꡬ쑰 & 운영체제

 

 

ν”„λ‘œμ„ΈμŠ€ μ œμ–΄ λΈ”둝(PCB)은 μš΄μ˜ μ²΄μ œμ—μ„œ λ‹€μ€‘ μž‘업을 κ΄€λ¦¬ν•˜κ³  ν”„λ‘œμ„ΈμŠ€λ₯Ό νš¨μœ¨μ μœΌλ‘œ μ‹€ν–‰ν•˜κΈ° μœ„ν•΄ μ‚¬μš©λ˜λŠ” μ€‘μš”ν•œ λ°μ΄ν„° κ΅¬μ‘°μž…λ‹ˆλ‹€. μ΄ ν¬μŠ€νŒ…μ—μ„œλŠ” PCB의 κ°œλ…κ³Ό μ—­ν• , κ·Έλ¦¬κ³  μš΄μ˜ μ²΄μ œμ™€μ˜ κ΄€λ ¨μ„±μ— λŒ€ν•΄ μ•Œμ•„λ³΄κ² μŠ΅λ‹ˆλ‹€.

 

 

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

ν”„λ‘œμ„ΈμŠ€ μ œμ–΄ λΈ”둝(PCB)은 μš΄μ˜ μ²΄μ œμ™€ λ°€μ ‘ν•œ μ—°κ΄€μ΄ μžˆλŠ” κ°œλ…μž…λ‹ˆλ‹€. μš΄μ˜ μ²΄μ œλŠ” μ—¬λŸ¬ κ°œμ˜ ν”„λ‘œμ„ΈμŠ€λ₯Ό λ™μ‹œμ— κ΄€λ¦¬ν•˜κ³  μ‹€ν–‰ν•˜λŠ” μ—­ν• μ„ μˆ˜ν–‰ν•˜λŠ”λ°, μ΄λ₯Ό μœ„ν•΄ PCBλ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€. PCBλŠ” κ° ν”„λ‘œμ„ΈμŠ€μ˜ μ •보λ₯Ό μ €μž₯ν•˜κ³  μΆ”μ ν•˜λŠ” μ—­ν• μ„ ν•©λ‹ˆλ‹€.

PCBλŠ” ν”„λ‘œμ„ΈμŠ€μ˜ μ •보λ₯Ό λ‹΄κ³  μžˆλŠ” λ°μ΄ν„° κ΅¬μ‘°λ‘œ, κ° ν”„λ‘œμ„ΈμŠ€λ§ˆλ‹€ ν•˜λ‚˜μ”© ν• λ‹Ήλ©λ‹ˆλ‹€. PCBμ—λŠ” ν•΄λ‹Ή ν”„λ‘œμ„ΈμŠ€μ™€ κ΄€λ ¨λœ μ—¬λŸ¬ κ°€μ§€ μ •보듀이 μ €μž₯λ©λ‹ˆλ‹€. μ΄ μ •보듀은 ν”„λ‘œμ„ΈμŠ€μ˜ μƒνƒœ, λ ˆμ§€μŠ€ν„° κ°’, μ‹€ν–‰ μœ„μΉ˜, μš°μ„  μˆœμœ„, μžμ› ν• λ‹Ή μ •보, μž…μΆœλ ₯ μƒνƒœ λ“±μ„ ν¬ν•¨ν•©λ‹ˆλ‹€. PCBλŠ” ν”„λ‘œμ„ΈμŠ€κ°€ μƒμ„±λ˜κ³  μ‹€ν–‰λ˜λŠ” λ™μ•ˆ ν•„μš”ν•œ λͺ¨λ“  μ •보λ₯Ό μœ μ§€ν•˜λ©°, μš΄μ˜ μ²΄μ œκ°€ ν”„λ‘œμ„ΈμŠ€ κ΄€λ¦¬ μž‘업을 μˆ˜ν–‰ν•˜λŠ” λ° ν•„μˆ˜μ μž…λ‹ˆλ‹€.

 

 

 

PCB의 μ—­ν• 

1. CPU μŠ€μΌ€μ€„λ§: μ—¬λŸ¬ ν”„λ‘œμ„ΈμŠ€κ°€ CPUλ₯Ό κ³΅μœ ν•˜λŠ” ν™˜κ²½μ—μ„œ, 운영 μ²΄μ œλŠ” μ–΄λ–€ ν”„λ‘œμ„ΈμŠ€λ₯Ό μ–Όλ§ˆ λ™μ•ˆ μ‹€ν–‰μ‹œν‚¬μ§€ κ²°μ •ν•΄μ•Ό ν•©λ‹ˆλ‹€. μ΄λ•Œ PCB에 μ €μž₯된 ν”„λ‘œμ„ΈμŠ€μ˜ μš°μ„  μˆœμœ„μ™€ μƒνƒœ 정보λ₯Ό ν™œμš©ν•˜μ—¬ μ μ ˆν•œ μŠ€μΌ€μ€„λ§μ„ μˆ˜ν–‰ν•©λ‹ˆλ‹€.

2. ν”„λ‘œμ„ΈμŠ€ μƒνƒœ 관리: PCBλŠ” ν”„λ‘œμ„ΈμŠ€μ˜ μƒνƒœλ₯Ό μΆ”μ ν•˜κΈ° μœ„ν•΄ μ‚¬μš©λ©λ‹ˆλ‹€. ν”„λ‘œμ„ΈμŠ€κ°€ μƒμ„±λ˜λ©΄ μ€€λΉ„ μƒνƒœ(Ready), μ‹€ν–‰ μƒνƒœ(Running), λŒ€κΈ° μƒνƒœ(Waiting) λ“±μ˜ μƒνƒœλ‘œ λ³€ν™”ν•˜λ©°, μ΄λŸ¬ν•œ μƒνƒœ λ³€ν™”λ₯Ό PCB에 λ°˜μ˜ν•˜μ—¬ κ΄€λ¦¬ν•©λ‹ˆλ‹€.

3. λ¬Έλ§₯ μ „ν™˜: CPUλŠ” μ—¬λŸ¬ ν”„λ‘œμ„ΈμŠ€ μ‚¬μ΄μ—μ„œ λΉ λ₯΄κ²Œ μ „ν™˜λ©λ‹ˆλ‹€. μ΄λ•Œ ν˜„μž¬ μ‹€ν–‰ 쀑인 ν”„λ‘œμ„ΈμŠ€μ˜ μƒνƒœλ₯Ό μ €μž₯ν•˜κ³ , λ‹€μŒ μ‹€ν–‰ν•  ν”„λ‘œμ„ΈμŠ€μ˜ μƒνƒœλ₯Ό 볡원해야 ν•©λ‹ˆλ‹€. PCB에 μ €μž₯된 λ ˆμ§€μŠ€ν„° κ°’ 등은 μ΄λŸ¬ν•œ λ¬Έλ§₯ μ „ν™˜μ΄ μ›ν™œν•˜κ²Œ 이루어지도둝 λ„μ™€μ€λ‹ˆλ‹€.

4. μžμ› 관리: PCBλŠ” ν”„λ‘œμ„ΈμŠ€μ—κ²Œ ν• λ‹Ήλœ μžμ› 정보도 ν¬ν•¨ν•©λ‹ˆλ‹€. 이λ₯Ό 톡해 운영 μ²΄μ œλŠ” λ©”λͺ¨λ¦¬, μž…μΆœλ ₯ μž₯치 λ“±μ˜ μžμ›μ„ 효율적으둜 κ΄€λ¦¬ν•˜λ©° ν”„λ‘œμ„ΈμŠ€μ— ν•„μš”ν•œ μžμ›μ„ ν• λ‹Ήν•©λ‹ˆλ‹€.

 

 

 

PCBκ°€ ν¬ν•¨ν•˜λŠ” 정보

ν”„λ‘œμ„ΈμŠ€ μ œμ–΄ 블둝(PCB)μ—λŠ” λ‹€μ–‘ν•œ 정보가 포함될 수 μžˆμŠ΅λ‹ˆλ‹€. 주둜 λ‹€μŒκ³Ό 같은 정보듀이 ν¬ν•¨λ©λ‹ˆλ‹€.



1. ν”„λ‘œμ„ΈμŠ€ μ‹λ³„μž(Process ID): κ° ν”„λ‘œμ„ΈμŠ€λ₯Ό μ‹λ³„ν•˜λŠ” κ³ μœ ν•œ λ²ˆν˜Έ λ˜λŠ” μ‹λ³„μžμž…λ‹ˆλ‹€.
2. ν”„λ‘œμ„ΈμŠ€ μƒνƒœ(Process State): ν”„λ‘œμ„ΈμŠ€μ˜ ν˜„μž¬ μƒνƒœλ₯Ό λ‚˜νƒ€λƒ…λ‹ˆλ‹€. μ˜ˆλ₯Ό λ“€μ–΄, μ‹€ν–‰ μ€‘인지, λŒ€κΈ° μ€‘인지, μΌμ‹œ μ€‘λ‹¨λœ μƒνƒœμΈμ§€ λ“±μ΄ μžˆμŠ΅λ‹ˆλ‹€.
3. ν”„λ‘œκ·Έλž¨ μΉ΄μš΄ν„°(Program Counter): λ‹€μŒμ— μ‹€ν–‰ν•  λͺ…λ Ήμ–΄μ˜ μ£Όμ†Œλ₯Ό κ°€λ¦¬ν‚€λŠ” λ ˆμ§€μŠ€ν„° κ°’μž…λ‹ˆλ‹€.
4. λ ˆμ§€μŠ€ν„° κ°’(Registers): ν”„λ‘œμ„ΈμŠ€μ˜ λ ˆμ§€μŠ€ν„° μƒνƒœλ₯Ό μ €μž₯ν•©λ‹ˆλ‹€. μ΄λŠ” ν”„λ‘œμ„ΈμŠ€κ°€ μ€‘λ‹¨λ˜κ±°λ‚˜ μž¬κ°œλ  λ•Œ μ€‘μš”ν•œ μ •λ³΄μž…λ‹ˆλ‹€.
5. μš°μ„  μˆœμœ„(Priority): λ‹€μ€‘ μž‘μ—… ν™˜κ²½μ—μ„œ ν”„λ‘œμ„ΈμŠ€μ— ν• λ‹Ήλ˜λŠ” μš°μ„  μˆœμœ„λ₯Ό λ‚˜νƒ€λƒ…λ‹ˆλ‹€.
6. CPU μ‚¬μš©λŸ‰ λ° μ‹€ν–‰ μ‹œκ°„: ν”„λ‘œμ„ΈμŠ€κ°€ CPUλ₯Ό μ‚¬μš©ν•œ μ‹œκ°„을 μΆ”μ ν•˜λŠ” μ •보가 ν¬ν•¨λ©λ‹ˆλ‹€.
7. λ©”λͺ¨λ¦¬ κ΄€λ¦¬ μ •보: ν”„λ‘œμ„ΈμŠ€κ°€ μ‚¬μš©ν•˜λŠ” λ©”λͺ¨λ¦¬ μ˜μ—­μ— λŒ€ν•œ μ •보, ν• λ‹Ήλœ λ©”λͺ¨λ¦¬μ˜ μœ„μΉ˜ λ“±μ„ ν¬ν•¨ν•©λ‹ˆλ‹€.
8. μž…μΆœλ ₯ μƒνƒœ μ •보: ν”„λ‘œμ„ΈμŠ€κ°€ μ–΄λ–€ μž…μΆœλ ₯ μž‘업을 μš”μ²­ν•˜μ˜€λŠ”μ§€, ν•΄λ‹Ή μž‘μ—…μ˜ μƒνƒœ λ“±μ„ λ‚˜νƒ€λƒ…λ‹ˆλ‹€.
9. μžμ› ν• λ‹Ή μ •보: ν”„λ‘œμ„ΈμŠ€μ—κ²Œ ν• λ‹Ήλœ μžμ›(λ©”λͺ¨λ¦¬, μž…μΆœλ ₯ μž₯치 λ“±)에 λŒ€ν•œ μ •보λ₯Ό λ‹΄μ„ μˆ˜ μžˆμŠ΅λ‹ˆλ‹€.

이 μ™Έμ—λ„ μš΄μ˜ μ²΄μ œμ˜ μ’…λ₯˜λ‚˜ κΈ°λŠ₯에 λ”°λΌ PCB에 ν¬ν•¨λ˜λŠ” μ •보가 λ‹¬λΌμ§ˆ μˆ˜ μžˆμŠ΅λ‹ˆλ‹€. PCBλŠ” ν”„λ‘œμ„ΈμŠ€μ˜ κ΄€λ¦¬μ™€ μŠ€μΌ€μ€„λ§μ„ νš¨μœ¨μ μœΌλ‘œ μˆ˜ν–‰ν•˜κΈ° μœ„ν•œ μ€‘μš”ν•œ λ°μ΄ν„° κ΅¬μ‘°μž…λ‹ˆλ‹€.

 

 


운영 μ²΄μ œμ™€μ˜ κ΄€λ ¨μ„±

PCBλŠ” 운영 체제의 핡심 κ°œλ… 쀑 ν•˜λ‚˜λ‘œ, 닀쀑 μž‘μ—… ν™˜κ²½μ—μ„œ ν”„λ‘œμ„ΈμŠ€λ₯Ό 효율적으둜 κ΄€λ¦¬ν•˜κΈ° μœ„ν•΄ ν•„μˆ˜μ μž…λ‹ˆλ‹€. 운영 μ²΄μ œλŠ” PCBλ₯Ό ν™œμš©ν•˜μ—¬ CPU μŠ€μΌ€μ€„λ§, ν”„λ‘œμ„ΈμŠ€ μƒνƒœ 관리, λ¬Έλ§₯ μ „ν™˜μ΄λ‚˜ μžμ› ν• λ‹Ή λ“± λ‹€μ–‘ν•œ μž‘μ—…μ„ μˆ˜ν–‰ν•©λ‹ˆλ‹€. PCBλ₯Ό 톡해 운영 μ²΄μ œλŠ” μ—¬λŸ¬ ν”„λ‘œμ„ΈμŠ€λ₯Ό μ‘°μœ¨ν•˜λ©° μ‹œμŠ€ν…œμ˜ μ•ˆμ •μ„±κ³Ό μ„±λŠ₯을 μœ μ§€ν•©λ‹ˆλ‹€.

이와 κ°™μ΄, PCBλŠ” μš΄μ˜ μ²΄μ œμ™€ ν”„λ‘œμ„ΈμŠ€ κ°„μ˜ ν•΅μ‹¬μ μΈ μ—°κ²°κ³ λ¦¬λ‘œ μž‘μš©ν•˜λ©°, λ‹€μ€‘ μž‘μ—… ν™˜κ²½μ—μ„œμ˜ νš¨μœ¨μ μΈ μž‘μ—… μˆ˜ν–‰μ„ κ°€λŠ₯ν•˜κ²Œ ν•©λ‹ˆλ‹€.

 

μ €μž‘μžν‘œμ‹œ (μƒˆμ°½μ—΄λ¦Ό)

'컴퓨터 ꡬ쑰 & 운영체제' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

컀널(Kernel)κ³Ό μΈν„°νŽ˜μ΄μŠ€(Interface)  (0) 2023.09.12
ν°λ…Έμ΄λ§Œ κ΅¬μ‘°λž€?  (0) 2023.09.05
IPC(Inter-Process Communication, ν”„λ‘œμ„ΈμŠ€ κ°„ 톡신)  (0) 2023.08.29
Context Switching(λ¬Έλ§₯ κ΅ν™˜)  (2) 2023.08.28
OSκ°€ κ΄€λ¦¬ν•˜λŠ” λ©”λͺ¨λ¦¬ μ˜μ—­  (0) 2023.08.27
'컴퓨터 ꡬ쑰 & 운영체제' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€
  • 컀널(Kernel)κ³Ό μΈν„°νŽ˜μ΄μŠ€(Interface)
  • ν°λ…Έμ΄λ§Œ κ΅¬μ‘°λž€?
  • IPC(Inter-Process Communication, ν”„λ‘œμ„ΈμŠ€ κ°„ 톡신)
  • Context Switching(λ¬Έλ§₯ κ΅ν™˜)
μ„œμ•„λž‘πŸ˜ƒ
μ„œμ•„λž‘πŸ˜ƒ
Just Do ItπŸ’ͺ
  • μ„œμ•„λž‘πŸ˜ƒ
    G-Stack
    μ„œμ•„λž‘πŸ˜ƒ
  • 전체
    였늘
    μ–΄μ œ
    • 전체보기 (144)
      • ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄ (78)
        • C++ 기초 (28)
        • C++ μ‘μš© (18)
        • Python (18)
        • JavaScript & NodeJS (0)
        • Go (12)
        • React & NextJS (2)
        • Java (0)
      • AI (2)
      • 컴퓨터 ꡬ쑰 & 운영체제 (31)
      • μ•Œκ³ λ¦¬μ¦˜ (12)
      • λ°μ΄ν„°λ² μ΄μŠ€ (5)
      • λ„€νŠΈμ›Œν¬ (3)
      • λ””μžμΈνŒ¨ν„΄ (5)
      • μ„œλΉ„μŠ€ & 툴 (7)
      • νŠΈλ Œλ“œ&이슈 (1)
  • λΈ”λ‘œκ·Έ 메뉴

    • ν™ˆ
    • νƒœκ·Έ
    • λ°©λͺ…둝
  • 링크

  • 곡지사항

    • GμŠ€νƒμ˜ 기술 λΈ”λ‘œκ·Έ
  • 인기 κΈ€

  • νƒœκ·Έ

    컴퓨터
    pointer
    λ©”λͺ¨λ¦¬
    μž¬κ·€
    c
    STD
    νŒŒμΌμž…μΆœλ ₯
    반볡문
    go
    c++
    ν•˜λ“œλ””μŠ€ν¬
    μŠ€νƒ
    Thread
    가상메λͺ¨λ¦¬
    νŒ¨ν‚€μ§€
    fork
    ν•¨μˆ˜
    RAM
    포인터
    cpu
    λ°°μ—΄
    λ°μ΄ν„°λ² μ΄μŠ€
    상속
    μ•Œκ³ λ¦¬μ¦˜
    λ””μžμΈνŒ¨ν„΄
    init
    파이썬
    쑰건문
    component
    λ³€μˆ˜
  • 졜근 λŒ“κΈ€

  • 졜근 κΈ€

  • hELLOΒ· Designed Byμ •μƒμš°.v4.10.6
μ„œμ•„λž‘πŸ˜ƒ
ν”„λ‘œμ„ΈμŠ€ μ œμ–΄ 블둝(PCB, Process Control Block)
μƒλ‹¨μœΌλ‘œ

ν‹°μŠ€ν† λ¦¬νˆ΄λ°”