2024-09-22 23:43:04
๋ฐ˜์‘ํ˜•

์˜ค๋Š˜์€, ํ”„๋กœ์„ธ์Šค์˜ ๊ฐœ๋…๊ณผ ํ”„๋กœ์„ธ์Šค์˜ ๊ด€๋ฆฌ ๋ฐฉ๋ฒ• ๋“ฑ์„ ์•Œ์•„๋ณด๊ณ 

์“ฐ๋ ˆ๋“œ์— ๊ด€ํ•ด์„œ๋„ ํ•œ ๋ฒˆ ์•Œ์•„๋ณด๋Š” ์‹œ๊ฐ„์„ ๊ฐ€์ ธ๋ณด์ž.

 

Process(ํ”„๋กœ์„ธ์Šค)๋ž€?

---> ํ”„๋กœ์„ธ์Šค๋Š” ์‹คํ–‰์ค‘์ธ ํ”„๋กœ๊ทธ๋žจ์ด๋‹ค.(๋ฉ”๋ชจ๋ฆฌ์— ๋กœ๋”ฉ๋œ ํ˜•ํƒœ)

๋˜ํ•œ ํ”„๋กœ์„ธ์Šค๋Š” ๊ณ„์ธต์ ์ด๋‹ค. (๋ถ€๋ชจ ์ž์‹์ด ์กด์žฌ)

๋งŒ์•ฝ, ์‚ฌ์šฉ์ž๊ฐ€ ๋ฐฐ๊ฒฝํ™”๋ฉด์— ์žˆ๋Š” ์•„์ด์ฝ˜์„ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ๋”๋ธ” ํด๋ฆญ์„ ํ–ˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด๋ณด์ž.

๊ทธ๋Ÿฌ๋ฉด ์ฒซ๋ฒˆ์งธ๋กœ ํ•˜๋“œ๋””์Šคํฌ์— ์žˆ๋Š” ์‹คํ–‰ ํ”„๋กœ๊ทธ๋žจ์ด ๋ณ€ํ™˜๋กœ๋“œ๋ฅผ ํ†ตํ•ด ํ”„๋กœ์„ธ์Šค๋กœ ๋ณ€ํ™˜์ด ๋œ๋‹ค.

๊ทธ ํ›„์— ๋ฉ”๋ชจ๋ฆฌ์— ๋กœ๋”ฉ์„ ํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค.

 

์ด๋ ‡๊ฒŒ ํ”„๋กœ์„ธ์Šค๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ณผ์ •์—์„œ  PCB๋ผ๋Š” ๊ฒƒ์ด ์ƒ์„ฑ์ด ๋˜๋Š”๋ฐ PCB๋Š” ํ”„๋กœ์„ธ์Šค์˜ ์ •๋ณด๋“ค์ด๋ผ๊ณ  

์ƒ๊ฐํ•˜๋ฉด ํŽธํ•˜๋‹ค. ๊ทธ์™€ ๋™์‹œ์— ์—ฌ๋ถ„์˜ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋งŒ๋“ค์–ด Swap ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ค€๋น„ํ•ด๋†“๋Š”๋‹ค.

 

๋งŒ์•ฝ ๋ฉ”๋ชจ๋ฆฌ์— ํ”„๋กœ์„ธ์Šค๋“ค์ด ๊ฝ‰ ์ฐจ๊ฒŒ ๋˜๋ฉด, ๋‹น์žฅ ํ•„์š”์—†๋Š” ํ”„๋กœ์„ธ์Šค๋“ค์„ ๋ฏธ๋ฆฌ ๋งŒ๋“ค์–ด๋†“์€ Swap์œผ๋กœ ์˜ฎ๊ฒจ๋†“๋Š”๊ฒƒ์ด๋‹ค.

 

PCB์˜ ๊ตฌ์กฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

PCB์˜ ๊ตฌ์„ฑ

 

์ด๋Ÿฌํ•œ ํ”„๋กœ์„ธ์Šค๋“ค์„ ์—ฌ๋Ÿฌ๊ฐœ ํ•œ ๋ฒˆ์— ์šด์šฉํ•˜๋Š” ๊ฒƒ์„ 

๋ฉ€ํ‹ฐ ํ”„๋กœ์„ธ์Šค๋ผ๊ณ  ํ•œ๋‹ค.

๋ฉ€ํ‹ฐํ”„๋กœ์„ธ์Šค์˜ ์˜ˆ์‹œ

 

ํ”„๋กœ์„ธ์Šค์˜ ๋ถ„๋ฅ˜

1. ์‹œ์Šคํ…œ(์ปค๋„) ํ”„๋กœ์„ธ์Šค : ์šด์˜์ฒด์ œ ๋ถ€ํŒ…ํ•  ๋Œ€ ์ƒ์„ฑ์ด ๋œ๋‹ค

2. ์‚ฌ์šฉ์ž ํ”„๋กœ์„ธ์Šค : ์•„์ด์ฝ˜ ๋”๋ธ”ํด๋ฆญ ์‹œ ์ƒ๊ธฐ๋Š” ํ”„๋กœ์„ธ์Šค๋“ค์ด๋‹ค

3. ๋ณ‘ํ–‰ ํ”„๋กœ์„ธ์Šค : ํ”„๋กœ์„ธ์Šค๊ฐ€ 2๊ฐœ ๋™์‹œ์— ์‹คํ–‰๋˜๋Š” ๊ฒƒ์ด๋‹ค.

 

ํ”„๋กœ์„ธ์Šค์˜ ์ƒํƒœ ๋ณ€์ด

์ด๋ฒˆ์—” ํ”„๋กœ์„ธ์Šค๊ฐ€ ์–ด๋–ป๊ฒŒ ์ž‘๋™์„ ๋‚ด๋ถ€์ ์œผ๋กœ ํ•˜๊ณ  ์žˆ๋Š”์ง€๋ฅผ ์•Œ์•„๋ณด์ž.

 

๊ธฐ๋ณธ์ ์œผ๋กœ ์‚ฌ์šฉ์ž๊ฐ€ ์•„์ด์ฝ˜์„ ๋”๋ธ”ํด๋ฆญ์„ ํ•˜์—ฌ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ƒ์„ฑ์ด ๋˜๋ฉด ์šฐ์„  "์ƒ์„ฑ ์ƒํƒœ"๋กœ ๋“ค์–ด๊ฐ€๊ฒŒ ๋˜๋Š”๋ฐ

๊ทธ ๋™์‹œ์— ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ƒ์„ฑ์ด ๋˜๋ฉด์„œ PCB๋ฅผ ๊ฐ™์ด ์ƒ์„ฑํ•˜๊ฒŒ ๋œ๋‹ค.

๊ทธ๋Ÿฌ๋ฉด ์ƒ์„ฑ๋œ ํ”„๋กœ์„ธ์Šค๋“ค์€ Ready Q๋ผ๋Š” ํ์— ์Œ“์ด๊ฒŒ ๋œ๋‹ค(๋‹จ, ํ”„๋กœ์„ธ์Šค๊ฐ€ ์•„๋‹ˆ๋ผ PCB๊ฐ€ ์Œ“์ด๋Š” ๊ฒƒ์ž„).

๊ทธ๋Ÿฌ๋ฉด ๋””์ŠคํŒจ์ฒ˜๋ผ๋Š” ์Šค์ผ€์ค„๋Ÿฌ๊ฐ€ CPU๋กœ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋ณด๋‚ด์ฃผ๋Š” ์—ญํ• ์„ ํ•˜๋Š”๋ฐ CPU๋Š” ํ•œ ๊ฐœ์ด๊ธฐ ๋•Œ๋ฌธ์—

์ˆœ์„œ๋Œ€๋กœ ์šฐ์„ ์ˆœ์œ„(์œ ๋‹‰์Šค,๋ฆฌ๋ˆ…์Šค์—์„  nice value๊ฐ€ ์šฐ์„ ์ˆœ์œ„ ์กฐ์ •ํ•ด์คŒ)์— ๋งž๊ฒŒ CPU๋กœ ์ „๋‹ฌํ•ด์ฃผ๋Š” ์—ญํ• ์„ ํ•œ๋‹ค.

๊ทธ๋ ‡๊ฒŒ ์‹คํ–‰์ƒํƒœ๊ฐ€ ๋œ PCB๋Š” ์‹คํ–‰์ด ๋˜๊ณ  ์™„๋ฃŒ๊ฐ€ ๋˜๋ฉด PCB๊ฐ€ ์‚ญ์ œ๋˜๊ณ  ์™„๋ฃŒ ์ƒํƒœ๊ฐ€ ๋œ๋‹ค.

 

ํ•˜์ง€๋งŒ, ์‹คํ–‰์ƒํƒœ์—์„œ ์‹œ๊ฐ„์ด ๋„ˆ๋ฌด ์ง€์ฒด๋˜๋Š” ๋ฐ”๋žŒ์— ํƒ€์ž„ ์•„์›ƒ์ด ๋˜๋ฉด, ๋‹ค์‹œ ์ค€๋น„์ƒํƒœ ์ฆ‰, Ready Q๋กœ ๋Œ์•„์˜ค๊ฒŒ ๋˜๋ฉฐ

๋งจ ๋’ค๋กœ ๋“ค์–ด๊ฐ€๊ฒŒ ๋œ๋‹ค. ๋”ฐ๋ผ์„œ ํƒ€์ž„์•„์›ƒ์ด ๋งŽ์ด ์ผ์–ด๋‚˜๋ฉด ์†ํ•ด์ธ ๊ฒƒ์ด๋‹ค.

 

๋””์ŠคํŒจ์ฒ˜ ์˜ˆ์‹œ
ํ”„๋กœ์„ธ์Šค์˜ ์ƒํƒœ ์‚ฌ์ง„

 

๋˜ํ•œ, ๋Œ€๊ธฐ ์ƒํƒœ ์ฆ‰, ๋ณด๋ฅ˜๋กœ ์ค‘๋‹จ ์‹œํ‚ฌ ์ˆ˜๋„ ์žˆ๋‹ค.

๋Œ€๊ธฐ ์ƒํƒœ๊ฐ€ ์ถ”๊ฐ€๋œ ๋””์ŠคํŒจ์น˜ ์ƒํƒœ

 

 

ํ”„๋กœ์„ธ์Šค์˜ ๋ฌธ๋งฅ ๊ตํ™˜

ํ”„๋กœ์„ธ์Šค์˜ ๋ฌธ๋งฅ๊ตํ™˜์€ ํ”„๋กœ์„ธ์Šค๊ฐ€ 2๊ฐœ ์ด์ƒ์ผ ๋•Œ ๋ฐœ์ƒํ•˜๋Š” ๊ตํ™˜์ด๋‹ค.

์ฆ‰, ๋ฉ€ํ‹ฐ ํ”„๋กœ์„ธ์Šค ์‹œ์Šคํ…œ์ด๋ผ๋Š” ๊ฒƒ์ด๋‹ค.

1. ํ”„๋กœ์„ธ์Šค 1์ด ์‹คํ–‰๋˜๋‹ค๊ฐ€ ํƒ€์ž„์•„์›ƒ์ด ๋˜์–ด์„œ ์ค‘๋‹จ๋œ๋‹ค.

2. ํ”„๋กœ์„ธ์Šค1์˜ ์ƒํƒœ๋ฅผ PCB1์— ์ €์žฅํ•˜๊ณ (CPU๊ฐ€ ์‹คํ–‰ํ•จ), PCB2์—์„œ ํ”„๋กœ์„ธ์Šค2์˜ ์ƒํƒœ๋ฅผ ๊ฐ€์ ธ์˜จ๋‹ค.

3. ํ”„๋กœ์„ธ์Šค2๋ฅผ ์‹คํ–‰ํ•˜๋‹ค๊ฐ€ ํƒ€์ž„์•„์›ƒ์ด ๋˜๋ฉด ํ•˜๋˜๊ฑธ ์ €์žฅํ•˜๊ณ  ๋‹ค์‹œ ํ”„๋กœ์„ธ์Šค1๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค. 

์ด๊ฒƒ์ด ๋ฌธ๋งฅ๊ตํ™˜์ด๋‹ค. ํ•˜์ง€๋งŒ ์ด๋Ÿฌํ•œ ๊ตํ™˜์˜ ํšŸ์ˆ˜๊ฐ€ ๋งŽ์•„์ง€๋ฉด ์„ฑ๋Šฅ์ด ๋–จ์–ด์ง„๋‹ค.

๋ฌธ๋งฅ ๊ตํ™˜์˜ ์˜ˆ์‹œ1
๋ฌธ๋งฅ ๊ตํ™˜์˜ ์˜ˆ์‹œ2

*** CPU๊ฐ€ ์›๋ž˜ ํ•ด์•ผํ•  ์ผ์ธ ์‹คํ–‰, ์ค€๋น„ ๋“ฑ๋“ฑ์— ๋ฌธ๋งฅ๊ตํ™˜๊นŒ์ง€ ํ•˜๋ฉด ์‹œ๊ฐ„์ด ๋‹น์—ฐํžˆ ์ค„์–ด๋“ค์œผ๋‹ˆ ์„ฑ๋Šฅ๋„ ์ €ํ•˜๋œ๋‹ค.

 

Thread(์“ฐ๋ ˆ๋“œ)๋ž€?

--->

ํ”„๋กœ๊ทธ๋žจ ๋ช…๋ น์„ ์‹คํ–‰ํ•˜๋Š” ํ”„๋กœ์„ธ์Šค ๋‚ด์˜ ๊ฐœ์ฒด์ด๋‹ค.

์“ฐ๋ ˆ๋“œ

 

์“ฐ๋ ˆ๋“œ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์ฝ”๋“œ๋‚˜, ์ „์—ญ ๋ฐ์ดํ„ฐ, ํž™์€ ๊ณต๋™์œผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค.

์ฆ‰, ๊ฐ ์“ฐ๋ ˆ๋“œ๋ฅผ ๊ตฌ๋ถ„์‹œ์ผœ์ฃผ๋Š” ์š”์†Œ๋Š”, ์“ฐ๋ ˆ๋“œ์˜ ์‹คํ–‰ ํ™˜๊ฒฝ์ •๋ณด๋‚˜, ์ง€์—ญ ๋ฐ์ดํ„ฐ ๊ทธ๋ฆฌ๊ณ  ์Šคํƒ ๋‚ด์— ์žˆ๋Š” ์ •๋ณด๋“ค์ด๋‹ค.

์“ฐ๋ ˆ๋“œ์˜ ๊ตฌ์กฐ

์ฆ‰, ๊ฐ™์€ ํ”„๋กœ์„ธ์Šค ๋‚ด๋ถ€์— ์žˆ๋Š” ์“ฐ๋ ˆ๋“œ๋“ค์€ ๋™์ผํ•œ ์ฃผ์†Œ ๊ณต๊ฐ„์„ ๊ณต์œ ํ•œ๋‹ค๋Š” ์˜๋ฏธ์ด๋‹ค.

 

*** ์“ฐ๋ ˆ๋“œ๋Š” ๋ณ‘๋ ฌ์ˆ˜ํ–‰์„ ํ•˜๊ธฐ๋„ ํ•˜๋Š”๋ฐ, ํ”„๋กœ์„ธ์Šค๊ฐ€ ํ•˜๋‚˜์ธ ์„œ๋กœ ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์„œ์—์„œ ํ”„๋กœ๊ทธ๋žจ์˜ ๋‹ค๋ฅธ ๋ถ€๋ถ„์„

๋™์‹œ์— ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

 

์ด๋ ‡๊ฒŒ ์“ฐ๋ ˆ๋“œ๋ฅผ ๋ณ‘๋ ฌ์ˆ˜ํ–‰์„ ํ•˜๋ฉด ์ข‹์€ ์ ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

1. ์‚ฌ์šฉ์ž ์‘๋‹ต์„ฑ ์ฆ๊ฐ€

2. ํ”„๋กœ์„ธ์Šค์˜ ์ž์›๊ณผ ๋ฉ”๋ชจ๋ฆฌ ๊ณต์œ  ๊ฐ€๋Šฅ

3. ๊ฒฝ์ œ์„ฑ์ด ์ข‹์Œ

4. ๋‹ค์ค‘์ฒ˜๋ฆฌ๋กœ ์„ฑ๋Šฅ๊ณผ ํšจ์œจ ํ–ฅ์ƒ

๋‹ค์Œ์€, ๋‹ค์ค‘ ์“ฐ๋ ˆ๋“œ์˜ ์˜ˆ์‹œ์ด๋‹ค.

๋‹ค์ค‘ ์“ฐ๋ ˆ๋“œ์˜ ์˜ˆ์‹œ
๋‹จ์ผ ์“ฐ๋ ˆ๋“œ์™€ ๋‹ค์ค‘ ์“ฐ๋ ˆ๋“œ์˜ ํ”„๋กœ์„ธ์Šค ๋น„๊ต

* ์‚ฌ์‹ค ์ง€์—ญ๋ฐ์ดํ„ฐ ์ฆ‰, ์ง€์—ญ ๋ณ€์ˆ˜๋Š” ์Šคํƒ ๋‚ด์— ์ €์žฅ๋˜์–ด ์žˆ๋‹ค.

 

TCB

--->

TCB๋Š” Thread Control Block์ด๋ผ๋Š” ์˜๋ฏธ๋กœ ์“ฐ๋ ˆ๋“œ์˜ ์ƒํƒœ๋ฅผ ์ €์žฅํ•˜๊ณ  ์žˆ๋Š” ๊ณณ์ด๋‹ค.

TCB์˜ ์˜ˆ์‹œ

 

 

๋งˆ์ง€๋ง‰์œผ๋กœ ์“ฐ๋ ˆ๋“œ์˜ ์ข…๋ฅ˜ 3๊ฐ€์ง€๋ฅผ ๊ณต๋ถ€ํ•˜๊ณ  ๋งˆ๋ฌด๋ฆฌ ํ•˜๊ฒ ๋‹ค.

 

1. User Level Thread

- ์ปค๋„๊ณผ ์ƒ๊ด€์—†์ด ์‚ฌ์šฉ์ž๊ฐ€ ์“ฐ๋ ˆ๋“œ๋ฅผ ์Šค์Šค๋กœ ๋งŒ๋“ ๋‹ค. ์ฆ‰, ์ปค๋„์ด ๊ด€๋ฆฌ๋ฅผ ํ•ด์ฃผ์ง€ ์•Š์œผ๋ฉฐ ์‚ฌ์šฉ์ž๊ฐ€ ์ง์ ‘ ๊ด€๋ฆฌํ•ด์•ผํ•œ๋‹ค

์‚ฌ์šฉ์ž์˜ ์˜์—ญ ์•ˆ์—์„œ ์‹คํ–‰๋œ๋‹ค.

User level thread

 

2. Kernel lever thread

- ์“ฐ๋ ˆ๋“œ๋ฅผ ์ปค๋„์ด ๊ด€๋ฆฌํ•œ๋‹ค.

1 : 1 ๋Œ€์‘ ๋ฐฉ์‹์ด๊ธฐ ๋•Œ๋ฌธ์— ์ปค๋„์˜ ์–‘์ด ์ฆ๊ฐ€ํ•˜๋ฉด CPU๋ฅผ ์ฐจ์ง€ํ•˜๊ธฐ ์œ„ํ•œ ๊ฒฝ์Ÿ์ด ์ฆ๊ฐ€ํ•˜๋ฏ€๋กœ ์„ฑ๋Šฅ์ด ์ €ํ•˜๋œ๋‹ค.

Kernel level thread

 

3. Hybrid level thread

- ์œ„ ๋‘ ๊ฐœ์˜ ๋ฐฉ์‹์„ ํ•ฉ์นœ ๋ฐฉ๋ฒ•์ด๋‹ค.

- thread์˜ ์ƒ์„ฑ์€ ์‚ฌ์šฉ์ž ์˜์—ญ์—์„œ ์‹œ์ž‘ํ•œ๋‹ค

- User level threads์—์„œ ๋งคํ•‘์„ ์‹œ์ž‘ํ•œ๋‹ค.

- Kernel level thread๋กœ ์ด์–ด์ง„๋‹ค.

 

๊ฒฝ๋Ÿ‰ ํ”„๋กœ์„ธ์Šค ์“ฐ๋ ˆ๋“œ๊ฐ€ ์ค‘๊ฐ„์— ๋งคํ•‘์„ ํ•ด์ฃผ๋Š” ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.

Hybrid level thread

 

์—ฌ๊ธฐ๊นŒ์ง€ ์“ฐ๋ ˆ๋“œ์™€ ํ”„๋กœ์„ธ์Šค์— ๊ด€ํ•ด์„œ ๊ณต๋ถ€ํ–ˆ๋‹ค

๊ฐ„๋‹จํ•ด๋ณด์ด์ง€๋งŒ ์™ธ์šธ ๊ฒƒ์ด ๋งŽ์œผ๋‹ˆ ํ—ท๊ฐˆ๋ฆฌ์ง€ ์•Š๊ฒŒ ์ž˜ ๊ณต๋ถ€ํ•ด๋‘์ž

 

728x90