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

์ž„๊ณ„๊ตฌ์—ญ3

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.