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

OS16

18. ์ƒํ˜ธ๋ฐฐ์ œ ๊ตฌํ˜„ ๋ฐฉ๋ฒ• ๋จผ์ €, ํ•ด๋‹น ํฌ์ŠคํŒ…์€ ๋‹จ์ผ ํ”„๋กœ์„ธ์„œ ์ƒํ˜ธ๋ฐฐ์ œ ๊ตฌํ˜„ ๋ฐฉ๋ฒ•์ธ ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์–ด์•ผ ํ•œ๋‹ค.์ธํ„ฐ๋ŸฝํŠธ ์„œ๋น„์Šค ๊ธˆ์ง€ ๋ฐฉ๋ฒ• ์ง„์ž… ์ฝ”๋“œ(Entry Code)์—์„œ cli(clear interrupt flag) ๋ช…๋ น์œผ๋กœ ์ธํ„ฐ๋ŸฝํŠธ ์„œ๋น„์Šค๋ฅผ ์ค‘์ง€ํ•˜๊ณ ์ž„๊ณ„ ๊ตฌ์—ญ(Critical Code)์—์„œ ์ธํ„ฐ๋ŸฝํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ๋ฌด์‹œํ•œ๋‹ค.์ง„์ถœ ์ฝ”๋“œ(Exit Code)์—์„œ sti(set interrupt flag) ๋ช…๋ น์œผ๋กœ ์ธํ„ฐ๋ŸฝํŠธ ์„œ๋น„์Šค๋ฅผ ์žฌ์‹คํ–‰ํ•œ๋‹ค.  ์ธํ„ฐ๋ŸฝํŠธ ์„œ๋น„์Šค๋ฅผ ์ค‘์ง€ํ•˜์ง€ ์•Š์„ ๊ฒฝ์šฐ, ๊ทธ๋ฆผ2์™€ ๊ฐ™์ด T1์ด ์ž„๊ณ„๊ตฌ์—ญ์„ ์ ‘๊ทผํ–ˆ์„ ๋•Œ, T1์—๊ฒŒ์„œ ์ธํ„ฐ๋ŸฝํŠธ ์„œ๋น„์Šค๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์Šค๋ ˆ๋“œ๋Š” ๋Œ€๊ธฐ ์ƒํƒœ๊ฐ€ ๋˜๊ณ  T2๋ฅผ ์Šค์ผ€์ค„ํ•œ๋‹ค. ์ด ๋•Œ, T2๊ฐ€ ์ž„๊ณ„ ๊ตฌ์—ญ์— ์ ‘๊ทผํ•˜๊ฒŒ ๋œ๋‹ค๋ฉด ๊ณต์œ  ์ž์›์— T1๊ณผ T2๊ฐ€ ๊ณต์กดํ•˜๋Š” ํ˜„์ƒ์ด ๋ฐœ์ƒํ•œ๋‹ค. ์ฆ‰ T1์ด ๋ณ€์ˆ˜์˜ ๊ฐ’์„ ์ฝ๊ณ  ์ธํ„ฐ.. 2024. 6. 16.
17. ์ƒํ˜ธ ๋ฐฐ์ œ (Mutual Exclusion) ์ƒํ˜ธ๋ฐฐ์ œ๋ž€? ์•ž์„œ ์Šค๋ ˆ๋“œ ๋™๊ธฐํ™”์—์„œ ์–ธ๊ธ‰๋œ ์ž„๊ณ„๊ตฌ์—ญ๊ณผ ์ƒํ˜ธ๋ฐฐ์ œ๋Š” ์Šค๋ ˆ๋“œ ๋™๊ธฐํ™”๋ฅผ ์œ„ํ•œ ์ค‘์š”ํ•œ ๊ฐœ๋…์ด๋‹ค.๋จผ์ €, ์ž„๊ณ„ ๊ตฌ์—ญ(Critical Section)์€ ๊ฐ ์Šค๋ ˆ๋“œ๋“ค์ด ๋™์‹œ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ๊ณต์œ  ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๊ตฌ์—ญ์ด๋‹ค.์ƒํ˜ธ ๋ฐฐ์ œ๋Š” ๋จผ์ € ์ž„๊ณ„ ๊ตฌ์—ญ์— ์ ‘๊ทผํ•œ ์Šค๋ ˆ๋“œ๊ฐ€ ์ž„๊ณ„ ๊ตฌ์—ญ์„ ๋…์ ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜์—ฌ ์Šค๋ ˆ๋“œ ๊ฐ„์˜ ์ˆœ์„œ๋ฅผ ๋ณด์žฅํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐœ๋…์ด๋‹ค. ์ž„๊ณ„ ๊ตฌ์—ญ๊ณผ ์ƒํ˜ธ ๋ฐฐ์ œ๋„ ์กฐ๊ธˆ ๋” ์‰ฝ๊ฒŒ ์ƒ๊ฐํ•ด๋ณด์ž. ์Šค๋ ˆ๋“œ A๋Š” ํšŸ์ง‘, ์Šค๋ ˆ๋“œ B๋Š” ๋งค์šดํƒ• ์ง‘์ด๋‹ค. ์Šค๋ ˆ๋“œ A์™€ B๋Š” ์ˆ˜์‚ฐ๋„๋งค์—์„œ ์‹ฑ์‹ฑํ•œ ์ƒ์„ ์„ ๊ฐ€์ ธ์™€์•ผํ•œ๋‹ค. ์Šค๋ ˆ๋“œ A์™€ B๋Š” ์„œ๋กœ ๊ฒฝ๋งค๊ฐ€๋ฅผ ๋ถ€๋ฅด๊ณ  ์žˆ๋Š”๋ฐ ๋„๋งค์ƒ์ด "๋งˆ์ง€๋ง‰์œผ๋กœ ํ˜„์žฌ ๊ฒฝ๋งค๊ฐ€ ๋ณด๋‹ค ๋†’์€ ๊ฐ€๊ฒฉ์„ ๋จผ์ € ์ œ์‹œํ•œ ์‚ฌ๋žŒ์—๊ฒŒ ํŒ๋งคํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค."๋ผ๊ณ  ํ–ˆ๋‹ค. ์Šค๋ ˆ๋“œ A์™€ B๋Š” ๋™์‹œ์— "100๋งŒ ์›!"์„ ์™ธ์ณค๋‹ค. ์ด.. 2024. 6. 15.
16. ์Šค๋ ˆ๋“œ ๋™๊ธฐํ™” (Thread Synchronization) ์Šค๋ ˆ๋“œ ๋™๊ธฐํ™”๋ž€ ๋ญ˜๊นŒ? ์Šค๋ ˆ๋“œ ๋™๊ธฐํ™”๋ž€ ๋‹ค์ˆ˜์˜ ์Šค๋ ˆ๋“œ๊ฐ€ ํ•˜๋‚˜์˜ ์ž์›์— ๋™์‹œ์— ์ ‘๊ทผํ•  ๋•Œ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ์ ์„ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.๋‹ค์ˆ˜์˜ ์Šค๋ ˆ๋“œ๊ฐ€ ํ•˜๋‚˜์˜ ์ž์›์— ๋™์‹œ์— ์ ‘๊ทผํ•œ๋‹ค๋Š”๊ฒŒ ๋ฌด์Šจ ๋ง์ผ๊นŒ?์Šค๋ ˆ๋“œ ๋™๊ธฐํ™” ์ดํ•ดํ•˜๊ธฐ  ๋จผ์ €, ์ปดํ“จํ„ฐ์˜ ๊ตฌ์กฐ๋ฅผ ์ž˜ ์•Œ๊ณ  ์žˆ์–ด์•ผํ•œ๋‹ค.๋…ผ๋ฆฌํšŒ๋กœ, ์ปดํ“จํ„ฐ ๊ตฌ์กฐ, ์šด์˜์ฒด์ œ ์•ž ๋‹จ์›์„ ์—ด์‹ฌํžˆ ๊ณต๋ถ€ํ–ˆ๋‹ค๋ฉด ์‰ฝ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„์ด๋‹ค. ์ดํ•ด๋ฅผ ํ•ด๋ณด์ž.์ปดํ“จํ„ฐ๋Š” ํด๋Ÿญ ๋‹จ์œ„๋กœ ๋™์ž‘ํ•œ๋‹ค.ํด๋Ÿญ ๋‹จ์œ„๋กœ ๋™์ž‘ํ•œ๋‹ค๋Š” ๊ฒƒ์€ ํ•˜๋‚˜์˜ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ๋•Œ, ์ผ์ • ์‹œ๊ฐ„์ด ์†Œ์š”๋œ๋‹ค๋Š” ์˜๋ฏธ์ด๋‹ค. TEMP = 10 ์ด ์žˆ์„ ๋•Œ, ํ•˜๋‚˜์˜ ํด๋Ÿญ์ด ์†Œ์š”๋˜๋Š”๋ฐ 0.001์ดˆ๋ผ๊ณ  ํ•ด๋ณด์ž.  ์Šค๋ ˆ๋“œ A์™€ B๊ฐ€ TEMP์— ์ž…๋ ฅํ•œ ๊ฐ’์„ ๋”ํ•˜๋ ค๊ณ  ํ•œ๋‹ค. 1. 0์ดˆ์— ์Šค๋ ˆ๋“œ A๋Š” TEMP์˜ ๊ฐ’์„ ํ™•์ธํ•œ๋‹ค. ๊ฐ’์€ 10์ด๋‹ค. 5๋ฅผ .. 2024. 6. 15.
15. CPU Scheduling Algorithm FCFS (First Come First Served) ์Šค์ผ€์ฅด๋ง ์„ ์ž…์„ ์ฒ˜๋ฆฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์Šค์ผ€์ค„๋ง ํŒŒ๋ผ๋ฏธํ„ฐ : ์Šค๋ ˆ๋“œ๋ณ„ ๋„์ฐฉ ์‹œ๊ฐ„ ๋น„์„ ์  ์Šค์ผ€์ฅด๋ง ์Šค๋ ˆ๋“œ ์šฐ์„ ์ˆœ์œ„ ์—†์Œ ๊ธฐ์•„ ์—†์Œ, ์Šค๋ ˆ๋“œ ์˜ค๋ฅ˜๋กœ ๋ฌดํ•œ ๋ฃจํ”„๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค๋ฉด ๊ธฐ์•„ ๋ฐœ์ƒ ์ฒ˜๋ฆฌ์œจ์ด ๋‚ฎ์Œ. ํ˜ธ์œ„ ํšจ๊ณผ (convoy effcet) ๋ฐœ, ๊ธด์Šค๋ ˆ๋“œ๊ฐ€ ์˜ค๋ž˜ CPU๋ฅผ ์ฐจ์ง€ํ•˜๋ฉด ๋Šฆ๊ฒŒ ๋“ค์–ด์˜จ ์Šค๋ ˆ๋“œ๋Š” ์˜ค๋ž˜ ๋Œ€๊ธฐ ์ด ์ฒ˜๋ฆฌ ์‹œ๊ฐ„ 11s, ๋Œ€๊ธฐ์‹œ๊ฐ„ 11s, ํ‰๊ท  ๋Œ€๊ธฐ์‹œ๊ฐ„ 11 / 4 = 2.75ms SJF (Shortest Job First) ์ตœ๋‹จ ์ž‘์—… ์šฐ์„  ์Šค์ผ€์ค„๋ง ์Šค์ผ€์ค„๋ง ํŒŒ๋ผ๋ฏธํ„ฐ : ์Šค๋ ˆ๋“œ ๋ณ„ ์˜ˆ์ƒ ์‹คํ–‰ ์‹œ๊ฐ„ ๋น„์„ ์  ์Šค์ผ€์ค„๋ง ์Šค๋ ˆ๋“œ ์šฐ์„ ์ˆœ์œ„ : ์งง์€ ์Šค๋ ˆ๋“œ ์‹คํ–‰ ์‹œ๊ฐ„ ๊ธฐ์•„ ๋ฐœ์ƒ๊ฐ€๋Šฅ, ์ง€์†์ ์œผ๋กœ ์งง์€ ์Šค๋ ˆ๋“œ๊ฐ€ ๋„์ฐฉ์‹œ ๊ธด ์Šค๋ ˆ๋“œ์˜ ์‹คํ–‰์„ ์˜ˆ์ธก ๋ถˆ๊ฐ€ ์งง์€ ์Šค๋ ˆ๋“œ๊ฐ€ ๋จผ์ € ์‹ค.. 2024. 4. 22.
14. CPU Scheduling CPU ์Šค์ผ€์ค„๋ง์€ ์™œ ์ƒ๊ฒผ์„๊นŒ? ์šด์˜์ฒด์ œ์˜ ๋ฐœ์ „์„ ๊ณต๋ถ€ํ•˜๋ฉด์„œ ๋‹ค์ค‘ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด ๋„์ž…๋œ ๊ฒƒ์„ ์•Œ๊ฒŒ๋๋‹ค. ๋‹ค์ค‘ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์€ I/O ์ฒ˜๋ฆฌ๋กœ ์ธํ•œ CPU Idle Time์„ ์ค„์—ฌ์„œ CPU ํ™œ์šฉ๋ฅ ์„ ํ–ฅ์ƒ ์‹œํ‚ค๊ธฐ ์œ„ํ•ด์„œ ๋„์ž… ๋˜์—ˆ๋Š”๋ฐ ์ด ๋•Œ, ๋‹ค์ค‘ ์ฒ˜๋ฆฌ๋ฅผ ํ•˜๊ธฐ ์œ„ํ•œ ๊ธฐ๋ฒ•์ด CPU ์Šค์ผ€์ค„๋ง์ด๋‹ค. ์Šค๋ ˆ๋“œ๊นŒ์ง€ ๊ณต๋ถ€ํ•˜๋ฉด์„œ ์•Œ๊ฒŒ ๋œ ๋‚ด์šฉ์€ CPU๋Š” ์Šค๋ ˆ๋“œ๋ฅผ ์Šค์ผ€์ค„๋งํ•ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ๊ทผ๋ฐ ์–ด๋–ค ์Šค๋ ˆ๋“œ๋ฅผ ์„ ํƒํ•  ๊ฒƒ์ธ์ง€ ๊ณจ๋ผ์•ผํ•œ๋‹ค. ์œ„์™€ ๊ฐ™์€ ์ •์ฑ…์„ ๊ฐ€์ง„ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํฌ๊ฒŒ CPU ์Šค์ผ€์ค„๋ง ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋ผ๊ณ  ํ•˜๊ณ  ์—„๋ฐ€ํ•˜๊ฒŒ๋Š” ์Šค๋ ˆ๋“œ ์Šค์ผ€์ค„๋ง์ด๋ผ๊ณ  ํ•œ๋‹ค. ๋‹ค์ค‘ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์€ 2๊ฐ€์ง€ ์Šค์ผ€์ค„๋ง์„ ํ†ตํ•ด ๋ฐœ์ƒํ•œ๋‹ค. 1. ์ž‘์—… ์Šค์ผ€์ค„๋ง(job scheduling) - ๋””์Šคํฌ ์žฅ์น˜๋กœ๋ถ€ํ„ฐ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ฆด ์ž‘์—…์„ ์„ ํƒํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‹œ์ž‘ํ•˜๊ฑฐ๋‚˜ ์ข….. 2024. 4. 22.
13. ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋“œ ๊ตฌํ˜„ ๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋“œ ๊ตฌํ˜„ ? ๊ฐœ๋ฐœ์ž๋กœ ๊ฑฐ๋“ญ๋‚˜๋ ค๋ฉด ๊ผญ ํ•„์š”ํ•œ ๊ฐœ๋…์ด๋‹ค. ์šฐ๋ฆฌ๋„ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋ฉด์„œ ๋‹ค์–‘ํ•œ ์‚ฌ์šฉ์ž์— ๋Œ€ํ•ด ์ž‘์—…์„ ํ•ด์•ผํ•  ๊ฒƒ์ด๋‹ค. ๊ทธ ๋•Œ, ์Šค๋ ˆ๋“œ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด ์šฐ๋ฆฌ๊ฐ€ ๋งŒ๋“  ์Šค๋ ˆ๋“œ๊ฐ€ ์‹œ์Šคํ…œ์—์„œ ์Šค์ผ€์ค„ ๋  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. ํฌ๊ฒŒ N:1 ๋งคํ•‘, 1:1 ๋งคํ•‘, N:M ๋งคํ•‘์ด ์žˆ๋‹ค. X : Y ๊ผด๋กœ, X๊ฐœ์˜ ์‚ฌ์šฉ์ž ๋ ˆ๋ฒจ ์Šค๋ ˆ๋“œ๋ฅผ Y๊ฐœ์˜ ์ปค๋„ ๋ ˆ๋ฒจ ์Šค๋ ˆ๋“œ๋กœ ๋งคํ•‘ํ•œ๋‹ค๋Š” ๋‚ด์šฉ์ธ๋ฐ ์ด ์™ธ์—๋„ 1:N ๋งคํ•‘๋„ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ์ค‘์š”ํ•œ N:1, 1:1 ๋งŒ ์ž‘์„ฑํ•˜๋„๋ก ํ•˜๊ฒ ๋‹ค .N(User):1(Kernel) ๋งคํ•‘ ๋ง ๊ทธ๋Œ€๋กœ N๊ฐœ์˜ ์‚ฌ์šฉ์ž ์Šค๋ ˆ๋“œ๊ฐ€ 1๊ฐœ์˜ ์ปค๋„ ์Šค๋ ˆ๋“œ๋กœ ๋งคํ•‘ํ•˜๋Š” ๊ฐœ๋…์ด๋‹ค. ์šด์˜์ฒด์ œ(์ปค๋„ ์ž…์žฅ)๋Š” ๋ชจ๋“  ํ”„๋กœ์„ธ์Šค๋ฅผ Main ์Šค๋ ˆ๋“œ๋ผ๋Š” ๋‹จ์ผ ํ”„๋กœ์„ธ์Šค๋กœ ์ฒ˜๋ฆฌํ•œ๋‹ค. ์ด ๋ง์€ ์ปค๋„ ์˜์—ญ์— ์ €์žฅ๋˜๋Š” ์ปค๋„ ๋ ˆ๋ฒจ ์Šค๋ ˆ๋“œ์˜.. 2024. 4. 22.
12. ์ปค๋„ ๋ ˆ๋ฒจ ์Šค๋ ˆ๋“œ์™€ ์‚ฌ์šฉ์ž ๋ ˆ๋ฒจ ์Šค๋ ˆ๋“œ ์Šค๋ ˆ๋“œ์˜ ๋ ˆ๋ฒจ? ์Šค๋ ˆ๋“œ๋Š” ์Šค์ผ€์ค„๋ง ์ฃผ์ฒด์— ๋”ฐ๋ผ ๋‘ ์ข…๋ฅ˜์˜ ์Šค๋ ˆ๋“œ๋กœ ๊ตฌ๋ถ„๋œ๋‹ค. 1. ์ปค๋„ ๋ ˆ๋ฒจ ์Šค๋ ˆ๋“œ (Kernal-Level Thread) : ์ปค๋„์— ์˜ํ•ด ์Šค์ผ€์ค„๋ง ๋œ๋‹ค. 2. ์‚ฌ์šฉ์ž ๋ ˆ๋ฒจ ์Šค๋ ˆ๋“œ (User-Level Thread) : ์Šค๋ ˆ๋“œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ์˜ํ•ด ์Šค์ผ€์ค„๋ง ๋œ๋‹ค. TCB๋ฅผ ์†Œ์œ ํ•˜๊ณ  ์žˆ๋Š” ์ฃผ์ฒด์— ๋”ฐ๋ผ ๋‘ ์ข…๋ฅ˜์˜ ์Šค๋ ˆ๋“œ๋กœ ๊ตฌ๋ถ„๋˜๋Š”๋ฐ ์ž์„ธํžˆ ์•Œ์•„๋ณด๋„๋ก ํ•˜๊ฒ ๋‹ค. ์ปค๋„ ๋ ˆ๋ฒจ ์Šค๋ ˆ๋“œ ์ปค๋„ ๋ ˆ๋ฒจ ์Šค๋ ˆ๋“œ๋Š” ์‹œ์Šคํ…œ ํ˜ธ์ถœ์„ ํ†ตํ•ด์„œ๋งŒ ์ƒ์„ฑ๋œ๋‹ค. ์ฆ‰, ์ปค๋„์— ์˜ํ•ด์„œ๋งŒ ์Šค์ผ€์ค„๋ง ๋˜๋Š” ๊ฒƒ์ด๋‹ค. ํ•˜์ง€๋งŒ, ์ปค๋„ ์ฝ”๋“œ์™€ ๋‹ฌ๋ฆฌ ์ปค๋„ ๋ ˆ๋ฒจ ์Šค๋ ˆ๋“œ์˜ ์ฝ”๋“œ๋‚˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์ปค๋„ ๊ณต๊ฐ„๋ฟ ์•„๋‹ˆ๋ผ ์‚ฌ์šฉ์ž ๊ณต๊ฐ„์—๋„ ์žˆ์„ ์ˆ˜ ์žˆ๋‹ค. ์ด๊ฒŒ ๋ฌด์Šจ๋ง์ธ์ง€ ์ •๋ง ํ—ท๊ฐˆ๋ ธ๋‹ค. thread_create() ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ktread_create()๋ผ๋Š” ์Šค๋ ˆ๋“œ.. 2024. 4. 22.
11. ์Šค๋ ˆ๋“œ ์ฃผ์†Œ ๊ณต๊ฐ„๊ณผ ์ปจํ…์ŠคํŠธ ์Šค๋ ˆ๋“œ์˜ ์ฃผ์†Œ๊ณต๊ฐ„์€ ์ƒ๊ฐ๋ณด๋‹ค ๊ฐ„๋‹จํ•˜๋‹ค. ํ”„๋กœ์„ธ์Šค ์ฃผ์†Œ๊ณต๊ฐ„์„ ๊ทธ๋Œ€๋กœ ๋‚˜๋ˆ„์–ด๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ๊ธฐ์กด ํ”„๋กœ์„ธ์Šค์˜ ์ฝ”๋“œ, ๋ฐ์ดํ„ฐ, ํž™, ์Šคํƒ ์˜์—ญ์€ ๊ณต์œ  ์˜์—ญ์ด๋˜๊ณ  ๊ฐœ๋ณ„ ์Šค๋ ˆ๋“œ๋งˆ๋‹ค ์ฝ”๋“œ ์˜์—ญ, ๋ฐ์ดํ„ฐ ์˜์—ญ, ์Šคํƒ ์˜์—ญ, ์ปค๋„ ์˜์—ญ์œผ๋กœ ๋‚˜๋ˆ„์–ด ์‚ฌ์šฉ๋˜๊ณ  ์žˆ๋‹ค. โ€ป ํ”„๋กœ์„ธ์Šค์™€ ์Šค๋ ˆ๋“œ๋Š” ์œ ์‚ฌํ•˜๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค. ์Šค๋ ˆ๋“œ ์ƒ๋ช… ์ฃผ๊ธฐ ํ”„๋กœ์„ธ์Šค์—์„œ ์Šค๋ ˆ๋“œ๋กœ ๋ฐ”๋€Œ์—ˆ์œผ๋‹ˆ ์œ ์‚ฌํ•œ ๊ฒƒ์€ ๋‹น์—ฐํ•˜๋‹ค. ๊ทธ๋Ÿผ ํ”„๋กœ์„ธ์Šค์—์„œ ์žˆ๋Š” ๊ฐœ๋…๋“ค์€ ์›ฌ๋งŒํ•˜๋ฉด ์Šค๋ ˆ๋“œ์—๋„ ์ ์šฉ๋œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ๊ฒƒ์ด๋‹ค. ์Šค๋ ˆ๋“œ ๋˜ํ•œ ์ƒ๋ช…์ฃผ๊ธฐ๊ฐ€ ์žˆ๋‹ค. ํ”„๋กœ์„ธ์Šค๋Š” NEW, Ready, Running, Blocked, Zombie, Out ์ƒํƒœ๊ฐ€ ์žˆ์—ˆ๋‹ค. ์Šค๋ ˆ๋“œ๋Š” Ready, Running, Blocked, Terminated ์ƒํƒœ๊ฐ€ ์žˆ๋‹ค. ๊ฐ ์ƒํƒœ์— ๋Œ€ํ•œ ๊ธฐ๋ณธ์ ์ด ๋‚ด์šฉ์€ ํ”„๋กœ์„ธ์Šค.. 2024. 4. 22.
10. ์Šค๋ ˆ๋“œ (Thread) ์“ฐ๋ ˆ๋“œ๋Š” ์™œ ์‚ฌ์šฉํ• ๊นŒ? ์Šค๋ ˆ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋œ ๋ฐฐ๊ฒฝ๋„ ์žˆ์„ ๊ฒƒ์ด๋‹ค. ์ด์œ ๋Š” ํ”„๋กœ์„ธ์Šค์˜ ๋ฌธ์ œ์  ๋•Œ๋ฌธ์ด๋‹ค. ํ”„๋กœ์„ธ์Šค์—์„œ ์ปจํ…์ŠคํŠธ ์Šค์œ„์นญ์ด ๋ฐœ์ƒํ•  ๊ฒฝ์šฐ, ํ”„๋กœ์„ธ์Šค ์ƒ์„ฑ์— ๋„ˆ๋ฌด ๋งŽ์€ ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค ํ”„๋กœ์„ธ์Šค ์ƒ์„ฑ์‹œ PCB ์ƒ์„ฑ, ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น, ๋ถ€๋ชจ ํ”„๋กœ์„ธ์Šค ๋‚ด์šฉ ๋ณต์‚ฌ ๋“ฑ ๋งŽ์€ ์ž‘์—…์„ ํ•ด์•ผํ•œ๋‹ค. ๊ทธ ์™ธ์—๋„ ๋’ค์— ๋‚˜์˜ฌ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ” ์ฐธ์กฐ, ์บ์‹œ ์—…๋ฐ์ดํŠธ ๋“ฑ ๋งŽ์€ ๋ถ€๋ถ„์—์„œ ๋ฌธ์ œ์ ์ด ๋ฐœ์ƒ ํ”„๋กœ์„ธ์Šค ๊ฐ„์˜ ํ†ต์‹ ์ด ์–ด๋ ต๋‹ค. ํ”„๋กœ์„ธ์Šค๋Š” ๋…๋ฆฝ์ ์ธ ๊ณต๊ฐ„์„ ๊ฐ–๊ณ  ์žˆ์œผ๋ฏ€๋กœ ์„œ๋กœ ์นจ๋ฒ”ํ•  ์ˆ˜ ์—†์–ด์„œ ํ†ต์‹ ์ด ํž˜๋“ค๋‹ค๋Š” ์ . ํ”„๋กœ์„ธ์Šค ๊ฐ„ ํ†ต์‹ ์„ ์œ„ํ•ด ๋ฉ”๋ชจ๋ฆฌ ๋งต, ํŒŒ์ดํ”„, ์†Œ์ผ“ ๋“ฑ ๋‹ค์–‘ํ•œ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ–ˆ๋‹ค. ํ”„๋กœ์„ธ์Šค๋Š” ์ž…๋ ฅ์„ ๋…์ ํ•˜๋Š” ForeGorund Process์™€ ๊ฐ์ข… ์ฒ˜๋ฆฌ๋ฅผ ํ•˜๋Š” BackGround Process๊ฐ€ ์กด์žฌํ•œ๋‹ค. ๊ทธ ์™ธ์—๋„.. 2024. 4. 21.