Computer Science/System Programing

[์‹œ์Šคํ…œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ] ์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ(์ปดํ“จํ„ฐ ๊ตฌ์กฐ)

์ดํƒœํ™ 2022. 9. 20. 21:44

๐Ÿค” 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์ด๋ผ๋Š” ๋ฌธ์ž์—ด์˜ ๋ฐ”์ดํŠธ๋ฅผ ๋ณต์‚ฌํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์ดํ›„ ๋ ˆ์ง€์Šคํ„ฐ์—์„œ ๋””์Šคํ”Œ๋ ˆ์ด๋กœ ๋‹ค์‹œ ํ•œ ๋ฒˆ ๋” ๋ณต์‚ฌํ•ฉ๋‹ˆ๋‹ค.

 

 

 

 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์˜ ๊ด€์ ์—์„œ ๋งŽ์€ ๋ณต์‚ฌ๋Š” ํ”„๋กœ๊ทธ๋žจ์˜ ์‹คํ–‰์— ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„์„ ๋Šฆ์ถ”๊ธฐ ๋–„๋ฌธ์— ์‹œ์Šคํ…œ ์„ค๊ณ„์ž๋Š” ์ด๋Ÿฌํ•œ ์ž‘์—…์„ ์ตœ๋Œ€ํ•œ ๋น ๋ฅด๊ฒŒ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.