๐Ÿ“— CS

[OS] PCB, ์Šค์ผ€์ฅด๋ง, ํ”„๋กœ์„ธ์Šค์™€ ์“ฐ๋ ˆ๋“œ, Context Switching, ๊ต์ฐฉ ์ƒํƒœ(DeadLock), ํŽ˜์ด์ง€ ๊ต์ฒด ์•Œ๊ณ ๋ฆฌ์ฆ˜

jcowwk 2025. 1. 23. 21:30

PCB, ์Šค์ผ€์ฅด๋ง, ํ”„๋กœ์„ธ์Šค์™€ ์“ฐ๋ ˆ๋“œ, Context Switching, ๊ต์ฐฉ ์ƒํƒœ(DeadLock),  ํŽ˜์ด์ง€ ๊ต์ฒด ์•Œ๊ณ ๋ฆฌ์ฆ˜


1. PCB

2. ์Šค์ผ€์ฅด๋ง

3. ํ”„๋กœ์„ธ์Šค์™€ ์“ฐ๋ ˆ๋“œ

4. Context Switching

5. ๊ต์ฐฉ ์ƒํƒœ(DeaLock)

6. ํŽ˜์ด์ง€ ๊ต์ฒด ์•Œ๊ณ ๋ฆฌ์ฆ˜


1. PCB

PCB(Process Control Block)๋Š” ์šด์˜์ฒด์ œ์—์„œ ํ”„๋กœ์„ธ์Šค์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค.

ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‹คํ–‰๋˜๋Š” ๋™์•ˆ PCB๋ฅผ ํ†ตํ•ด ํ”„๋กœ์„ธ์Šค์˜ ์ƒํƒœ, CPU ๋ ˆ์ง€์Šคํ„ฐ ๊ฐ’, ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ์ •๋ณด ๋“ฑ์„ ์ถ”์ ํ•ฉ๋‹ˆ๋‹ค.

 

2. ์Šค์ผ€์ฅด๋ง

์šด์˜์ฒด์ œ์—์„œ ์—ฌ๋Ÿฌ ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ , CPU ์ž์›์„ ์–ด๋–ค ํ”„๋กœ์„ธ์Šค๊ฐ€ ์–ธ์ œ ์‚ฌ์šฉํ• ์ง€ ๊ฒฐ์ •ํ•˜๋Š” ๊ณผ์ •์ž…๋‹ˆ๋‹ค.

 

- FCFS(First-Come, First-Served)

๋จผ์ € ๋„์ฐฉํ•œ ํ”„๋กœ์„ธ์Šค ๋จผ์ € ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

 

- SJF (Shortest Job First)

์‹คํ–‰ ์‹œ๊ฐ„์ด ๊ฐ€์žฅ ์งง์€ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋จผ์ € ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

 

- Round Robin

๊ฐ ํ”„๋กœ์„ธ์Šค์—๊ฒŒ ๋™์ผํ•œ ์‹œ๊ฐ„์„ ํ• ๋‹นํ•˜๊ณ  ๊ทธ ์‹œ๊ฐ„์ด ๋๋‚˜๋ฉด ๋‹ค์‹œ ๋Œ€๊ธฐ ํ ๋’ค๋กœ ๊ฐ€๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

๋™์ผํ•œ ์‹œ๊ฐ„์„ ํ• ๋‹นํ•˜๋Š” ๊ฒƒ์„ ํƒ€์ž„ ํ€€ํ…€(Time Quantum)์ด๋ผ๊ณ  ์ด๋Š” ์‹œ์Šคํ…œ์˜ ํšจ์œจ์„ฑ์— ์˜ํ–ฅ์„ ๋ฏธ์นฉ๋‹ˆ๋‹ค.

๋„ˆ๋ฌด ์งง์œผ๋ฉด Context Switching์ด ์ž์ฃผ ๋ฐœ์ƒํ•˜์—ฌ ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ์ปค์ง€๊ณ , ๋„ˆ๋ฌด ๊ธธ๋ฉด ๋ฐ˜์‘ ์†๋„๊ฐ€ ๋–จ์–ด์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

- Priority Scheduling

๊ฐ ํ”„๋กœ์„ธ์Šค์— ์šฐ์„ ์ˆœ์œ„๋ฅผ ๋ถ€์—ฌํ•˜๊ณ , ๋†’์€ ์šฐ์„ ์ˆœ์œ„์˜ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋จผ์ € ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

 

3. ํ”„๋กœ์„ธ์Šค์™€ ์“ฐ๋ ˆ๋“œ

ํ”„๋กœ์„ธ์Šค(Process)๋Š” ์‹คํ–‰ ์ค‘์ธ ํ”„๋กœ๊ทธ๋žจ์ด๊ณ , ์Šค๋ ˆ๋“œ(Sread)๋Š” ํ”„๋กœ์„ธ์Šค ๋‚ด์—์„œ ์‹คํ–‰๋˜๋Š” ์ž‘์€ ๋‹จ์œ„์ž…๋‹ˆ๋‹ค.

ํ•œ๊ธ€ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๋Š” ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์žˆ๊ณ , ๊ทธ ํ•œ๊ธ€ ํ”„๋กœ๊ทธ๋žจ ์•ˆ์—์„œ ํŒŒ์ผ์„ ์ฝ๊ณ  ์“ฐ๋Š” ์ž‘์—…์„ ํ•˜๋Š” ์Šค๋ ˆ๋“œ์™€ ์‚ฌ์šฉ์ž์˜ ์ž…๋ ฅ์„ ๋ฐ›๋Š” ์Šค๋ ˆ๋“œ ๋“ฑ๊ณผ ๊ฐ™์ด ํ•œ ํ”„๋กœ์„ธ์Šค ์•ˆ์— ์—ฌ๋Ÿฌ ์Šค๋ ˆ๋“œ๊ฐ€ ๋™์ž‘ํ•  ์ˆ˜ ์žˆ๊ณ  ์ด๋ฅผ ๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋”ฉ(Multi-Sreading)์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

 

4. Context Switching

CPU๊ฐ€ ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค์—์„œ ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๋กœ ์ „ํ™˜ํ•˜๋Š” ๊ณผ์ •์ž…๋‹ˆ๋‹ค.

์ด ๊ณผ์ •์—์„œ ํ˜„์žฌ ์‹คํ–‰ ์ค‘์ธ ํ”„๋กœ์„ธ์Šค์˜ ์ƒํƒœ๋ฅผ ์ €์žฅํ•˜๊ณ , ์ƒˆ๋กœ ์‹คํ–‰ํ•  ํ”„๋กœ์„ธ์Šค์˜ ์ƒํƒœ๋ฅผ ๋ณต์›ํ•ฉ๋‹ˆ๋‹ค.

 

5. ๊ต์ฐฉ ์ƒํƒœ(DeadLock)

๋‘˜ ์ด์ƒ์˜ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์„œ๋กœ ์ž์›์„ ๊ธฐ๋‹ค๋ฆฌ๋ฉฐ ๋ฌดํ•œ ๋Œ€๊ธฐํ•˜๋Š” ์ƒํ™ฉ์ž…๋‹ˆ๋‹ค.

 

- ๋ฐœ์ƒ ์กฐ๊ฑด

1. ์ƒํ˜ธ ๋ฐฐ์ œ(Mutual Exclusion)

2. ์ ์œ ์™€ ๋Œ€๊ธฐ(Hold and Wait)

3. ๋น„์„ ์ (No Preemption)

4. ์ˆœํ™˜ ๋Œ€๊ธฐ(Circular Wait)

 

- ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•

1. ์˜ˆ๋ฐฉ(Prevetion)

2. ํšŒํ”ผ(Avoidance)

3. ํƒ์ง€ ๋ฐ ๋ณต๊ตฌ(Detection and Recovery)

 

6. ํŽ˜์ด์ง€ ๊ต์ฒด ์•Œ๊ณ ๋ฆฌ์ฆ˜

๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ ์‹œ์Šคํ…œ์—์„œ ๋ฌผ๋ฆฌ์  ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๋ถ€์กฑํ•  ๋•Œ, ํŽ˜์ด์ง€ ๊ต์ฒด ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ์–ด๋–ค ํŽ˜์ด์ง€๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  ์ƒˆ๋กœ์šด ํŽ˜์ด์ง€๋ฅผ ๋กœ๋“œํ• ์ง€๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ž…๋‹ˆ๋‹ค.

 

- FIFO(First-In-First-Out)

๊ฐ€์žฅ ๋จผ์ € ๋“ค์–ด์˜จ ํŽ˜์ด์ง€๋ฅผ ๊ฐ€์žฅ ๋จผ์ € ๊ต์ฒดํ•ฉ๋‹ˆ๋‹ค.

 

- LRU(Least Recently Used)

๊ฐ€์žฅ ์˜ค๋žซ๋™์•ˆ ์‚ฌ์šฉ๋˜์ง€ ์•Š์€ ํŽ˜์ด์ง€๋ฅผ ๊ต์ฒดํ•ฉ๋‹ˆ๋‹ค.

 

- Optimal

๋ฏธ๋ž˜์— ๊ฐ€์žฅ ์˜ค๋žซ๋™์•ˆ ์‚ฌ์šฉ๋˜์ง€ ์•Š์„ ํŽ˜์ด์ง€๋ฅผ ๊ต์ฒดํ•ฉ๋‹ˆ๋‹ค.

 

- Clock

FIFO๋ฅผ ๊ฐœ์„ ํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ์›ํ˜• ํ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํŽ˜์ด์ง€๋ฅผ ๊ต์ฒดํ•ฉ๋‹ˆ๋‹ค.


์ฐธ๊ณ  ์‚ฌ์ดํŠธ

 

[์šด์˜์ฒด์ œ] PCB์™€ Context Switching

ํŠน์ • ํ”„๋กœ์„ธ์Šค์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๋‹ด๊ณ  ์žˆ๋Š” ์ž๋ฃŒ๊ตฌ์กฐ์šด์˜์ฒด์ œ๋Š” PCB์— ๋‹ด๊ธด ํ”„๋กœ์„ธ์Šค ์ •๋ณด๋ฅผ ์ด์šฉํ•˜์—ฌ ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ  ์ œ์–ดํ•œ๋‹ค.ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ƒ์„ฑ๋  ๋•Œ ๋งˆ๋‹ค ๊ณ ์œ ์˜ PCB๊ฐ€ ์ƒ์„ฑ๋˜์–ด ๋ฉ”์ธ ๋ฉ”๋ชจ

velog.io

 

 

Deadlock(๊ต์ฐฉ ์ƒํƒœ)์˜ ๊ฐœ๋…๊ณผ ๋ฐœ์ƒ ์›์ธ

 

velog.io

 

 

[์šด์˜์ฒด์ œ] ํŽ˜์ด์ง€ ๊ต์ฒด ์•Œ๊ณ ๋ฆฌ์ฆ˜

ํŒจ์ŠคํŠธ์บ ํผ์Šค ์šด์˜์ฒด์ œ ๊ฐ•์˜์™€ ์‰ฝ๊ฒŒ ๋ฐฐ์šฐ๋Š” ์šด์˜์ฒด์ œ ๊ต์žฌ์— ๋Œ€ํ•œ TIL์ž…๋‹ˆ๋‹ค. ์ €๋ฒˆ ํฌ์ŠคํŒ…์€ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ์ž‘์—… ์ค‘ ๋ฉ”๋ชจ๋ฆฌ ๊ฐ€์ ธ์˜ค๊ธฐ(Fetch) ์ •์ฑ…์— ๊ด€ํ•œ ๊ฒƒ์ด์—ˆ๋‹ค๋ฉด, ์ด๋ฒˆ ํฌ์ŠคํŒ…์€ ๋ฉ”๋ชจ๋ฆฌ ์žฌ๋ฐฐ์น˜(R

rob-coding.tistory.com

 

๋ฌธ์ œ๊ฐ€ ์žˆ์œผ๋ฉด ๋Œ“๊ธ€ ๋‚จ๊ฒจ์ฃผ์„ธ์š” !

ํ”ผ๋“œ๋ฐฑ์€ ์–ธ์ œ๋‚˜ ํ™˜์˜์ž…๋‹ˆ๋‹ค <3