λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
운영체제

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

by μ„œμ•„λž‘πŸ˜ 2023. 8. 30.

 

 

ν”„λ‘œμ„ΈμŠ€ μ œμ–΄ λΈ”둝(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λŠ” μš΄μ˜ μ²΄μ œμ™€ ν”„λ‘œμ„ΈμŠ€ κ°„μ˜ ν•΅μ‹¬μ μΈ μ—°κ²°κ³ λ¦¬λ‘œ μž‘μš©ν•˜λ©°, λ‹€μ€‘ μž‘μ—… ν™˜κ²½μ—μ„œμ˜ νš¨μœ¨μ μΈ μž‘μ—… μˆ˜ν–‰μ„ κ°€λŠ₯ν•˜κ²Œ ν•©λ‹ˆλ‹€.

 

λŒ“κΈ€