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

๋ฉ”๋ชจ๋ฆฌ7

๋ฌผ๋ฆฌ์ฃผ์†Œ(Physical Address)์™€ ๋…ผ๋ฆฌ์ฃผ์†Œ(Logical Address) ๋ฌผ๋ฆฌ์ฃผ์†Œ(Physical Address) ๋ฌผ๋ฆฌ์ฃผ์†Œ๋Š” ์ปดํ“จํ„ฐ์˜ ์‹ค์ œ ํ•˜๋“œ์›จ์–ด ๋ฉ”๋ชจ๋ฆฌ ์žฅ์น˜์— ํ• ๋‹น๋œ ์ฃผ์†Œ๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ๋ฌผ๋ฆฌ์  ์ฃผ์†Œ๋Š” ์ปดํ“จํ„ฐ์˜ RAM (Random Access Memory) ์นฉ์ด๋‚˜ ๋‹ค๋ฅธ ํ•˜๋“œ์›จ์–ด ์žฅ์น˜์—์„œ ์ง์ ‘์ ์œผ๋กœ ์ฐธ์กฐ๋ฉ๋‹ˆ๋‹ค. ๋ฌผ๋ฆฌ์ฃผ์†Œ๋Š” ํ•˜๋“œ์›จ์–ด ์ˆ˜์ค€์—์„œ๋งŒ ์˜๋ฏธ๊ฐ€ ์žˆ์œผ๋ฉฐ ๊ฐ ๋ฉ”๋ชจ๋ฆฌ ์…€์€ ๋ฌผ๋ฆฌ์  ์ฃผ์†Œ๋กœ ์‹๋ณ„๋ฉ๋‹ˆ๋‹ค. ์ฆ‰ ๋ฌผ๋ฆฌ ์ฃผ์†Œ๋Š” ๋ง ๊ทธ๋Œ€๋กœ ์ •๋ณด๊ฐ€ ์‹ค์ œ๋กœ ์ €์žฅ๋œ ํ•˜๋“œ์›จ์–ด์ƒ์˜ ์ฃผ์†Œ๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๋…ผ๋ฆฌ์ฃผ์†Œ (Logical Address) ๋…ผ๋ฆฌ์ฃผ์†Œ๋Š” ํ”„๋กœ๊ทธ๋žจ์ด๋‚˜ CPU๊ฐ€ ์ƒ์„ฑํ•œ ์ฃผ์†Œ๋กœ, ์‹ค์ œ ํ•˜๋“œ์›จ์–ด์™€๋Š” ๋…๋ฆฝ์ ์ž…๋‹ˆ๋‹ค. ํ”„๋กœ๊ทธ๋žจ์ด ๋ฉ”๋ชจ๋ฆฌ์— ์ ‘๊ทผํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ์ฃผ์†Œ์ด๋ฉฐ, ์ด ์ฃผ์†Œ๋Š” ํ”„๋กœ์„ธ์„œ(CPU)์˜ ๊ด€์ ์—์„œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๋…ผ๋ฆฌ์ฃผ์†Œ๋Š” ํ”„๋กœ์„ธ์Šค๊ฐ€ ํ• ๋‹น๋ฐ›์€ ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ ๊ณต๊ฐ„์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ์šด์˜์ฒด์ œ๋Š” .. 2023. 10. 11.
๋ ˆ์ง€์Šคํ„ฐ๋ž€? ๋ ˆ์ง€์Šคํ„ฐ ์ปดํ“จํ„ฐ ๊ตฌ์กฐ์—์„œ ๋ ˆ์ง€์Šคํ„ฐ๋Š” ์ค‘์•™ ์ฒ˜๋ฆฌ ์žฅ์น˜ (CPU) ๋‚ด๋ถ€์— ์žˆ๋Š” ์ž‘์€ ๊ณ ์† ๊ธฐ์–ต ์žฅ์น˜์ž…๋‹ˆ๋‹ค. ๋ ˆ์ง€์Šคํ„ฐ๋Š” CPU๊ฐ€ ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•˜๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋ฉฐ ๋‹ค์–‘ํ•œ ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ์ž„์‹œ ์ €์žฅ์†Œ๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๋ ˆ์ง€์Šคํ„ฐ์— ์ €์žฅ๋œ ๊ฐ’๋งŒ ์ž˜ ๊ด€์ฐฐํ•ด๋„ ํ”„๋กœ๊ทธ๋žจ์˜ ์‹คํ–‰ ํ๋ฆ„์„ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ ˆ์ง€์Šคํ„ฐ์˜ ์—ญํ•  1. ๋ฐ์ดํ„ฐ ์ €์žฅ ๋ฐ ๋น ๋ฅธ ์ ‘๊ทผ ๋ ˆ์ง€์Šคํ„ฐ๋Š” CPU ๋‚ด๋ถ€์— ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค๋ฅธ ์ฃผ๊ธฐ์–ต ์žฅ์น˜๋ณด๋‹ค ํ›จ์”ฌ ๋น ๋ฅด๊ฒŒ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์—ฐ์‚ฐ ์†๋„๋ฅผ ํ–ฅ์ƒ์‹œํ‚ค๊ณ  ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰์„ ๋” ํšจ์œจ์ ์œผ๋กœ ๋งŒ๋“ญ๋‹ˆ๋‹ค. 2. ์—ฐ์‚ฐ ์ˆ˜ํ–‰ ๋ ˆ์ง€์Šคํ„ฐ๋Š” CPU์—์„œ ์ˆ˜ํ–‰๋˜๋Š” ์—ฐ์‚ฐ์— ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์—ฐ์‚ฐ์€ ๋ ˆ์ง€์Šคํ„ฐ์—์„œ ์ง์ ‘ ์ˆ˜ํ–‰๋˜๋ฏ€๋กœ ๋” ๋น ๋ฅด๊ฒŒ ์ฒ˜๋ฆฌ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 3. ํ”„๋กœ๊ทธ๋žจ ์ œ์–ด ๋ ˆ์ง€์Šคํ„ฐ๋Š” ํ”„๋กœ๊ทธ๋žจ ์นด์šดํ„ฐ.. 2023. 10. 8.
ํด๋ž˜์Šค์˜ ํฌ๊ธฐ์™€ ๋ฉ”๋ชจ๋ฆฌ ๊ตฌ์กฐ ํด๋ž˜์Šค์˜ ๋ฉ”๋ชจ๋ฆฌ ๊ตฌ์กฐ ๊ธฐ๋ณธ์ ์œผ๋กœ ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰๋œ๋‹ค๋Š” ๊ฒƒ์€ ๊ฒฐ๊ตญ CPU์™€ ๋ฉ”๋ชจ๋ฆฌ์˜ ๋ฐ์ดํ„ฐ ๊ตํ™˜์œผ๋กœ ํ™˜์›๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅ๋œ ํ”„๋กœ๊ทธ๋žจ ์ฝ”๋“œ๋ฅผ ๊ฐ€์ ธ์™€์„œ CPU๊ฐ€ ์‹คํ–‰ํ•˜๊ณ  ์‹คํ–‰ ์ค‘์— ๋ฉ”๋ชจ๋ฆฌ์˜ ๋‚ด์šฉ์„ ์ฝ๊ฑฐ๋‚˜ ์ƒˆ๋กœ์šด ๋‚ด์šฉ์„ ์“ฐ๋Š” ๊ฒƒ์ด ๊ฑฐ์˜ ์ „๋ถ€๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฒฐ๊ตญ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•˜๋Š”๋ฐ ์žˆ์–ด์„œ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์ค‘์š”ํ•˜๋‹ค๋Š” ๋ง์ž…๋‹ˆ๋‹ค. class CTest { public: char m_Char; int m_Int; double m_Double; static int m_SInt; int MemberFunc() { return m_Int; } }; ์œ„ ํด๋ž˜์Šค CTest์˜ ์ •์  ๋ฉค๋ฒ„ ๋ณ€์ˆ˜ m_SInt์™€ ๋ฉค๋ฒ„ ํ•จ์ˆ˜ MemberFunc๋Š” CTest t ๊ฐ์ฒด์˜ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์— ํฌํ•จ๋˜์–ด ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ผ๋ฐ˜ ๋ฉค๋ฒ„๋ณ€์ˆ˜๋Š” ๊ฐ.. 2023. 9. 14.
ํฐ๋…ธ์ด๋งŒ ๊ตฌ์กฐ๋ž€? ํฐ๋…ธ์ด๋งŒ ๊ตฌ์กฐ(Von Neumann architecture) ํฐ๋…ธ์ด๋งŒ ๊ตฌ์กฐ(Von Neumann architecture)๋Š” ํ˜„๋Œ€ ์ปดํ“จํ„ฐ ์•„ํ‚คํ…์ฒ˜์˜ ์ค‘์š”ํ•œ ๊ฐœ๋… ์ค‘ ํ•˜๋‚˜๋กœ, ์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ์˜ ์„ค๊ณ„์™€ ๋™์ž‘ ์›๋ฆฌ๋ฅผ ์„ค๋ช…ํ•˜๋Š” ๊ธฐ๋ณธ์ ์ธ ํ”„๋ ˆ์ž„์›Œํฌ์ž…๋‹ˆ๋‹ค. ์ด ์•„ํ‚คํ…์ฒ˜๋Š” ์ปดํ“จํ„ฐ ํ•˜๋“œ์›จ์–ด์™€ ์†Œํ”„ํŠธ์›จ์–ด๊ฐ€ ์ƒํ˜ธ์ž‘์šฉํ•˜๋Š” ๋ฐฉ์‹์„ ์ •์˜ํ•˜๋ฉฐ, ๋Œ€๋ถ€๋ถ„์˜ ์ผ๋ฐ˜์ ์ธ ์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ์ด ์ด๋Ÿฌํ•œ ์•„ํ‚คํ…์ฒ˜๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์„ค๊ณ„๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ํฐ๋…ธ์ด๋งŒ ๊ตฌ์กฐ์˜ ์ฃผ์š” ํŠน์ง•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. 1. ์ค‘์•™ ์ฒ˜๋ฆฌ ์žฅ์น˜(Central Processing Unit, CPU): ํฐ๋…ธ์ด๋งŒ ๊ตฌ์กฐ์˜ ํ•ต์‹ฌ์€ CPU๋กœ, ์ด๋Š” ํ”„๋กœ๊ทธ๋žจ์˜ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. 2. ๋ฉ”๋ชจ๋ฆฌ(Memory): ํฐ๋…ธ์ด๋งŒ ๊ตฌ์กฐ์—์„œ๋Š” ๋ฐ์ดํ„ฐ์™€ ํ”„๋กœ๊ทธ๋žจ ๋ช…๋ น์–ด๊ฐ€ ๋™์ผํ•œ ๋ฉ”๋ชจ๋ฆฌ.. 2023. 9. 5.
Context Switching(๋ฌธ๋งฅ ๊ตํ™˜) Context Switching(๋ฌธ๋งฅ ๊ตํ™˜) ์ด๋ž€? ๋ฌธ๋งฅ๊ตํ™˜(Context Switching)์€ ์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ์—์„œ ์—ฌ๋Ÿฌ ์ž‘์—…(ํ˜น์€ ํ”„๋กœ์„ธ์Šค ๋˜๋Š” ์Šค๋ ˆ๋“œ)์ด ๋™์‹œ์— ์‹คํ–‰๋˜๋Š” ๊ฒฝ์šฐ, ํ•œ ์ž‘์—…์—์„œ ๋‹ค๋ฅธ ์ž‘์—…์œผ๋กœ ์ „ํ™˜ํ•˜๋Š” ๊ณผ์ •์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๋‹ค์ค‘ ์ž‘์—…(multitasking) ํ™˜๊ฒฝ์—์„œ ๋ฐœ์ƒํ•˜๋Š” ์ค‘์š”ํ•œ ๊ฐœ๋…์œผ๋กœ, ์šด์˜์ฒด์ œ๊ฐ€ ๊ฐ ์ž‘์—…์— CPU ์‹œ๊ฐ„์„ ํ• ๋‹นํ•˜๊ณ  ๋ฒˆ๊ฐˆ์•„๊ฐ€๋ฉฐ ์‹คํ–‰๋˜๋„๋ก ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๋ฌธ๋งฅ๊ตํ™˜์ด ๋ฐœ์ƒํ•˜๋Š” ์ƒํ™ฉ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. 1. ์ธํ„ฐ๋ŸฝํŠธ(Interrupts): ํ•˜๋“œ์›จ์–ด๋‚˜ ์†Œํ”„ํŠธ์›จ์–ด ์ธํ„ฐ๋ŸฝํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜์—ฌ ํ˜„์žฌ ์‹คํ–‰ ์ค‘์ธ ์ž‘์—…์„ ๋ฉˆ์ถ”๊ณ  ๋‹ค๋ฅธ ์ž‘์—…์„ ์‹คํ–‰ํ•ด์•ผ ํ•  ๋•Œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์ž…์ถœ๋ ฅ ์ž‘์—…์ด ์™„๋ฃŒ๋˜์—ˆ์„ ๋•Œ ํ•˜๋“œ์›จ์–ด๊ฐ€ CPU์— ์•Œ๋ฆฌ๋Š” ๊ฒฝ์šฐ๊ฐ€ ์ด์— ํ•ด๋‹นํ•ฉ๋‹ˆ๋‹ค. 2. ์Šค์ผ€์ค„๋ง: ์šด์˜.. 2023. 8. 28.
[C/C++] 10. ํฌ์ธํ„ฐ(feat. ์Šค๋งˆํŠธ ํฌ์ธํ„ฐ) โœ… ํฌ์ธํ„ฐ C++์˜ ์žฅ์ ์€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ง์ ‘์ ์œผ๋กœ ์ œ์–ดํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ๋งŽ์€ ๊ฐœ๋ฐœ์ž์—๊ฒŒ๋Š” ๋‹จ์ ์œผ๋กœ ๋Š๊ปด์งˆ ์ˆ˜ ์žˆ๋‹ค. ๋ˆˆ์œผ๋กœ ํ›คํžˆ ํ™•์ธํ•ด ๋ณผ ์ˆ˜ ์—†๋Š” ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ž˜๋ชป ๊ด€๋ฆฌํ•˜๋ฉด ํ”„๋กœ๊ทธ๋žจ์ด ์ฃฝ์–ด๋ฒ„๋ฆฌ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ง์ ‘ ์ œ์–ดํ•˜๋Š” ๊ฒƒ์ด ์ข‹์„ ์ˆ˜๋„ ์žˆ๊ณ  ์•„๋‹ ์ˆ˜๋„ ์žˆ์ง€๋งŒ, ํ™•์‹คํ•œ ๊ฑด C/C++์€ ์ปดํ“จํ„ฐ์˜ ๋ฉ”์ธ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์–ด๋–ป๊ฒŒ ๋Œ์•„๊ฐ€๋Š”์ง€ ์•Œ๊ธฐ์—๋Š” ์ ํ•ฉํ•˜๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ํฌ์ธํ„ฐ๋Š” ์ฃผ์†Œ๋ฅผ ๋‹ด๊ณ  ์žˆ๋Š” ๋ณ€์ˆ˜์ด๋‹ค. 64๋น„ํŠธ ์ฒด์ œ์—์„œ integer ํƒ€์ž…์˜ ํฌ์ธํ„ฐ ๋ณ€์ˆ˜๋Š” ๋ช‡์ธ๊ฐ€๋ฅผ ๋ฌป๋Š” ์งˆ๋ฌธ์— ๋งŽ์€ ๋ถ„๋“ค์ด 4byte๋ผ๊ณ  ๋Œ€๋‹ตํ•œ๋‹ค. ํฌ์ธํ„ฐ๋ณ€์ˆ˜๋Š” ์ฃผ์†Œ๋ฅผ ๋‹ด๊ณ  ์žˆ๋Š” ํฌ์ธํ„ฐ๋ณ€์ˆ˜๋Š” ์ปดํ“จํ„ฐ์˜ ์›Œ๋“œ(word)์™€ ๊ฐ™๋‹ค. 8๋น„ํŠธ ์ฒด์ œ์—์„œ๋Š” 1 ์›Œ๋“œ๊ฐ€ 8๋น„ํŠธ=1๋ฐ”์ดํŠธ์ด๋‹ค. ๋”ฐ๋ผ์„œ 64๋น„ํŠธ ์ฒด์ œ์—์„œ๋Š” ํƒ€์ž…์ด ๋ฌด์—‡์ด๊ฑด ๊ฐ„์— ํฌ์ธํ„ฐ ๋ณ€์ˆ˜์˜ ํฌ๊ธฐ๋Š” 64.. 2023. 4. 26.