[์๋์ฐ์ฆ ์์คํ ํ๋ก๊ทธ๋๋ฐ] 3. WIN32 vs WIN64
์ด ํฌ์คํธ๋, ์ค์ฑ์ฐ ์ ์๋์ '๋๋ฅผ ์๊ทนํ๋ ์๋์ฐ์ฆ ์์คํ ํ๋ก๊ทธ๋๋ฐ'์ ๋ฐํ์ผ๋ก ์ ์๊ฐ์ ์ฌ๊ตฌ์ฑํ์ฌ ์ ๋ฆฌํ ํฌ์คํธ์ ๋๋ค.
๋ชฉ์ฐจ
- 64๋นํธ์ 32๋นํธ์ ๊ตฌ๋ถ ๋ฐฉ๋ฒ
- ํ๋ก๊ทธ๋๋จธ ์ ์ฅ์์์ 64๋นํธ ์ปดํจํฐ
64๋นํธ์ 32๋นํธ์ ๊ตฌ๋ถ ๋ฐฉ๋ฒ
- ๊ตฌ๋ถ์ ๋ ๊ฐ์ง ๊ธฐ์ค
- ํ๋ฒ์ ์ก์์ ๊ฐ๋ฅํ ๋ฐ์ดํฐ ํฌ๊ธฐ
- ๋ฐ์ดํฐ ์ฒ๋ฆฌ ๋ฅ๋ ฅ
A๋ผ๋ ์์คํ ์ด 64๋นํธ ์์คํ ์ด๋ 32๋นํธ ์์คํ ์ด๋ ๊ฒฐ์ ํ๋ ๊ฒ์ ํ ๋ฒ์ ์ก์์ ๊ฐ๋ฅํ ๋ฐ์ดํฐ์ ํฌ๊ธฐ์ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ๋ฅ๋ ฅ์ด๋ค.
ํ ๋ฒ์ ์ก์์ ๊ฐ๋ฅํ ๋ฐ์ดํฐ ํฌ๊ธฐ๋ I/O ๋ฒ์ค์ ์์กด์ ์ด๋ค. ์ฆ ๋ฒ์ค ์์คํ ์ด 32๋นํธ๋ 64๋นํธ๋๊ฐ ์ค์ํ ๊ฒ์ด๊ณ
๋ฐ์ดํฐ ์ฒ๋ฆฌ ๋ฅ๋ ฅ์ CPU๋ฅผ ๋ปํ๋๋ฐ, CPU๊ฐ ํ ๋ฒ์ ์ฝ์ด ๋ค์ผ ์ ์๋ ๋ช ๋ น์ด๊ฐ 32๋นํธ์ธ ๊ฒฝ์ฐ๋ 32๋นํธ ์์คํ , 64๋นํธ์ธ ๊ฒฝ์ฐ๋ 64๋นํธ ์์คํ ์ด๋ค.
์์ ๊ทธ๋ฆผ์ ๋ณด๋ฉด I/O๋ฒ์ค๋ฅผ ํตํด ๋ช ๋ น์ด๋ฅผ ๊ฐ์ ธ๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ด๋์ํค๋๋ฐ ํ ๋ฒ์ 64๋นํธ ๋ฐ์ดํฐ๋ฅผ ์ด๋์ํฌ ์ ์์ผ๋ฉด 64๋นํธ ์์คํ , ํ ๋ฒ์ 32๋นํธ ๋ฐ์ดํฐ๋ฅผ ์ด๋์ํฌ ์ ์์ผ๋ฉด 32๋นํธ ์์คํ ์ด๋ค.
๋ง์ฐฌ๊ฐ์ง๋ก CPU๋ ๋ช ๋ น์ด๋ฅผ ํ๋ฒ์ ์ต๋ 32๋นํธ๋ฅผ ์ฝ์ด ๋ค์ฌ ์ฒ๋ฆฌํ ์ ์์ผ๋ฉด 32๋นํธ ์์คํ , 64๋นํธ๋ฅผ ์ฝ์ด ๋ค์ฌ ์ฒ๋ฆฌํ ์ ์์ผ๋ฉด 64๋นํธ ์์คํ ์ด๋ค.
์ฌ๊ธฐ์! ๋ฒ์ค๋ฅผ ํตํด 64๋นํธ ๋ช ๋ น์ด๋ฅผ CPU๋ก ์ด๋์์ผฐ๋๋ฐ CPU๊ฐ ํ๋ฒ์ 32๋นํธ ๋ช ๋ น์ด ๋ฐ์ ์ฒ๋ฆฌํ์ง ๋ชปํ๋ค๋ฉด ๊ทธ๊ฒ์ ์๋ฒฝํ 64๋นํธ ์์คํ ์ด๋ผ ๋งํ ์ ์๋ค.
๋ง์ฐฌ๊ฐ์ง๋ก CPU๋ 64๋นํธ ๋ช ๋ น์ด๋ฅผ ํ๋ฒ์ ์ฒ๋ฆฌํ๋๋ฐ ๋ฒ์ค๊ฐ ํ ๋ฒ์ 32๋นํธ ๋ช ๋ น์ด ๋ฐ์ ์ด๋์ํค์ง ๋ชปํ๋ค๋ฉด ๊ทธ๊ฒ์ 64๋นํธ ์์คํ ์ด๋ผ ๋งํ ์ ์๋ค.
ํ๋ก๊ทธ๋๋จธ ์ ์ฅ์์์ 64๋นํธ ์ปดํจํฐ
- 32๋นํธ -> 64๋นํธ
- ํ๋ก๊ทธ๋จ์ผ๋ก ํํํ ์ ์๋ ๋ฒ์์ ์ฆ๊ฐ
- ํํํ ์ ์๋ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฒด ํฌ๊ธฐ
ํ๋ก๊ทธ๋๋จธ ์ ์ฅ์์๋ 64๋นํธ ์์คํ ์ ๋ฌด์จ ์๋ฏธ๋ฅผ ์ง๋๋๊ฐ? ๋ชป๋๋ผ๋ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค.
ํ์ง๋ง, ์๊ฒฉํ ์ฐจ์ด๊ฐ์๋ค. [๊ทธ๋ฆผ 2]๋ฅผ ๋ณด๋ฉด ์ฐ๋ฆฌ๊ฐ ์ฌ์ฉํ ์ ์๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ด 1GB๋ผ ๊ฐ์ ํ์.
1GB ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ์ฉํ๋ ค๋ฉด, 1GB ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ ๋ถ ํ์ฉ ํ ์ ์๋ ์ฃผ์ ์ฒด๊ณ๋ฅผ ๊ฐ์ ธ์ผํ๋ค. (์ด๋๋ ์ฑํ ์ ์์ด์ผ ํ๋ค.)
32๋นํธ ์์คํ ์์๋ ํฌ์ธํฐ๊ฐ 32๋นํธ, 64๋นํธ ์์คํ ์์๋ ํฌ์ธํฐ๊ฐ 64๋นํธ๋ค. ํฌ์ธํฐ์ ํฌ๊ธฐ๊ฐ ํฌ๋ฉด ํด ์๋ก ํ๋ก๊ทธ๋๋จธ์๊ฒ ์ ๋ฆฌํ๋ค.
[๊ทธ๋ฆผ 2]์ ๊ฐ์ด ํฌ์ธํฐ๊ฐ 4๋นํธ๋ผ๋ฉด 16๊ฐ์ ์ฃผ์๋ฐ์ ํํํ์ง ๋ชปํ๊ณ ์๋ฌด๋ฆฌ ๋ฉ๋ชจ๋ฆฌ๊ฐ 1GB๊ฐ ์๋ค ํ ๋ค ์ด๋๋ ์ฑ์ ํ์ง ๋ชปํด์ ๋๋ถ๋ถ์ ๋ฉ๋ชจ๋ฆฌ๋ ์ฌ์ฉํ์ง ๋ชปํ ๊ฒ์ด๋ค.
๊ทธ๋์ ์ผ๋ฐ์ ์ผ๋ก ํฌ์ธํฐ์ ํฌ๊ธฐ๋ ํฌ๋ฉด ํด์๋ก ์ข๋ค.
๊ทธ๋ฌ๋ฉด ํฌ์ธํฐ์ ํฌ๊ธฐ๋ฅผ ๋ฌด์กฐ๊ฑด ํฌ๊ฒ ๋ง๋ค๋ฉด ๋์ง ์๋? ๊ทธ๊ฑด ๋์๋๋ค.
๋ง์ฝ ํฌ์ธํธ๊ฐ 128 ๋นํธ๋ผ ๊ณ ํด๋ ๋ฒ์ค๊ฐ ํ ๋ฒ์ ์ ์กํ ์ ์๋ ๋ฐ์ดํฐ์ ํฌ๊ธฐ๊ฐ 64๋นํธ๋ผ๋ฉด ์ด 2๋ฒ์ ๊ฑธ์ณ ๋ฐ์ดํฐ๋ฅผ ์ ์กํด์ผํ๊ณ ์ด๊ฒ์ ์๋นํ ์ฑ๋ฅ ์ ํ๋ฅผ ์ด๋ํ๋ค.
์ ๋ฆฌํ์๋ฉด, ํฌ์ธํฐ์ ํฌ๊ธฐ๋ ํฌ๋ฉด ํด์๋ก ์ข๋ ๋ฒ์ค๊ฐ ํ ๋ฒ์ ์ ์กํ ์ ์๋ ํฌ๊ธฐ๋งํผ ์ปค์ผ ์ข๋ค.
ํ๋ก๊ทธ๋๋จธ ์ ์ฅ์์ 32๋นํธ ์์คํ ์์ 64๋นํธ ์์คํ ์ผ๋ก ๋์ด ๊ฐ๋ค๋ ๊ฒ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ์ฉํ ์ ์๋ ํฌ๊ธฐ๊ฐ ๋์ด๋ฌ๋ค๋ ๊ฒ์ด๋ค.
32๋นํธ = 2^32(4GB), 64๋นํธ = 2^64
ํ์ฉ ๊ฐ๋ฅ ๋ฉ๋ชจ๋ฆฌ์ ํ์ฅ
int _tmain(void)
{
TCHAR str[100];
_tscanf(_T("%s"), str);
_tprintf(_T("%s"), str);
return 0;
}
ํ์ฉ ๊ฐ๋ฅํ ๋ฉ๋ชจ๋ฆฌ๊ฐ 50Byte๊ฐ ์ ๋ถ๋ผ๊ณ ๊ฐ์ ํ์. 50Byte๋ฐ์ ์๋๋ ์์คํ ์์ ์์ ๊ฐ์ด ํ๋ก๊ทธ๋จ์ ๊ตฌํํ๋ฉด ์ ์์ ์ผ๋ก ๋์ํ ๊น? ๋ถ๊ฐ๋ฅํ๋ค.
(50๋ฐ์ดํธ๊ฐ ์ ๋ถ์ธ๋ฐ 100๋ฐ์ดํธ ์บ๋ฆญํฐ ๋ฐฐ์ด์ ์ฌ์ฉํ๊ณ ์๊ณ ํ ๋ฒ์ 100Byte๋ฅผ ์ฝ์ด ๋ค์ด๊ธฐ ๋๋ฌธ)
๊ทธ๋ ๋ค๋ฉด 50Byte ์์คํ ์์๋ ์ด๋ป๊ฒ ํ๋ก๊ทธ๋จ์ ๊ตฌํํด์ผ ํ ๊น?
int _tmain(void)
{
TCHAR ch;
do
{
_tscanf(_T("%c"), &ch);
_tprintf(_T("%c"), &ch);
} while(ch != '\n');
return 0;
}
์์ ๊ฒฝ์ฐ๋ ํ๋ฒ์ ์ฝ์ด ๋ค์ด๋ ๊ฒ ์๋๋ผ ํ ๋ฌธ์์ฉ ์ฝ์ด ๋ค์ด๊ณ ์๋ค. ์ด์ ์ฐจ์ด์ ์ด ๋ณด์ด๋๊ฐ?
32๋นํธ ์์คํ ์์ 64๋นํธ ์์คํ ์ผ๋ก ๋์ด๊ฐ๋ค๋ ๊ฒ์ ๊ทธ๋งํผ ํ๋ก๊ทธ๋๋ฐ์ ํธํ๊ฒ ํ ์ ์๋ ์ฅ์ ์ด ๋๋ค.
'Development > System' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋๊ธ
์ด ๊ธ ๊ณต์ ํ๊ธฐ
-
๊ตฌ๋
ํ๊ธฐ
๊ตฌ๋ ํ๊ธฐ
-
์นด์นด์คํก
์นด์นด์คํก
-
๋ผ์ธ
๋ผ์ธ
-
ํธ์ํฐ
ํธ์ํฐ
-
Facebook
Facebook
-
์นด์นด์ค์คํ ๋ฆฌ
์นด์นด์ค์คํ ๋ฆฌ
-
๋ฐด๋
๋ฐด๋
-
๋ค์ด๋ฒ ๋ธ๋ก๊ทธ
๋ค์ด๋ฒ ๋ธ๋ก๊ทธ
-
Pocket
Pocket
-
Evernote
Evernote
๋ค๋ฅธ ๊ธ
-
[์๋์ฐ์ฆ ์์คํ ํ๋ก๊ทธ๋๋ฐ] 3. ํ๋ก๊ทธ๋จ ๊ตฌํ ๊ด์ ์์์ 32๋นํธ์ 64๋นํธ & ์ค๋ฅ์ ํ์ธ
[์๋์ฐ์ฆ ์์คํ ํ๋ก๊ทธ๋๋ฐ] 3. ํ๋ก๊ทธ๋จ ๊ตฌํ ๊ด์ ์์์ 32๋นํธ์ 64๋นํธ & ์ค๋ฅ์ ํ์ธ
2019.06.30 -
[์๋์ฐ์ฆ ์์คํ ํ๋ก๊ทธ๋๋ฐ] 2. MBCS์ WBCS์ ๋์ ์ง์
[์๋์ฐ์ฆ ์์คํ ํ๋ก๊ทธ๋๋ฐ] 2. MBCS์ WBCS์ ๋์ ์ง์
2019.06.27 -
[์๋์ฐ์ฆ ์์คํ ํ๋ก๊ทธ๋๋ฐ] 2. Windows์์์ ์ ๋์ฝ๋(UNICODE)
[์๋์ฐ์ฆ ์์คํ ํ๋ก๊ทธ๋๋ฐ] 2. Windows์์์ ์ ๋์ฝ๋(UNICODE)
2019.06.27 -
[์๋์ฐ์ฆ ์์คํ ํ๋ก๊ทธ๋๋ฐ] 1. ํ๋ก๊ทธ๋จ์ ์คํ ๊ณผ์ /ํ๋์จ์ด ๊ตฌ์ฑ์ ์ฌ์ ๊ทผ
[์๋์ฐ์ฆ ์์คํ ํ๋ก๊ทธ๋๋ฐ] 1. ํ๋ก๊ทธ๋จ์ ์คํ ๊ณผ์ /ํ๋์จ์ด ๊ตฌ์ฑ์ ์ฌ์ ๊ทผ
2019.06.12