๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๊ฐœ๋ฐœ๊ณต๋ถ€/CS๐Ÿ’ป

CS ๊ฐ•์˜ 3. ํ”„๋กœ์„ธ์Šค ์ƒ๋ช…์ฃผ๊ธฐ์™€ ํ”„๋กœ์„ธ์Šค ๋ฉ”๋ชจ๋ฆฌ

728x90

์ถœ์ฒ˜ : ๋‚ด์ผ๋ฐฐ์›€์บ ํ”„

 

0. ํ”„๋กœ๊ทธ๋žจ๊ณผ ํ”„๋กœ์„ธ์Šค

0-1. ํ”„๋กœ๊ทธ๋žจ์ด ์ €์žฅ๋˜์–ด ์žˆ๋Š” ๊ณณ : ๋ณด์กฐ ๊ธฐ์–ต์žฅ์น˜

0-2. ํ”„๋กœ๊ทธ๋žจ์ด ๋กœ๋”ฉ๋˜๋Š” ๊ณณ : ์ฃผ ๊ธฐ์–ต์žฅ์น˜

0-3. ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๋Š” ์ฃผ์ฒด : ํ”„๋กœ์„ธ์Šค

0-4. ์ž‘์—…์„ ์ฒ˜๋ฆฌํ•ด์ฃผ๋Š” ์ฃผ์ฒด : ์“ฐ๋ ˆ๋“œ  ~ ์Šค๋ ˆ๋“œ๋Š” ํ•„์š”์‹œ๋งˆ๋‹ค ์ƒ์„ฑ๋˜๋ฉฐ, ํ”„๋กœ์„ธ์Šค ์ƒ์„ธ์˜ ์ˆ˜๋Š” ์ตœ๊ทผ ํ‰๊ท  ์“ฐ๋ ˆ๋“œ ๊ฐœ์ˆ˜ ํ†ต๊ณ„๊ฐ’

0-5. ํ”„๋กœ์„ธ์Šค ์ƒํƒœ๋ณ€ํ™” ๋ณต์Šต

https://cdaosldk.tistory.com/264

 

CS ๊ฐ•์˜ 2. CPU์™€ ๋ฉ”๋ชจ๋ฆฌ ์‹ฌํ™”

์ถœ์ฒ˜ : ๋‚ด์ผ๋ฐฐ์›€์บ ํ”„ 1. CU์˜ ํ•ต์‹ฌ ๊ธฐ๋Šฅ : ์Šค์ผ€์ค„๋ง 1) ์Šค์ผ€์ค„๋ง ์†Œ๊ฐœ - ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๋Š” ์ฃผ์ฒด = ํ”„๋กœ์„ธ์Šค ex) ์นดํ†ก ์‹คํ–‰ - ์ž‘์—…์„ ์ฒ˜๋ฆฌํ•˜๋Š” ์ฃผ์ฒด = ์Šค๋ ˆ๋“œ ex) ์นดํ†ก ๋ฉ”์„ธ์ง€ ์†ก์ˆ˜์‹  CPU๋ฅผ ์ž˜ ์‚ฌ์šฉํ•˜

cdaosldk.tistory.com

1. ํ”„๋กœ์„ธ์Šค ์ƒ๋ช…์ฃผ๊ธฐ

ํ”„๋กœ์„ธ์Šค ์ƒ๋ช…์ฃผ๊ธฐ = ํ”„๋กœ์„ธ์Šค ์ƒํƒœ๋ณ€ํ™”

๊ฐ ์›์€ ํ”„๋กœ์„ธ์Šค์˜ ์ƒํƒœ๋ฅผ ์˜๋ฏธํ•˜๋ฉฐ, ํ™”์‚ดํ‘œ(์ƒํƒœ๋ณ€ํ™”๋™์ž‘)์— ๋”ฐ๋ผ ์ƒํƒœ๊ฐ€ ๋ณ€ํ™”ํ•œ๋‹ค

1 - 1. ํ”„๋กœ์„ธ์Šค ์ƒํƒœ

1) ์‹ ๊ทœ

- ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ์˜จ ์ƒํƒœ

- ์‹คํ–‰ ๋ถˆ๊ฐ€๋Šฅ

- ์ˆ˜์šฉ์„ ๊ฑฐ์ณ์•ผ ์ค€๋น„๋‹จ๊ณ„๋กœ ๋„˜์–ด๊ฐˆ ์ˆ˜ ์žˆ๋‹ค

2) ์ค€๋น„

- ๋ณ€์ˆ˜ ์ดˆ๊ธฐํ™” ๋“ฑ ๊ธฐ์ดˆ ์ค€๋น„์ž‘์—…์„ ๋ชจ๋‘ ๋๋‚ด๊ณ  ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ์ƒํƒœ

- ์Šค์ผ€์ค„๋Ÿฌ๋ฅผ ํ†ตํ•ด ๋ฐœ์†ก๋˜์–ด์•ผ ์ˆ˜ํ–‰ ์ƒํƒœ๊ฐ€ ๋œ๋‹ค

- ์‹ ๊ทœ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ˆ˜์šฉ/ ๋Œ€๊ธฐ ํ”„๋กœ์„ธ์Šค์˜ ์ž…์ถœ๋ ฅ,์ด๋ฒคํŠธ๊ฐ€ ์™„๋ฃŒ/ ์ˆ˜ํ–‰ ํ”„๋กœ์„ธ์Šค์˜ ์ค‘๋‹จ

3) ์ˆ˜ํ–‰

- CPU๊ฐ€ ์‹ค์ œ๋กœ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ณ  ์žˆ๋Š” ์ƒํƒœ

- ์„ ์  ์Šค์ผ€์ค„๋ง์— ์˜ํ•ด ์ค‘๋‹จ๋˜๋ฉด ์ค€๋น„

- ์ž…์ถœ๋ ฅ/ ์ด๋ฒคํŠธ ํ•„์š”์‹œ ๋Œ€๊ธฐ

- ์ˆ˜ํ–‰ ์™„๋ฃŒ์‹œ ์ข…๋ฃŒ

- ์ค€๋น„ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์Šค์ผ€์ค„๋Ÿฌ๋ฅผ ํ†ตํ•ด ๋ฐœ์†ก

ex)

์ˆ˜ํ–‰ -> ์ค€๋น„ : CPU ๊ณผ๋ถ€ํ™”

์ˆ˜ํ–‰ -> ๋Œ€๊ธฐ : I/O๋‚˜ event wait๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ, ์ดํ›„ ์ž…์ถœ๋ ฅ/์ด๋ฒคํŠธ ์ข…๋ฃŒ์‹œ ์ค€๋น„ ์ƒํƒœ๋กœ ๋ณต๊ตฌ

4) ๋Œ€๊ธฐ

- ํ”„๋กœ์„ธ์Šค ๋„์ค‘ ์ž…์ถœ๋ ฅ ์ž‘์—…์ด ํ•„์š”ํ•˜๋ฉฐ ์ž…์ถœ๋ ฅ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์ƒํƒœ

- CPU๋Š” I/O ๋Œ€๊ธฐ์™€ ๋™์‹œ์— ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ˆ˜ํ–‰ํ•œ๋‹ค

- ๋Œ€๊ธฐ ์ƒํƒœ๊ฐ€ ๋๋‚˜๋ฉด ํ”„๋กœ์„ธ์Šค๋Š” ๋‹ค์‹œ ์ค€๋น„์ƒํƒœ๊ฐ€ ๋˜๊ณ , ์ž ์‹œ ํ›„ ๋‹ค์‹œ ์ˆ˜ํ–‰ ์ƒํƒœ๊ฐ€ ๋œ๋‹ค

5) ์ข…๋ฃŒ

- ํ”„๋กœ์„ธ์Šค ์ข…๋ฃŒ ~ ์‚ฌ์šฉํ•˜๋˜ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ ํ•ด์ œ

cf) ์‹œ๊ณต์œ  ์‹œ์Šคํ…œ์—์„  ์ˆ˜ํ–‰ ์ƒํƒœ์—์„œ ํ• ๋‹น๋œ ์‹œ๊ฐ„์ด ๋งŒ๋ฃŒ๋˜๋ฉด ๋Œ€๊ธฐ ์ƒํƒœ๋ฅผ ๊ฑฐ์น˜์ง€ ์•Š๊ณ  ๋ฐ”๋กœ ์ค€๋น„ ์ƒํƒœ๋กœ ๋ณ€ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ค‘๋‹จ๊ณผ ๊ฐ™์ด ๋™์ž‘ํ•œ๋‹ค

 

1 - 2. ๋Œ€๊ธฐ ํ

https://gusdnd852.tistory.com/82

1) Job Queue

HDD์— ์žˆ๋˜ ํ”„๋กœ๊ทธ๋žจ์ด ๋ฉ”๋ชจ๋ฆฌ๋กœ ์˜ฌ๋ผ์˜ฌ ๋•Œ, ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๊ฐ€๋“ ์ฐผ๊ฑฐ๋‚˜ CPU๊ฐ€ ๋‹ค๋ฅธ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ณ  ์žˆ๋‹ค๋ฉด HDD์˜ ํ”„๋กœ๊ทธ๋žจ์ด ๋Œ€๊ธฐํ•˜๋Š” ์žฅ์†Œ

2) Ready Queue

๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ์— ํ”„๋กœ๊ทธ๋žจ์ด ์˜ฌ๋ผ์˜จ ํ›„์—๋„ ๋Œ€๊ธฐํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๋ฐ, ์ด๋Ÿฐ ๊ฒฝ์šฐ์— ๋ ˆ๋”” ํ์—์„œ ๋Œ€๊ธฐํ•œ๋‹ค. ๋จผ์ € ์ˆ˜ํ–‰๋˜๋˜ ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋žจ์ด I/O๋ฅผ ์‹œ์ž‘ํ•ด ๋Œ€๊ธฐ ์ƒํƒœ๊ฐ€ ๋˜๊ฑฐ๋‚˜ ์‹œ๊ณต์œ  ์‹œ์Šคํ…œ์˜ ๊ฒฝ์šฐ ๊ธฐ์กด ํ”„๋กœ์„ธ์Šค ์‹œ๊ฐ„์ดˆ๊ณผ์‹œ ํ์— ์žˆ๋˜ ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰๋œ๋‹ค

3) Device Queue

I/O ์žฅ์น˜๋ฅผ ์ด์šฉํ•˜๊ธฐ ์œ„ํ•ด ๊ธฐ์กด ์ˆ˜ํ–‰๋˜๊ณ  ์žˆ๋˜ I/O ์ž‘์—…์ด ๋๋‚˜๋Š” ๊ฒƒ์„ ๋Œ€๊ธฐํ•˜๋Š” ์žฅ์†Œ๋กœ ๊ฐ I/O ์žฅ์น˜๋Š” ๊ณ ์œ ํ•œ ๋Œ€๊ธฐ ์žฅ์†Œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉฐ, ์ด๋ฅผ ํ†ต์นญํ•ด Device Queue๋ผ๊ณ  ํ•œ๋‹ค

 

cf) ์ข…๋ฃŒ๋ฅผ ๋Œ€๊ธฐํ•˜๋Š” ํ๋Š” ์—†๋‹ค

 

1 - 3. ์Šค์ผ€์ค„๋ง

1) Job Scheduler

Job Queue์˜ ํ”„๋กœ๊ทธ๋žจ ์ˆœ์„œ๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ์Šค์ผ€์ค„๋Ÿฌ. ์ด์— ๋”ฐ๋ผ ๋ฉ”๋ชจ๋ฆฌ์— ํ”„๋กœ๊ทธ๋žจ์ด ์˜ฌ๋ ค์ง€๋ฉฐ, ํ”„๋กœ๊ทธ๋žจ์ด ์ƒˆ๋กœ ์‹œ์ž‘ํ•˜๋Š”๋ฐ ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๊ฐ€๋“์ฐฌ ๊ฒฝ์šฐ์—๋งŒ ๋ฐœ์ƒํ•˜๋ฏ€๋กœ, ๋นˆ๋„๊ฐ€ ๋†’์ง€ ์•Š๋‹ค(์ˆ˜๋ถ„ ~ ์ˆ˜์‹ญ๋ถ„)

cf) Long Term Scheduler : ๊ธด ๊ฐ„๊ฒฉ์œผ๋กœ ๋™์ž‘ํ•˜๋Š” ์Šค์ผ€์ค„๋Ÿฌ๋ฅผ ์ด๋ฅด๋Š” ๋ง

2) CPU Scheduler

Ready Queue์˜ ํ”„๋กœ์„ธ์Šค ์ˆœ์„œ๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ์Šค์ผ€์ค„๋Ÿฌ. ๋ชจ๋“  ์Šค์ผ€์ค„๋Ÿฌ ์ค‘ ๊ฐ€์žฅ ์ค‘์š”ํ•˜๋‹ค

cf) Short Term Scheduler : ์‹œ๊ณต์œ  ์‹œ์Šคํ…œ์˜ ๊ฒฝ์šฐ 1์ดˆ์—๋„ ์ˆ˜์‹ญ, ์ˆ˜๋ฐฑ๋ฒˆ ๋ฐœ์ƒํ•˜๊ธฐ ๋•Œ๋ฌธ์— S.T.S๋กœ ๋ถ€๋ฅธ๋‹ค

3) Device Scheduler

Device Queue์˜ ํ”„๋กœ์„ธ์Šค ์ˆœ์„œ๋ฅผ ๊ฒฐ์กํ•˜๋Š” ์Šค์ผ€์ค„๋Ÿฌ๋กœ ๊ฐ I/O ์žฅ์น˜๋ณ„ ํ๋ฅผ ํ†ต์นญํ•œ๋‹ค

 

I/O Bound Process vs CPU Bound Process

I/O Bound Process : ๋Œ€๋ถ€๋ถ„์˜ ์‹œ๊ฐ„์„ I/Oํ•˜๋Š” ๋ฐ ์“ฐ๋Š” ํ”„๋กœ์„ธ์Šค๋ฅผ ์˜๋ฏธ

CPU Bound Process : ๋Œ€๋ถ€๋ถ„์˜ ์‹œ๊ฐ„์„ CPU๋กœ ์—ฐ์‚ฐํ•˜๋Š”๋ฐ ์“ฐ๋Š” ํ”„๋กœ์„ธ์Šค๋ฅผ ์˜๋ฏธ

~ ์šด์˜์ฒด์ œ(Job Scheduler)๋Š” ์„ฑ๋Šฅ์„ ์œ„ํ•ด ๋‘ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ ์ ˆํ•˜๊ฒŒ ์กฐํ•ฉํ•ด์•ผ ํ•œ๋‹ค

 

1 - 4. ์ฃผ-๋ณด์กฐ ๊ตํ™˜(Swapping)

1) Swapping

- ์„œ๋ฒ„์™€ ๊ฐ™์ด ์—ฌ๋Ÿฌ ์‚ฌ์šฉ์ž๊ฐ€ ํ•˜๋‚˜์˜ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ณต์œ ํ•˜๋Š” ๊ฒฝ์šฐ ํ•œ ์‚ฌ์šฉ์ž๊ฐ€ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ž…์ถœ๋ ฅ ๋“ฑ์˜ ๋Œ€๊ธฐ ์ƒํƒœ๋ฅผ ์ง€์†ํ•˜๋ฉด ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž์—๊ฒŒ ํ• ๋‹น๋˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ๊ทธ๋งŒํผ ์ ๊ฒŒ ํ• ๋‹น๋ฐ›์œผ๋ฏ€๋กœ ํšจ์œจ์ ์ด์ง€ ๋ชปํ•˜๋‹ค. PCB์˜ CPU Time ๋“ฑ์„ ํ™•์ธํ•ด ์˜ค๋žซ๋™์•ˆ ๋™์ž‘์ด ์—†๋Š” ํ”„๋กœ์„ธ์Šค๋Š” HDD๋กœ ๋ณด๋‚ด๊ณ , ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๋ฅผ ์‹คํ–‰ํ•˜๊ฑฐ๋‚˜ ๊ธฐ์กด ํ”„๋กœ์„ธ์Šค์— ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋” ํ• ๋‹นํ•˜๋Š” ๋“ฑ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋” ํšจ์œจ์ ์œผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค

* Swap Out : ๋ฉ”๋ชจ๋ฆฌ์—์„œ HDD๋กœ ๋ณด๋‚ด๋Š” ์ž‘์—…

* Swap In : HDD์—์„œ ๋‹ค์‹œ ๋ฉ”๋ชจ๋ฆฌ๋กœ ๋ณด๋‚ด๋Š” ์ž‘์—…

- ์ž„์‹œ ๋ฉ”๋ชจ๋ฆฌ ๋ชฉ์ ์œผ๋กœ Swapping์— ์‚ฌ์šฉ๋˜๋Š” HDD ๊ณต๊ฐ„์„ Backing Store ๋˜๋Š” Swap Device๋ผ๊ณ  ํ•œ๋‹ค

 

cf) Medium Term Scheduler

Swapping ์ˆœ์„œ๋ฅผ ๊ฒฐ์ •ํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ์Šค์ผ€์ค„๋Ÿฌ๋กœ, Short๊ณผ Long์˜ ์ค‘๊ฐ„ ๋นˆ๋„๋กœ ๋ฐœ์ƒํ•˜๊ธฐ ๋•Œ๋ฌธ์— Medium์œผ๋กœ ๋ถ€๋ฅธ๋‹ค. ๋˜ํ•œ ์Šค์ผ€์ค„๋ง ์ž‘์—…์„ Medium Term Scheduling์ด๋ผ๊ณ  ํ•œ๋‹ค

 

1 - 5. ๋ฌธ๋งฅ ๊ตํ™˜(Context Switching)

1) Context Switching

- ์‹œ๊ณต์œ  ์‹œ์Šคํ…œ์˜ ๊ฒฝ์šฐ ์ˆ˜ํ–‰ ์ค‘์ด๋˜ ํ”„๋กœ์„ธ์Šค์— ํ• ๋‹น๋œ ์‹œ๊ฐ„์ด ๋งŒ๋ฃŒ๋˜๋ฉด ํ•ด๋‹น ํ”„๋กœ์„ธ์Šค๋Š” ์ค€๋น„ ์ƒํƒœ๊ฐ€ ๋˜๊ณ  ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ํ”„๋กœ์„ธ์Šค์˜ ๊ต์ฒด๋ฅผ Context Switching์ด๋ผ๊ณ  ํ•œ๋‹ค

2) Scheduler

CPU ์Šค์ผ€์ค„๋Ÿฌ๊ฐ€ ๋ฌธ๋งฅ ๊ตํ™˜์„ ์œ„ํ•œ ์Šค์ผ€์ค„๋ง ์ž‘์—…์„ ๋‹ด๋‹นํ•œ๋‹ค(๋˜ํ•œ ๋ ˆ๋”” ํ ์Šค์ผ€์ค„๋ง ์ž‘์—…๋„ ์ˆ˜ํ–‰)

3) Dispatcher

- ๊ธฐ์กด์— ์ˆ˜ํ–‰๋˜๋˜ ํ”„๋กœ์„ธ์Šค์˜ ์ˆ˜ํ–‰ ์ƒํƒœ๋ฅผ ์ €์žฅํ•˜๊ณ  ์žˆ์–ด์•ผ ๋‹ค์‹œ ๋ฌธ๋งฅ ๊ตํ™˜์ด ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ์ž‘์—…์„ ์ด์–ดํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ Dispatcher๋ผ๊ณ  ํ•œ๋‹ค

 

cf) ๋Œ€๋ถ€๋ถ„์˜ ์šด์˜์ฒด์ œ๋Š” CPU ์‹œ๊ณต์œ  ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉํ•œ๋‹ค. ์ด๋ฅผ ํ†ตํ—ค ์—ฌ๋Ÿฌ ํ”„๋กœ์„ธ์Šค๋‚˜ ์Šค๋ ˆ๋“œ๊ฐ€ ๋™์‹œ์— ์‹คํ–‰๋˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด์ง€๋งŒ, ์‹ค์ œ๋กœ๋Š” ๋งค์šฐ ๋น ๋ฅด๊ฒŒ ํ•˜๋‚˜๋งŒ ์‹คํ–‰ํ•˜๊ณ  ์žˆ๊ณ , CPU๋Š” ๊ฐ€์žฅ ์ตœ์ ์˜ ํšจ์œจ๋กœ ์šด์˜๋˜๊ณ  ์žˆ๋Š” ๊ฒƒ์ด๋‹ค

2. ํ”„๋กœ์„ธ์Šค ๋ฉ”๋ชจ๋ฆฌ

2 - 1. ํ”„๋กœ์„ธ์Šค์˜ ๋ฉ”๋ชจ๋ฆฌ ๊ตฌ์กฐ

https://zangzangs.tistory.com/107

1) Code

์‹คํ–‰ํ•  ํ”„๋กœ๊ทธ๋žจ์˜ ์ฝ”๋“œ๊ฐ€ ์ €์žฅ๋œ๋‹ค. CPU๋Š” Code์—์„œ ๋ช…๋ น์–ด๋ฅผ ํ•˜๋‚˜์”ฉ ๊ฐ€์ ธ์™€ ์ฒ˜๋ฆฌ

2) Data

- ์ „์—ญ๋ณ€์ˆ˜, ์ •์ ๋ณ€์ˆ˜๊ฐ€ ์ €์žฅ๋œ๋‹ค. ์ด ๋ณ€์ˆ˜๋“ค์€ ํ”„๋กœ๊ทธ๋žจ ์‹œ์ž‘์‹œ ํ• ๋‹น๋˜๊ณ , ์ข…๋ฃŒ์‹œ ์†Œ๋ฉธ๋œ๋‹ค

+ BSS : BSS์—๋Š” ์ดˆ๊ธฐํ™”๋˜์ง€ ์•Š์€ ์ „์—ญ๋ณ€์ˆ˜๊ฐ€ ์ €์žฅ๋œ๋‹ค. ์ดˆ๊ธฐํ™”๋˜๋Š” Data ์˜์—ญ์˜ ๋ณ€์ˆ˜๋Š” ROM์— ์ €์žฅ๋˜์–ด ํœ˜๋ฐœ์„ฑ์„ ๋„์ง€ ์•Š์œผ๋ฉฐ, BSS์˜ ๋ณ€์ˆ˜๋Š” ์ดˆ๊ธฐํ™”์˜ ๋น„์šฉ์ด ๋งŽ์ด ๋“ค๊ธฐ ๋•Œ๋ฌธ์— RAM๊ณผ ROM์— ์ €์žฅ๋˜๋Š” ๊ฒƒ์„ ๊ตฌ๋ถ„ํ•œ๋‹ค

3) Stack

- ํ˜ธ์ถœ๋œ ํ•จ์ˆ˜์˜ ์ˆ˜ํ–‰์ด ๋๋‚˜๊ณ  ๋ณต๊ท€ํ•  ์ฃผ์†Œ ๋ฐ ๋ฐ์ดํ„ฐ(์ง€์—ญ๋ณ€์ˆ˜, ๋งค๊ฐœ๋ณ€์ˆ˜, ๋ฆฌํ„ด๊ฐ’ ๋“ฑ)๋ฅผ ์ž„์‹œ๋กœ ์ €์žฅํ•˜๋Š” ๊ณต๊ฐ„

- ํ•จ์ˆ˜ ํ˜ธ์ถœ์‹œ ๊ธฐ๋กํ•˜๊ณ  ํ•จ์ˆ˜ ์ˆ˜ํ–‰์ด ๋๋‚˜๋ฉด ์†Œ๋ฉธ๋œ๋‹ค. Stack์˜ LIFO๋ฐฉ์‹์œผ๋กœ ์ €์žฅ/์ถœ๋ ฅ๋œ๋‹ค

- ์ปดํŒŒ์ผํ•  ๋•Œ Stack ์˜์—ญ์˜ ํฌ๊ธฐ๊ฐ€ ๊ฒฐ์ •๋˜๋ฏ€๋กœ ๋ฌดํ•œ ํ• ๋‹นํ•  ์ˆ˜ ์—†๋‹ค. ๊ทธ๋ž˜์„œ Stack ์˜์—ญ์„ ์ดˆ๊ณผํ•˜๋Š” ์žฌ๊ท€ํ•จ์ˆ˜ ํ˜ธ์ถœ ๋“ฑ์˜ ์˜ˆ์™ธ๊ฐ€ Stack Overflow์ธ ๊ฒƒ์ด๋‹ค

 

์ปดํŒŒ์ผ์‹œ ์„ธ ์˜์—ญ์˜ ํฌ๊ธฐ๋ฅผ ๊ณ„์‚ฐํ•ด ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์„ ๊ฒฐ์ •ํ•œ๋‹ค

 

4) Heap

๋™์  ๋ฐ์ดํ„ฐ ์˜์—ญ. ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๊ฐ’์— ์˜ํ•ด์„œ๋งŒ ์ฐธ์กฐ๋˜๊ณ  ์‚ฌ์šฉ๋œ๋‹ค. ํ”„๋กœ๊ทธ๋žจ ๋™์ž‘(๋Ÿฐํƒ€์ž„)์‹œ ํฌ๊ธฐ๊ฐ€ ๊ฒฐ์ •๋œ๋‹ค

ex) Stack ์˜์—ญ์—์„œ Pointer ๋ณ€์ˆ˜๋ฅผ ํ• ๋‹นํ•˜๋ฉด, ๊ทธ ๋ณ€์ˆ˜๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” Heap ์˜์—ญ์˜ ๊ณต๊ฐ„์— ํฌ๊ธฐ๋ฅผ ํ• ๋‹นํ•ด ์‚ฌ์šฉํ•œ๋‹ค

- ์ž๋ฐ”์—์„  Heap ์˜์—ญ์— ๊ฐ์ฒด๊ฐ€ ์ƒ์„ฑ๋˜๊ณ  ์“ฐ์ž„์ด ๋‹คํ•œ ๊ฐ์ฒด๋Š” GC๊ฐ€ ์ •๋ฆฌํ•œ๋‹ค

 

2 - 2. ์ปค๋„ ํ”„๋กœ์„ธ์Šค์˜ ๋ฉ”๋ชจ๋ฆฌ

1) ์ปค๋„

๋Œ€๋ถ€๋ถ„์˜ ์šด์˜์ฒด์ œ์˜ ์ฃผ ๊ตฌ์„ฑ์š”์†Œ๋กœ, ์ปดํ“จํ„ฐ ํ•˜๋“œ์›จ์–ด์™€ ํ”„๋กœ์„ธ์Šค๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ํ•ต์‹ฌ ํ”„๋กœ์„ธ์Šค๋‹ค. ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ, ํ•˜๋“œ์›จ์–ด์™€ ํ”„๋กœ์„ธ์Šค ์‚ฌ์ด ๋ช…๋ น์„ ์ฆ‰์‹œ ์‹คํ–‰ํ•˜๋Š”(์ธํ„ฐํ”„๋ฆฌํ„ฐ) ์—ญํ• ์„ ์ˆ˜ํ–‰, ์‹œ์Šคํ…œ์˜ ํ˜ธ์ถœ์ด๋‚˜ ๋ณด์•ˆ์˜ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค

์ปค๋„์€ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์•„๋‹Œ ์—ฐ๊ฒฐ ์ธํ„ฐํŽ˜์ด์Šค

+ OS์˜ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ๊ฐ•์ œ ์ข…๋ฃŒ๋„ ์ปค๋„์˜ ๊ธฐ๋Šฅ ์ค‘ ํ•˜๋‚˜๋‹ค

 

2) ์ปค๋„์˜ Code

- ์‹œ์Šคํ…œ ์ฝœ, ์ค‘๋‹จ(์ธํ„ฐ๋ŸฝํŠธ) ์ฒ˜๋ฆฌ ์ฝ”๋“œ

- CPU, ๋ฉ”๋ชจ๋ฆฌ ๋“ฑ ๋ฆฌ์†Œ์Šค ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•œ ์ฝ”๋“œ

- ํŽธ๋ฆฌํ•œ ์ธํ„ฐํŽ˜์ด์Šค ์ œ๊ณต์„ ์œ„ํ•œ ์ฝ”๋“œ

 

3) ์ปค๋„์˜ Data

- CPU, ๋ฉ”๋ชจ๋ฆฌ ๋“ฑ ํ•˜๋“œ์›จ์–ด ์ž์›์„ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ์ €์žฅ

- PCB ์ž๋ฃŒ๊ตฌ์กฐ ์ €์žฅ

~ ํ˜„์žฌ ์ˆ˜ํ–‰ ์ค‘์ธ ํ”„๋กœ์„ธ์Šค์˜ ์ƒํƒœ, CPU ์‚ฌ์šฉ ์ •๋ณด ๋“ฑ์„ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•œ ์ž๋ฃŒ๊ตฌ์กฐ

~ ํ”„๋กœ์„ธ์Šค ์ œ์–ด ๋ธ”๋ก์€ ๊ฐ ํ”„๋กœ์„ธ์Šค์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์ €์žฅ(์ฃผ๋ฏผ๋“ฑ๋ก์ฆ)ํ•˜๊ณ  ์šด์˜์ฒด์ œ๊ฐ€ ํ•ด๋‹น ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ํฌํ•จํ•œ๋‹ค

~ ๊ฐ ํ”„๋กœ์„ธ์Šค์˜ PCB๋Š” ์šด์˜์ฒด์ œ ๋‚ด๋ถ€์˜ Process Management์—์„œ ๊ด€๋ฆฌํ•˜๋ฉฐ, PC,Register,MMU์ •๋ณด,Process์ƒํƒœ, CPU Time, PID ๋“ฑ์„ ํฌํ•จํ•˜๊ณ  ๊ตฌ์กฐ์ฒด์™€ ๊ฐ™์ด ๊ตฌ์„ฑ๋œ๋‹ค

๋”๋ณด๊ธฐ
  1. ํ”„๋กœ์„ธ์Šค ์‹๋ณ„์ž(Process ID, PID): PCB์—๋Š” ๊ฐ ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ณ ์œ ํ•˜๊ฒŒ ์‹๋ณ„ํ•˜๋Š” ๋ฒˆํ˜ธ๋‚˜ ์‹๋ณ„์ž๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์šด์˜ ์ฒด์ œ๋Š” ํŠน์ • ํ”„๋กœ์„ธ์Šค๋ฅผ ์‹๋ณ„ํ•˜๊ณ  ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  2. ํ”„๋กœ์„ธ์Šค ์ƒํƒœ(Process State): PCB์—๋Š” ํ”„๋กœ์„ธ์Šค์˜ ํ˜„์žฌ ์ƒํƒœ๊ฐ€ ์ €์žฅ๋ฉ๋‹ˆ๋‹ค. ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‹คํ–‰ ์ค‘, ๋Œ€๊ธฐ ์ค‘, ์ค€๋น„ ์ค‘, ์ข…๋ฃŒ ๋“ฑ ์—ฌ๋Ÿฌ ์ƒํƒœ ์ค‘ ํ•˜๋‚˜์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  3. ํ”„๋กœ๊ทธ๋žจ ์นด์šดํ„ฐ(Program Counter, PC): ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋‹ค์Œ์— ์‹คํ–‰ํ•  ๋ช…๋ น์–ด์˜ ์ฃผ์†Œ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ •๋ณด์ž…๋‹ˆ๋‹ค. ์ด ์ •๋ณด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค์Œ ์‹คํ–‰ํ•  ๋ช…๋ น์–ด๋ฅผ ์ฐพ์•„๊ฐ€๊ณ  ํ”„๋กœ์„ธ์Šค๋ฅผ ์žฌ๊ฐœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  4. ๋ ˆ์ง€์Šคํ„ฐ ์ƒํƒœ(Register State): PCB์—๋Š” ํ”„๋กœ์„ธ์Šค์˜ ์ค‘์š”ํ•œ ๋ ˆ์ง€์Šคํ„ฐ ๊ฐ’(์˜ˆ: CPU ๋ ˆ์ง€์Šคํ„ฐ)์ด ์ €์žฅ๋ฉ๋‹ˆ๋‹ค. ์ด๋Š” ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋‹ค์‹œ ์‹คํ–‰๋  ๋•Œ ๋ ˆ์ง€์Šคํ„ฐ ๊ฐ’์„ ๋ณต์›ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
  5. ํ”„๋กœ์„ธ์Šค ์šฐ์„  ์ˆœ์œ„(Process Priority): ํ”„๋กœ์„ธ์Šค ์šฐ์„  ์ˆœ์œ„๋Š” ์šด์˜ ์ฒด์ œ๊ฐ€ ํ”„๋กœ์„ธ์Šค๋ฅผ ์Šค์ผ€์ค„๋งํ•  ๋•Œ ์‚ฌ์šฉ๋˜๋Š” ์ •๋ณด์ž…๋‹ˆ๋‹ค. ๋†’์€ ์šฐ์„  ์ˆœ์œ„๋ฅผ ๊ฐ€์ง„ ํ”„๋กœ์„ธ์Šค๋Š” CPU ์‹œ๊ฐ„์„ ๋” ๋งŽ์ด ํ• ๋‹น๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  6. ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ์ •๋ณด(Memory Management Information): PCB์—๋Š” ํ”„๋กœ์„ธ์Šค์˜ ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น๊ณผ ๊ด€๋ จ๋œ ์ •๋ณด๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ํ”„๋กœ์„ธ์Šค์˜ ์ฃผ์†Œ ๊ณต๊ฐ„ ๋ฒ”์œ„๋‚˜ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ” ์ •๋ณด ๋“ฑ์ด ์—ฌ๊ธฐ์— ํฌํ•จ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  7. ์ž…์ถœ๋ ฅ ์ƒํƒœ(I/O State): ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋Œ€๊ธฐ ์ค‘์ธ ์ž…์ถœ๋ ฅ ์ž‘์—…๊ณผ ๊ด€๋ จ๋œ ์ •๋ณด๊ฐ€ PCB์— ์ €์žฅ๋ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์ž…์ถœ๋ ฅ ์ž‘์—…์ด ์™„๋ฃŒ๋˜๋ฉด ํ”„๋กœ์„ธ์Šค๋ฅผ ๋Œ€๊ธฐ ์ƒํƒœ์—์„œ ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ์ƒํƒœ๋กœ ์ „ํ™˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  8. ์Šค์ผ€์ค„๋ง ์ •๋ณด(Scheduling Information): PCB์—๋Š” ํ”„๋กœ์„ธ์Šค์˜ ์Šค์ผ€์ค„๋ง๊ณผ ๊ด€๋ จ๋œ ์ •๋ณด๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ์ด ์ •๋ณด๋Š” ์šด์˜ ์ฒด์ œ๊ฐ€ ํ”„๋กœ์„ธ์Šค๋ฅผ ์Šค์ผ€์ค„๋งํ•˜๊ณ  ์šฐ์„  ์ˆœ์œ„๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

 

4) ์ปค๋„์˜ Stack

๊ฐ ํ”„๋กœ์„ธ์Šค์˜ ์ปค๋„ Stack ์ €์žฅํ•œ๋‹ค. ํ”„๋กœ์„ธ์Šค๋Š” ํ•จ์ˆ˜ ํ˜ธ์ถœ์‹œ ์ž์‹ ์˜ ๋ณต๊ท€ ์ฃผ์†Œ๋ฅผ ์ €์žฅํ•˜์ง€๋งŒ, ์ปค๋„์€ ์ปค๋„ ๋‚ด์˜ ์ฃผ์†Œ๊ฐ€ ๋ณต๊ท€ ์ฃผ์†Œ๋กœ ์ €์žฅ๋œ๋‹ค. ์ปค๋„ ํ”„๋กœ์„ธ์Šค์˜ ์Šคํƒ ํฌ๊ธฐ๋Š” ์ผ๋ฐ˜ ์Šคํƒ๋ณด๋‹ค ๊ฐ™๊ฑฐ๋‚˜ ํฌ๋ฉฐ, ๊ฐ ํ”„๋กœ์„ธ์Šค๋งˆ๋‹ค ๋ณ„๋„์˜ ์Šคํƒ์„ ๋‘๊ณ  ๊ด€๋ฆฌํ•œ๋‹ค

 

+ ์ปค๋„์€ Heap์ด ์—†๋‹ค : ์šด์˜์ฒด์ œ์˜ ๋™์ ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น์„ ์œ„ํ•ด ํ•„์š”ํ•œ ๊ธฐ๋Šฅ์„ ์ปค๋„์ด ์ œ๊ณตํ•˜๋Š”๋ฐ, ์ปค๋„ ํ”„๋กœ์„ธ์Šค์—๋„ ํž™์ด ์ƒ๊ธฐ๊ฒŒ ๋˜๋ฉด,

1. ๋ณด์•ˆ, ์•ˆ์ •์„ฑ : ํž™ ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น์€ ํ”„๋กœ์„ธ์Šค ๊ฐ„ ๋ฌด์ œํ•œ์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผ์„ ํ—ˆ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ปค๋„ ๋‚ด๋ถ€์—์„œ ๊ด€๋ฆฌํ•˜๊ธฐ ์–ด๋ ต๋‹ค

2. ๋ฆฌ์†Œ์Šค ๊ด€๋ฆฌ : ์šด์˜์ฒด์ œ์˜ ์ž์›์„ ๊ด€๋ฆฌํ•  ๋•Œ ํž™ ์˜์—ญ์ด ์ƒ๊ธฐ๋ฉด ๊ด€๋ฆฌ๊ฐ€ ์–ด๋ ค์›Œ์ง„๋‹ค

3. ํ”„๋กœ์„ธ์Šค ๋ถ„๋ฆฌ : ์ปค๋„๊ณผ ์‚ฌ์šฉ์ž ํ”„๋กœ์„ธ์Šค ๊ฐ„ ํž™ ์˜์—ญ์ด ํ˜ผํ•ฉ๋˜๋Š” ๊ฒฝ์šฐ ๋ถ„๋ฆฌ๋ฅผ ํ›ผ์†ํ•˜๊ณ  ํ”„๋กœ์„ธ์Šค ๊ฐ„ ๊ฐ„์„ญ์ด ์ผ์–ด๋‚  ์ˆ˜ ์žˆ๋‹ค

4. ์šฐ์„ ์ˆœ์œ„์™€ ๋ฐ๋“œ๋ฝ : ์šฐ์„ ์ˆœ์œ„ ์Šค์ผ€์ค„๋ง ๋ฐ ๋ฐ๋“œ๋ฝ ํšŒํ”ผ ๊ฐ™์€ ์šด์˜์ฒด์ œ ๊ธฐ๋Šฅ๊ณผ ์ถฉ๋Œํ•  ์ˆ˜ ์žˆ๋‹ค

728x90