[JAVA] Thread ๊ธฐ์ดˆ

[JAVA] Thread ๊ธฐ์ดˆ

1. ์Šค๋ ˆ๋“œ์˜ ๊ฐœ๋… ์ •์ ์ธ ํ”„๋กœ๊ทธ๋žจ์ด ์ž์›(CPU๋‚˜ ๋ฉ”๋ชจ๋ฆฌ)์„ ์–ป์–ด ์‹คํ–‰ ์ค‘์— ๋“ค์–ด๊ฐ„ ๊ฒƒ์„ ํ”„๋กœ์„ธ์Šค๋ผ ํ•˜๋ฉฐ, ๋ชจ๋“  ํ”„๋กœ๊ทธ๋žจ์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ํ”„๋กœ์„ธ์Šค ๋‹จ์œ„๋กœ ์‹คํ–‰๋œ๋‹ค. ์Šค๋ ˆ๋“œ๋Š” ํ”„๋กœ์„ธ์Šค ๋‚ด์˜ ์ž‘์€ ์‹คํ–‰ ๋‹จ์œ„์ด๋ฉฐ ํ”„๋กœ์„ธ์Šค๋Š” ํ•˜๋‚˜์˜ ์Šค๋ ˆ๋“œ๋กœ ๊ตฌ์„ฑ๋˜๊ฑฐ๋‚˜ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ž‘์€ ์Šค๋ ˆ๋“œ๋กœ ๊ตฌ์„ฑ๋  ์ˆ˜ ์žˆ๋‹ค. ์ฐธ๊ณ : [์šด์˜์ฒด์ œ] 4. ๋ณ‘ํ–‰ ํ”„๋กœ์„ธ์Šค JAVA ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰์‹œํ‚ค๋ฉด JVM ์ƒ์— ์ž๋™์œผ๋กœ ์Šค๋ ˆ๋“œ๊ฐ€ ํ•˜๋‚˜ ์ƒ์„ฑ๋˜๊ณ  ์ด๋ฅผ ‘๋ฉ”์ธ ์Šค๋ ˆ๋“œ’ ๋ผ ํ•œ๋‹ค. ๋ฉ”์ธ ์Šค๋ ˆ๋“œ ๋‚ด์—์„œ ์—ฌ๋Ÿฌ ์Šค๋ ˆ๋“œ๋ฅผ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๊ณ , ๋ชจ๋“  ์Šค๋ ˆ๋“œ๋Š” ์šฐ์„ ์ˆœ์œ„(priority)๋ฅผ ๊ฐ€์ง€๋Š”๋ฐ, ์ฒ˜์Œ์—๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์ž์‹ ์„ ์ƒ์„ฑํ•œ ์Šค๋ ˆ๋“œ์™€ ๋™์ผํ•œ ์šฐ์„ ์ˆœ์œ„๋ฅผ ๊ฐ€์ง€๊ณ  ์ƒ์„ฑ๋œ๋‹ค. ๊ฐ ์Šค๋ ˆ๋“œ ๋ณ„ ์šฐ์„ ์ˆœ์œ„๋ฅผ ์ž„์œผ๋กœ ์„ค์ •ํ•  ์ˆ˜๋„ ์žˆ๋‹ค. ์ด๋•Œ ์Šค๋ ˆ๋“œ๋ฅผ ์ถ”์ƒํ™” ํ•œ Thre..

  • textsms
[์šด์˜์ฒด์ œ] 10. ๋ถ„์‚ฐ ์šด์˜์ฒด์ œ

[์šด์˜์ฒด์ œ] 10. ๋ถ„์‚ฐ ์šด์˜์ฒด์ œ

1. ๋ถ„์‚ฐ ์šด์˜์ฒด์ œ ๊ฐœ์š” 1. ๋ถ„์‚ฐ ์‹œ์Šคํ…œ ๋ถ„์‚ฐ ์‹œ์Šคํ…œ์ด๋ž€, ํ†ต์‹  ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•ด ์„œ๋กœ ์•ฝํ•˜๊ฒŒ ๊ฒฐํ•ฉ๋œ ํ”„๋กœ์„ธ์„œ๋“ค์˜ ์ง‘ํ•ฉ์ด๋‹ค. ๊ฐ ํ”„๋กœ์„ธ์„œ๋Š” ๋ฉ”๋ชจ๋ฆฌ์™€ ํด๋Ÿญ์„ ๊ณต์œ ํ•˜์ง€ ์•Š๋Š”๋‹ค. ๋˜ํ•œ ๊ฐ ํ”„๋กœ์„ธ์„œ๋Š” ์ž์‹ ์˜ ๋กœ์ปฌ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ฐ€์ง€๋ฉฐ LAN ๋˜๋Š” WAN๊ณผ ๊ฐ™์€ ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•ด ํ†ต์‹ ํ•œ๋‹ค. ๋ถ„์‚ฐ ์‹œ์Šคํ…œ ๋‚ด์— ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์„œ์˜ ๊ด€์ ์—์„œ ์ž์‹ ์ด ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์ž์›์„ ๋กœ์ปฌ์ด๋ผ๊ณ  ํ•˜๊ณ , ๊ทธ ํ”„๋กœ์„ธ์„œ ์™ธ์˜ ๋‚˜๋จธ์ง€ ํ”„๋กœ์„ธ์„œ๋“ค๊ณผ ๊ทธ๋“ค์˜ ์ž์›์„ ์›๊ฒฉ์ด๋ผ๊ณ  ํ•œ๋‹ค. ๋ถ„์‚ฐ ์‹œ์Šคํ…œ ๋‚ด์˜ ํ”„๋กœ์„ธ์„œ๋“ค์€ ์‹œ์Šคํ…œ ํ™˜๊ฒฝ์— ๋”ฐ๋ผ ์‚ฌ์ดํŠธ, ๋…ธ๋“œ, ์ปดํ“จํ„ฐ, ๊ธฐ๊ณ„, ํ˜ธ์ŠคํŠธ ๋“ฑ ์—ฌ๋Ÿฌ ์šฉ์–ด๋กœ ๋ถˆ๋ฆฐ๋‹ค. ํ”„๋กœ์„ธ์„œ์˜ ์œ„์น˜๋ฅผ ๊ฐ•์กฐํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์ดํŠธ ๋ผ๋Š” ์šฉ์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋ฉฐ, ์‚ฌ์ดํŠธ์— ์žˆ๋Š” ํŠน์ • ์‹œ์Šคํ…œ์„ ๋‚˜ํƒ€๋‚ด๊ธฐ ์œ„ํ•ด ํ˜ธ์ŠคํŠธ ๋ผ๋Š” ์šฉ์–ด๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ๋˜ํ•œ ํ•œ ์‚ฌ์ดํŠธ์˜ ํ˜ธ์ŠคํŠธ ์ž..

  • textsms
[์šด์˜์ฒด์ œ] 9. ์ €์žฅ์žฅ์น˜ ๋ฐ ํŒŒ์ผ

[์šด์˜์ฒด์ œ] 9. ์ €์žฅ์žฅ์น˜ ๋ฐ ํŒŒ์ผ

1. ์ €์žฅ์žฅ์น˜์˜ ์ข…๋ฅ˜ 1. ์ˆœ์ฐจ์ ‘๊ทผ ์ €์žฅ์žฅ์น˜ ์ˆœ์ฐจ์ ‘๊ทผ ์ €์žฅ์žฅ์น˜๋Š” ์ˆœ์ฐจ์ ์œผ๋กœ ๊ธฐ๋ก ๋ฐ ํŒ๋…์„ ํ•˜๋Š” ์ €์žฅ์žฅ์น˜์ด๋‹ค. ๋Œ€ํ‘œ์ ์ธ ์ˆœ์ฐจ์ ‘๊ทผ ์ €์žฅ์žฅ์น˜๋Š” ํ…Œ์ดํ”„์ด๋ฉฐ ์›ํ•˜๋Š” ํŠน์ • ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•˜๋Š” ๊ฒƒ์ด ๊ต‰์žฅํžˆ ๋น„ํšจ์œจ์ ์ด๋‹ค. ์˜ค๋Š˜๋‚ ์—๋Š” ๋Œ€๋Ÿ‰ ๋ฐ์ดํ„ฐ์˜ ๋ฐฑ์—… ์šฉ๋„ ์ •๋„๋กœ๋งŒ ์‚ฌ์šฉ๋˜๊ณ  ์žˆ๋‹ค. 2. ์ง์ ‘์ ‘๊ทผ ์ €์žฅ์žฅ์น˜ ์ง์ ‘์ ‘๊ทผ ์ €์žฅ์žฅ์น˜๋Š” ์œ„์น˜๋ฅผ ์ง์ ‘ ์ง€์ •ํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๊ฑฐ๋‚˜ ์“ธ ์ˆ˜ ์žˆ๋Š” ์žฅ์น˜์ด๋‹ค. ์ž„์˜์ ‘๊ทผ ์ €์žฅ์žฅ์น˜(random access storage devices) ๋ผ๊ณ ๋„ ํ•œ๋‹ค. ์ง์ ‘์ ‘๊ทผ ์ €์žฅ์žฅ์น˜์˜ ์ข…๋ฅ˜๋Š” ํฌ๊ฒŒ ์ž๊ธฐ ๋””์Šคํฌ, ๊ด‘ ๋””์Šคํฌ, SSD ๋กœ ๋‚˜๋‰œ๋‹ค. 2. ๋””์Šคํฌ ์Šค์ผ€์ค„๋ง ๋””์Šคํฌ ์Šค์ผ€์ค„๋ง(disk scheduling)์€ ๋””์Šคํฌ ์ ‘๊ทผ ์š”๊ตฌ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์ˆœ์„œ๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ์ž‘์—…์ด๋‹ค. ๋””์Šคํฌ ์Šค์ผ€์ค„๋Ÿฌ๋Š” ๋””์Šคํฌ ๋‚ด์˜ ๋ฐ..

  • textsms
[์šด์˜์ฒด์ œ] 8. ์žฅ์น˜ ๊ด€๋ฆฌ

[์šด์˜์ฒด์ œ] 8. ์žฅ์น˜ ๊ด€๋ฆฌ

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

  • textsms
[์šด์˜์ฒด์ œ] 7. ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ

[์šด์˜์ฒด์ œ] 7. ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ

1. ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ์˜ ๊ฐœ๋… ์‹œ์Šคํ…œ ์ƒ ๋ฉ”๋ชจ๋ฆฌ์˜ ํฌ๊ธฐ๊ฐ€ ํŠน์ • ํ”„๋กœ์„ธ์Šค๋ฅผ ์—ฐ์† ํ• ๋‹นํ•˜๊ธฐ์—๋Š” ๋ถ€์กฑํ•œ ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค. ์ด๋Ÿฐ ๊ฒฝ์šฐ ๋ฉ”๋ชจ๋ฆฌ์— ํ”„๋กœ์„ธ์Šค๋ฅผ ์ ์žฌํ•˜๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ ์ œ์‹œ๋œ ๊ฒƒ์ด ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ(virtual memory)์˜ ๊ฐœ๋…์ด๋‹ค. ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ์˜ ํ•ต์‹ฌ ๊ฐœ๋…์€, ํ”„๋กœ์„ธ์Šค์— ์˜ํ•ด ์ฐธ์กฐ๋˜๋Š” ์ฃผ์†Œ์™€ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์ฃผ์†Œ๋ฅผ ๋ถ„๋ฆฌํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํ”„๋กœ๊ทธ๋žจ ๋ฐ ๋ฐ์ดํ„ฐ์—์„œ ํ•„์š”ํ•œ ์ผ๋ถ€๋งŒ ๋ฉ”๋ชจ๋ฆฌ์— ์ ์žฌํ•จ์œผ๋กœ์จ ์‹คํ–‰์„ ๊ฐ€๋Šฅํ•˜๋„๋ก ํ•œ๋‹ค. ์ด ๋•Œ, ์‹คํ–‰ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ฐธ์กฐํ•˜๋Š” ์ฃผ์†Œ๋ฅผ ๊ฐ€์ƒ ์ฃผ์†Œ(virtual address) ๋ผ๊ณ  ๋ถ€๋ฅด๋ฉฐ, ์‹ค์ œ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์ฃผ์†Œ๋ฅผ ์‹ค์ฃผ์†Œ(real address) ๋˜๋Š” ๋ฌผ๋ฆฌ์  ์ฃผ์†Œ(physical address) ๋ผ๊ณ  ํ•œ๋‹ค. ๋˜ํ•œ ์‹คํ–‰ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ฐธ์กฐํ•˜๋Š” ๊ฐ€์ƒ์ฃผ์†Œ์˜ ๋ฒ”์œ„๋ฅผ ๊ฐ€์ƒ์ฃผ์†Œ ๊ณต๊ฐ„(v..

  • textsms
[์šด์˜์ฒด์ œ] 6. ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ

[์šด์˜์ฒด์ œ] 6. ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ

1. ํ”„๋กœ์„ธ์Šค์™€ ๋ฉ”๋ชจ๋ฆฌ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋™์ž‘ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” CPU์™€ ๋ฉ”๋ชจ๋ฆฌ๋Š” ํ•„์ˆ˜์ ์ธ ์š”์†Œ์ด๋‹ค. ํ”„๋กœ์„ธ์Šค๋Š” ์‹คํ–‰ ์ค‘ ํ”„๋กœ๊ทธ๋žจ ์นด์šดํ„ฐ(PC)๊ฐ€ ์ฐธ์กฐํ•˜๋Š” ๋ช…๋ น์–ด๋ฅผ ์ฝ์–ด์™€์„œ ์‹คํ–‰ํ•œ๋‹ค. ์—ฌ๊ธฐ์„œ PC๊ฐ€ ์ฐธ์กฐํ•˜๋Š” ์ €์žฅ๊ณต๊ฐ„์ด ๋ฐ”๋กœ ๋ฉ”๋ชจ๋ฆฌ์ƒ์˜ ๊ณต๊ฐ„์ด๋‹ค. 2. ๋‹จ์ผ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํ™˜๊ฒฝ ์ดˆ๊ธฐ์˜ ๋‹จ์ผ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํ™˜๊ฒฝ์—์„œ๋Š” ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค๋งŒ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์˜€๋‹ค. ๋”ฐ๋ผ์„œ ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์— ์—ฐ์†๋œ ๋ธ”๋ก์œผ๋กœ ํ• ๋‹น๋˜๋Š” ์—ฐ์† ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น ๋ฐฉ์‹์„ ์ด์šฉํ•˜์˜€๋‹ค. ๋‹จ์  ๋ฉ”๋ชจ๋ฆฌ ์šฉ๋Ÿ‰์„ ์ดˆ๊ณผํ•˜๋Š” ํ”„๋กœ์„ธ์Šค๋Š” ์‹คํ–‰๋  ์ˆ˜ ์—†๋‹ค. ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ํ”„๋กœ์„ธ์Šค๋„ ๋ฉ”๋ชจ๋ฆฌ์— ์ ์žฌ๋˜์–ด ์žˆ์–ด์•ผ ํ•œ๋‹ค. ํ•œ ๋ช…์˜ ์œ ์ €๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ ๊ฑฐํ•˜๊ณ  ์žˆ์œผ๋ฏ€๋กœ ์ฃผ๋ณ€์žฅ์น˜ ๋“ฑ ์ž์›์˜ ๋‚ญ๋น„๊ฐ€ ์‹ฌํ•˜๋‹ค. 3. ๋‹ค์ค‘ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํ™˜๊ฒฝ ๋‹ค์ค‘ ํ”„๋กœ๊ทธ๋ž˜๋ฐ(Multi Programming) ์ด๋ž€, ์—ฌ๋Ÿฌ๊ฐœ..

  • textsms