๐ค Computer System
์์คํ ์ด๋ ํ๋์ ๊ณตํต์ ์ธ ๋ชฉ์ ์ ์ํํ๊ธฐ ์ํด ์กฐ์งํ๋ ์์๋ค์ ์งํฉ์ฒด๋ผ๊ณ ์ ์ํ ์ ์์ต๋๋ค.
์ปดํจํฐ ์์คํ ์ ์กฐ์ง์ด๋ ๊ณํ ๊ทธ ์์ฒด๋ก ๋ฌ์ฌ๋๊ธฐ๋ ํ๊ณ . ์ปดํจํฐ ์์คํ ๋ด์ ์ผ๋ถ๋ถ์ผ๋ก ๋ฌ์ฌ๋๊ธฐ๋ ํฉ๋๋ค.
์ปดํจํฐ ์์คํ ์ ์ด๋ ํ ์์ ์ ์ ์ํํ๊ธฐ ์ํด ์ฃผ์ ๊น๊ฒ ์ ์ ๋ ๋ถ์ํ๋ค์ธ ํ๋์จ์ด์, ๊ทธ ์ปดํจํฐ์์ ์๋ํ๋ ์ํํธ์จ์ด ๋๋ ํ๋ก๊ทธ๋จ์ผ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค.
์ํํธ์จ์ด์์ ๊ฐ์ฅ ์ฃผ๋ ๊ตฌ์ฑ์์๋ ์ด์์ฒด๊ณ์ด๋ฉฐ, ์ปดํจํฐ์์ ์คํ๋๋ ๋ค๋ฅธ ํ๋ก๊ทธ๋จ๋ค์๊ฒ ์ฌ๋ฌ๊ฐ์ง ์๋น์ค๋ฅผ ์ ๊ณตํ๊ณ ๊ด๋ฆฌํ๋ ๊ธฐ๋ฅ์ ํฉ๋๋ค
์ด์ ๊ธ์ ์ด์ด์ ์ปดํจํฐ์ ๊ตฌ์กฐ๋ฅผ ํตํด ํ๋ก๊ทธ๋จ์ ์คํ์ด ์ด๋ค ๋ฐฉ์์ผ๋ก ์ผ์ด๋๋ ๊ฐ๋ฅผ ์ค์ ์ ์ผ๋ก ๋ค๋ค๋ณด๊ฒ ์ต๋๋ค.
๐ ๋ณํ๋ ํ๋ก๊ทธ๋จ์ ์คํ
hello.c๋ผ๋ ์์ค ํ์ผ์ ์ฑ๊ณต์ ์ผ๋ก ์ปดํ์ผํ ์ดํ ์์คํ ์ ๋์คํฌ์ ์ ์ฅ๋ hello๋ผ๋ ์คํ ๊ฐ๋ฅํ ๊ฐ์ฒด ํ์ผ๋ก ๋ณํํ๋ ค๊ณ ํฉ๋๋ค.
์ด๋ฅผ ์คํํ๊ธฐ ์ํด์ ์ฐ๋ฆฌ๋ Unix์์คํ ์์ ์คํ ํ์ผ์ ์ด๋ฆ์ ์์ด๋ผ๊ณ ์๋ ค์ง ์์ฉํ๋ก๊ทธ๋จ์ ์ ๋ ฅํด์ผํฉ๋๋ค.
์์ด ์ฐ๋ฆฌ๊ฐ ์ ๋ ฅํ ํ์ผ ์ด๋ฆ์ ์ฐพ์์ ๊ทธ๊ฒ์ด ์คํํ์ผ์ด๋ผ๋ฉด ํ๋ก๊ทธ๋จ์ ๋ก๋ํ์ฌ ์คํํฉ๋๋ค.
์ดํ hello ํ๋ก๊ทธ๋จ์ด ์คํ๋๋ฉด์ ๊ฒฐ๊ณผ๊ฐ ์ถ๋ ฅ๋ฉ๋๋ค.
์ดํ ์์ ๋ค์ ๋ช ๋ น์ ๊ธฐ๋ค๋ฆฌ๊ณ ์๊ฒ ๋ฉ๋๋ค.
๐ ์ ํ์ ์ธ ์์คํ ์ ํ๋์จ์ด ๊ตฌ์ฑ
hello ํ๋ก๊ทธ๋จ์ ์คํํ ๋ ์ด๋ค ๋ฐฉ์์ผ๋ก ์ด๋ค์ง๋์ง ์ดํดํ๋ ค๋ฉด ์๋์ ๊ทธ๋ฆผ์ ์ดํดํ ์ ์์ด์ผ ํฉ๋๋ค.
์๋์ ๊ทธ๋ฆผ์ ์ต๊ทผ ์ธํ ์ ํ๊ตฐ์ ๋ชจ๋ธ๋ก ํ ๊ทธ๋ฆผ์ ๋๋ค.
์ด ๊ทธ๋ฆผ์ ๋จ๊ณ๋ณ๋ก ๋ถ์ํด๋ณด๊ฒ ์ต๋๋ค.
์๋๋ Computer Systems A Programmers Perspecive 3ํ์ 44ํ์ด์ง ๋ด์ฉ์ ์ ๋ฆฌํ ๊ฒ์ ๋๋ค.
์์ ๊ฐ์ด ํ๋์จ์ด๋ ๋ฒ์ค(Buses), ์ ์ถ๋ ฅ ์ฅ์น(I/O Devices), ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ(Main Memory), ํ๋ก์ธ์(Processor) ๋ฑ์ผ๋ก ์ด๋ค์ง ๊ฒ์ ์ ์ ์์ต๋๋ค.
๊ฐ๊ฐ์ ์กฐ๊ธ ๋ ์์ธํ๊ฒ ์ค๋ช ํ๊ฒ ์ต๋๋ค.
๋ฒ์ค(Buses)
๋ฒ์ค๋ ์์คํ ์ ์ ๋ฐ์ ๊ฑธ์ณ ๋ฐ์ดํธ ์ ๋ณด๋ฅผ ๊ตฌ์ฑ์์๊ฐ ์๋ก ๊ตํํ๋ ํต๋ก๋ฅผ ๋งํฉ๋๋ค.
๋ฒ์ค๋ ์๋๋ผ๊ณ ์๋ ค์ง ๊ณ ์ ๋ ์ฌ์ด์ฆ์ ๋ฐ์ดํธ ๋จ์๋ก ๋ฐ์ดํฐ๋ฅผ ์ฎ๊ธฐ๋๋ก ์ค๊ณ๋์์ต๋๋ค.
๊ทธ๋งํผ ์๋์ ํฌ๊ธฐ์ ๋ฐ๋ฅธ ๋ฐ์ดํธ ์๋ ์์คํ ๋ง๋ค ๋ค๋ฅด๋ฉฐ,
ํ์ฌ ๋๋ถ๋ถ์ ์ปดํจํฐ๋ 4bytes ๋๋ 8bytes์ ์๋ ํฌ๊ธฐ๋ฅผ ๊ฐ์ง๋๋ค.
์ ์ถ๋ ฅ ์ฅ์น(I/O Devices)
์ ์ถ๋ ฅ ์ฅ์น๋ ์ธ๋ถ ์ธ๊ณ์ ์์คํ ์ ์ฐ๊ฒฐํฉ๋๋ค.
์ ์ถ๋ ฅ ์ฅ์น์ 4๊ฐ์ง ์์๋ก๋ ์ฌ์ฉ์์ ์ ๋ ฅ์ ์ํ ํค๋ณด๋, ๋ง์ฐ์ค์ ์ถ๋ ฅ์ ์ํ ๋์คํ๋ ์ด ๊ทธ๋ฆฌ๊ณ ๋ฐ์ดํฐ๋ฅผ ์ค๋ซ๋์ ์ ์ฅํ๊ธฐ ์ํ ๋์คํฌ ๋๋ผ์ด๋ธ๊ฐ ์์ต๋๋ค.
๋ํ ์คํ ๊ฐ๋ฅ ๋ชฉ์ ํ์ผ์ธ hello ํ๋ก๊ทธ๋จ์ ๋์คํฌ ๋๋ผ์ด๋ธ์ ์ ์ฅ๋์ด ์์ต๋๋ค.
๊ฐ๊ฐ์ ์ ์ถ๋ ฅ์ฅ์น๋ ์ ๋ณด๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ๊ฒ์ด ๋ชฉ์ ์ธ ์ปจํธ๋กค๋ฌ์ ์ด๋ํฐ์ ์ํด ์ ์ถ๋ ฅ ๋ฒ์ค์ ์ฐ๊ฒฐ๋์ด ์์ต๋๋ค.
๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ(Main Memory)
๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ๋ ํ๋ก๊ทธ๋จ๊ณผ ํ๋ก์ธ์๊ฐ ํ๋ก๊ทธ๋จ์ ์คํํ๋ ๋์ ํ๋ก๊ทธ๋จ๊ณผ ๋ฐ์ดํฐ๋ฅผ ๋ชจ๋ ์ ์ฅํ๋ ์์ ์ ์ฅ์ฅ์น์ ๋๋ค.
๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ๋ DRAM์ ๋ชจ์์ผ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค.
ํ๋ก์ธ์(Processor) = ์ค์ ์ฒ๋ฆฌ ์ฅ์น(CPU)
ํ๋ก์ธ์๋ ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅ๋ ๋ช ๋ น์ ํด์ ๋๋ ์คํํ๋ ์์ง์ ๋๋ค.
ํ๋ก์ธ์์ ํต์ฌ์๋ PC(Program Counter)๋ผ๊ณ ๋ถ๋ฆฌ๋ ์๋ ํฌ๊ธฐ์ ์ ์ฅ์ฅ์น(๋ ์ง์คํฐ)๊ฐ ์์ต๋๋ค.
ํ๋ก์ธ์์ ์ฃผ์ ๊ธฐ๋ฅ์ ๊ธฐ์ต์ฅ์น๋ก๋ถํฐ ๋ช ๋ น/๋ฐ์ดํฐ ํธ์ถ ๋ฐ ์ ์ฅ์ ๋๋ค.
๋ช ๋ น์ ํด์์ ์ ์ด์ฅ์น์์ ์ผ์ด๋๋ฉฐ ๋ช ๋ น์ ์คํ์ ALU, ์ ์ถ๋ ฅ ์ฐ์ฐ์ I/O์์ ์ผ์ด๋ฉ๋๋ค.
ํ๋ก์ธ์๋ ์์ฐจํ๋ก๋ก ๋ง๋ค์ด์ก๊ธฐ ๋๋ฌธ์ Clock ์ ํธ์ ๋ฐ๋ผ ์ํ๊ฐ ๋ณํํฉ๋๋ค.
์ปดํจํฐ๋ ๋ช ๋ น ์ฃผ๊ธฐ(Instruction cycle)์ ๋ฌดํ๋ฐ๋ณต ํ๋๋ฐ ๋ช ๋ น ์ฃผ๊ธฐ๋ ์๋์ ๊ฐ์ต๋๋ค.
Instruction cycle
์ธ์ถ(fetch) : PC์ ์๊ฑฐํ์ฌ ๋ช ๋ น์ด๋ฅผ ๊ฐ์ ธ์ด
ํด๋ (dccode) : ๋ช ๋ น์ด๋ฅผ ํด์ํ์ฌ ์ ์ด์ ํธ๋ฅผ ์์ฑ
์คํ(execution) : ๊ฐ์ ธ์จ ๋ช ๋ น์ด๋ฅผ ์คํ
๊ฒฐ๊ณผ์ ์ฅ(store) : ์คํ ๊ฒฐ๊ณผ๋ฅผ ์ ์ฅ
๐ ํ๋ก๊ทธ๋จ ์คํ ๊ณผ์
์ฒ์์ ์ ํ๋ก๊ทธ๋จ์ ๋ช ๋ น์ ์คํํ๊ณ ์ฌ์ฉ์๋ค์ด ๋ค์์ ์ ๋ ฅํ๊ธฐ๋ฅผ ๊ธฐ๋ค๋ฆฌ๊ณ ์์ต๋๋ค.
ํค๋ณด๋์ ./hello ๋ฌธ์๋ฅผ ์ ๋ ฅํ๋ฉด ์ ํ๋ก๊ทธ๋จ์ด ์๋์ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด ๊ฐ๊ฐ์ ๋ ์ง์คํฐ๋ก ์ฝ์ ๋ค์ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅํฉ๋๋ค.
ํค๋ณด๋์ Enterํค๋ฅผ ๋๋ฅด๋ฉด ์์ ์ฌ์ฉ์๊ฐ ์ ๋ ฅ์ ๋ง์ณค๋ค๋ ๊ฒ์ ์ธ์งํฉ๋๋ค.
๊ทธ๋ฐ ๋ค์ ์์ ์คํ ๊ฐ๋ฅํ hello ํ์ผ์ ๋์คํฌ์์ ์ฐพ์ ํ์ ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ์ ๋ณต์ฌํฉ๋๋ค.
ํด๋น ๋ฐ์ดํฐ๋ hello, world\n๋ผ๊ณ ์ถ๋ ฅ๋ ๋ฌธ์์ด์ ํฌํจํ๊ณ ์์ต๋๋ค.
์ด๋ ์ง์ ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ(DMA)์ด๋ผ๋ ๊ธฐ์ ์ ํตํด ๋ฐ์ดํฐ๋ ๋์คํฌ๋ฅผ ๊ฑฐ์น์ง ์๊ณ ๋์คํฌ์์ ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ๋ก ์ง์ ์ด๋ํฉ๋๋ค.
hello ์คํํ์ผ์ ์ฝ๋์ ๋ฐ์ดํฐ๊ฐ ๋ฉ๋ชจ๋ฆฌ์ ๋ก๋๋๋ฉด ํ๋ก์ธ์๋ hello ํ๋ก๊ทธ๋จ์ ๋ฉ์ธ ๋ฃจํด์ ๊ธฐ๊ณ์ด ๋ช ๋ น์ด ์คํ์ ์์ํฉ๋๋ค.
ํด๋น ๋ช ๋ น์ ๋ฉ๋ชจ๋ฆฌ์์ ๋ ์ง์คํฐ ํ์ผ๋ก hello, world\n์ด๋ผ๋ ๋ฌธ์์ด์ ๋ฐ์ดํธ๋ฅผ ๋ณต์ฌํฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ดํ ๋ ์ง์คํฐ์์ ๋์คํ๋ ์ด๋ก ๋ค์ ํ ๋ฒ ๋ ๋ณต์ฌํฉ๋๋ค.
ํ๋ก๊ทธ๋๋จธ์ ๊ด์ ์์ ๋ง์ ๋ณต์ฌ๋ ํ๋ก๊ทธ๋จ์ ์คํ์ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ ๋ฆ์ถ๊ธฐ ๋๋ฌธ์ ์์คํ ์ค๊ณ์๋ ์ด๋ฌํ ์์ ์ ์ต๋ํ ๋น ๋ฅด๊ฒ ์คํํ๋ ๊ฒ์ ๋๋ค.
'Computer Science > System Programing' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์์คํ ํ๋ก๊ทธ๋๋ฐ] BombLab ์ค์ต ๋ฉ๋ชจ์ฅ (2) | 2022.10.19 |
---|---|
[์์คํ ํ๋ก๊ทธ๋๋ฐ] ์ค์์ ํํ ๋ฐ ์ฒ๋ฆฌ (0) | 2022.09.26 |
[์์คํ ํ๋ก๊ทธ๋๋ฐ] ์ ์์ ํํ ๋ฐฉ๋ฒ (0) | 2022.09.24 |
[์์คํ ํ๋ก๊ทธ๋๋ฐ] ์ ์์ ํํ (0) | 2022.09.24 |
[์์คํ ํ๋ก๊ทธ๋๋ฐ] ์ปดํจํฐ ์์คํ (์ปดํ์ผ ์์คํ ) (0) | 2022.09.20 |