[CS : Operating System] PCB & Context Switching

๊ตผ๋ฒต์šค ใ…ฃ 2024. 1. 21. 09:00

PCB & Context Switching

๐Ÿ’กํ”„๋กœ์„ธ์Šค ๊ด€๋ฆฌ
๊ตฌ๋™์ค‘์ธ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์—ฌ๋Ÿฌ ๊ฐœ์ผ ๋•Œ, CPU ์Šค์ผ€์ค„๋ง์„ ํ†ตํ•ด ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ
→ ๊ฐ๊ธฐ ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ตฌ๋ถ„ํ•˜๊ธฐ ์œ„ํ•ด ๊ฐ ํ”„๋กœ์„ธ์Šค์˜ ํŠน์ง•์„ ๊ฐ€์ง„ Process Metadata ํ™œ์šฉ
๐Ÿ’ก๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ๊ตฌ์„ฑ ์ •๋ณด
1๏ธโƒฃ ํ”„๋กœ์„ธ์Šค ๊ณ ์œ  ID(PID)
2๏ธโƒฃ ํ”„๋กœ์„ธ์Šค ์ƒํƒœ
3๏ธโƒฃ ํ”„๋กœ์„ธ์Šค ์šฐ์„  ์ˆœ์œ„
4๏ธโƒฃ Program Counter(PC)
5๏ธโƒฃ CPU ๋ ˆ์ง€์Šคํ„ฐ
6๏ธโƒฃ Owner
7๏ธโƒฃ Memory Limit …

๐Ÿ“Œ PCB(Process Control Block)

 

Storage - process ๋‚ด๋ถ€ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„

 

โœ… ํ”„๋กœ์„ธ์Šค๋“ค์˜ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ๊ณณ

โœ… 1๊ฐœ์˜ PCB = 1๊ฐœ์˜ ํ”„๋กœ์„ธ์Šค ์ •๋ณด

โœ… ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰(๋ฉ”๋ชจ๋ฆฌ ์ ์žฌ)

      → ํ”„๋กœ์„ธ์Šค ์ƒ์„ฑ & ํ”„๋กœ์„ธ์Šค ์ฃผ์†Œ ๊ณต๊ฐ„์— ์ฝ”๋“œ, ๋ฐ์ดํ„ฐ, ์Šคํƒ ๊ณต๊ฐ„ ์ƒ์„ฑ

      → ํ•ด๋‹น ํ”„๋กœ์„ธ์Šค์˜ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ PCB์— ์ €์žฅ

โœ… Linked List ํ˜•ํƒœ

     • ์ฃผ์†Œ๊ฐ’์œผ๋กœ ์—ฐ๊ฒฐ๋œ ํ˜•ํƒœ(์‚ฝ์ž… & ์‚ญ์ œ ์šฉ์ด)

     • PCB List Head์—  PCB๋“ค์ด ์ƒ์„ฑ๋  ๋•Œ๋งˆ๋‹ค ์ด์–ด๋ถ™์Œ. 

 

 

๐Ÿค” ์–ด๋–ค ํ”„๋กœ์„ธ์Šค๋กœ๋ถ€ํ„ฐ ์ธํ„ฐ๋ŸฝํŠธ ๋ฐœ์ƒ, ํ˜„์žฌ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ž ์‹œ ๋Œ€๊ธฐ ์ƒํƒœ๊ฐ€ ๋˜๊ณ  ์ธํ„ฐ๋ŸฝํŠธ๊ฐ€ ๋ฐœ์ƒ๋œ ํ”„๋กœ์„ธ์Šค๋ฅผ ์‹คํ–‰ ์ƒํƒœ๋กœ ๋ฐ”๊ฟ€ ๋•Œ, ๋Œ€๊ธฐ ์ค‘์ธ ํ”„๋กœ์„ธ์Šค์˜ ์ •๋ณด๋Š”?
โžก๏ธ ๋Œ€๊ธฐ ์ƒํƒœ๋กœ ๋ฐ”๋€Œ๊ธฐ ์ง์ „์˜ ์‹คํ–‰ ์ •๋ณด๋ฅผ ๊ณ ์Šค๋ž€ํžˆ ์ €์žฅํ•ด๋‘์–ด ๋‹ค์‹œ ์‹คํ–‰ ์ƒํƒœ๋กœ ๋Œ์•„์™”์„ ๋•Œ ์ง์ „์˜ ์‹คํ–‰ ์ •๋ณด์— ์ด์–ด์„œ ํ”„๋กœ์„ธ์Šค ์‹คํ–‰ ํ•˜๊ธฐ ์œ„ํ•ด PCB ํ•„์š”
๐Ÿ’ก ํ”„๋กœ์„ธ์Šค A → B ๊ต์ฒด ๊ณผ์ •
1๏ธโƒฃ B ์—์„œ ์ธํ„ฐ๋ŸฝํŠธ ๋ฐœ์ƒ
2๏ธโƒฃ A ์˜ ํ˜„์žฌ ์‹คํ–‰ ์ •๋ณด๋ฅผ PCB ์— ์ €์žฅ
3๏ธโƒฃ A ๋ฅผ ๋Œ€๊ธฐ ์ƒํƒœ๋กœ ๋Œ๋ฆฌ๊ณ  B ๋ฅผ ์‹คํ–‰ ์ƒํƒœ๋กœ ์ „ํ™˜
4๏ธโƒฃ B ์˜ PCB ์ •๋ณด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์‹คํ–‰ ์žฌ๊ฐœ
5๏ธโƒฃ B ๊ฐ€ ์›ํ•˜๋Š” ๋™์ž‘์„ ๋ชจ๋‘ ์ˆ˜ํ–‰ํ•จ
6๏ธโƒฃ B ์˜ ํ˜„์žฌ ์‹คํ–‰ ์ •๋ณด๋ฅผ PCB ์— ์ €์žฅ
7๏ธโƒฃ B ๋ฅผ ๋Œ€๊ธฐ ์ƒํƒœ๋กœ ๋Œ๋ฆฌ๊ณ  A ๋ฅผ ์‹คํ–‰ ์ƒํƒœ๋กœ ์ „ํ™˜
8๏ธโƒฃ A ์˜ PCB ์ •๋ณด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์‹คํ–‰ ์žฌ๊ฐœ

๐Ÿ“Œ Context Switching

์‹คํ–‰์ค‘์ธ ํ”„๋กœ์„ธ์Šค์˜ ์ƒํƒœ๋ฅผ PCB ์— ๋ณด๊ด€ํ•˜๊ณ , ์ƒˆ๋กœ ๋“ค์–ด์˜ค๋Š” ํ”„๋กœ์„ธ์Šค์˜ PCB ์ •๋ณด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ๋ ˆ์ง€์Šคํ„ฐ์— ๊ฐ’์„ ์ ์žฌํ•˜๋Š” ๊ณผ์ •

โœ… ์ธํ„ฐ๋ŸฝํŠธ ๋ฐœ์ƒ, ํ˜„์žฌ ํ”„๋กœ์„ธ์Šค์˜ ์„ ์  ํ—ˆ์šฉ ๊ธฐ๊ฐ„์„ ๋ชจ๋‘ ์†Œ๋ชจํ•œ ์ƒํ™ฉ, ์ž…์ถœ๋ ฅ์„ ์œ„ํ•ด ๋Œ€๊ธฐํ•˜๋Š” ๊ฒฝ์šฐ์— ๋ฐœ์ƒ

โ›” Context Switching ํ•˜๋Š” ๋™์•ˆ CPU ๋‹ค๋ฅธ ์ž‘์—… ์‹คํ–‰ ๋ถˆ๊ฐ€
    → ์“ฐ๋ ˆ๋“œ ๋ฐ ํ”„๋กœ์„ธ์Šค์˜ ๊ฐœ์ˆ˜๊ฐ€ ๋งŽ์•„์ ธ Context Switching์ด ๋นˆ๋ฒˆํ•˜๊ฒŒ ์ผ์–ด๋‚˜๋ฉด ์„ฑ๋Šฅ ์•…ํ™”
        = Context Switching Overhead

๐Ÿ“Œ ์ฐธ๊ณ  ๋ธ”๋กœ๊ทธ

https://velog.io/@haero_kim/PCB-%EC%99%80-Context-Switching-%EC%95%8C%EC%95%84%EB%B3%B4%EA%B8%B0

 

PCB ์™€ Context Switching ์•Œ์•„๋ณด๊ธฐ

์ˆ˜๋งŽ์€ ํ”„๋กœ์„ธ์Šค๋“ค์„ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ PCB

velog.io

 

๋ฐ˜์‘ํ˜•