Computer Science/OS

๊ทธ๋ฆผ์œผ๋กœ ๋ฐฐ์šฐ๋Š” ๋ฆฌ๋ˆ…์Šค ๊ตฌ์กฐ 6์žฅ. ์žฅ์น˜ ์ ‘๊ทผ

์ฑ”๐Ÿป 2024. 2. 9. 20:33

์ถœ์ฒ˜: ๊ทธ๋ฆผ์œผ๋กœ ๋ฐฐ์šฐ๋Š” ๋ฆฌ๋ˆ…์Šค ๊ตฌ์กฐ

๊ทธ๋ฆผ์œผ๋กœ ๋ฐฐ์šฐ๋Š” ๋ฆฌ๋ˆ…์Šค ๊ตฌ์กฐ - ์˜ˆ์Šค24
์„ ๋ฐฐ๊ฐ€ ์˜†์—์„œ ํ•˜๋‚˜ํ•˜๋‚˜ ์•Œ๋ ค์ฃผ๋“ฏ ์นœ์ ˆํžˆ ์„ค๋ช…ํ•ด์ฃผ๋Š”์‹ค์Šต๊ณผ ๊ทธ๋ฆผ์œผ๋กœ ๋ฐฐ์šฐ๋Š” ๋ฆฌ๋ˆ…์Šค ์ง€์‹์˜ ๋ชจ๋“  ๊ฒƒ * Go ์–ธ์–ด์™€ Python, Bash ์Šคํฌ๋ฆฝํŠธ ์‹ค์Šต ์ฝ”๋“œ ์ œ๊ณต* ์ด ๋„์„œ๋Š” ใ€Ž์‹ค์Šต๊ณผ ๊ทธ๋ฆผ์œผ๋กœ ๋ฐฐ์šฐ๋Š” ๋ฆฌ๋ˆ…์Šค ๊ตฌ์กฐใ€์˜ ๊ฐœ์ •ํŒ์ž…๋‹ˆ๋‹ค.๋ฆฌ๋ˆ…์Šค ์ปค๋„ ์ฑ…์˜ ๋‘๊ป˜์™€ ๊นŠ์ด์— ...
https://www.yes24.com/Product/Goods/122109062

ํ”„๋กœ์„ธ์Šค๋Š” ์žฅ์น˜์— ์ง์ ‘ ์ ‘๊ทผํ•˜์ง€ ๋ชปํ•˜๊ณ  ์ปค๋„์„ ํ†ตํ•ด ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค.

์•„๋ž˜์™€ ๊ฐ™์€ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

  • ๋””๋ฐ”์ด์Šค ํŒŒ์ผ์ด๋ผ๋Š” ํŠน์ˆ˜ํ•œ ํŒŒ์ผ์„ ์กฐ์ž‘ํ•œ๋‹ค.
  • ๋ธ”๋ก ์žฅ์น˜์— ๊ตฌ์ถ•ํ•œ ํŒŒ์ผ ์‹œ์Šคํ…œ์„ ์กฐ์ž‘ํ•œ๋‹ค.(7์žฅ ์ฐธ์กฐ)

๐Ÿ’ก๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค ์นด๋“œ(NIC)๋Š” ์†๋„ ๋“ฑ์˜ ๋ฌธ์ œ๋กœ ์†Œ์ผ“์„ ์‚ฌ์šฉํ•œ๋‹ค.(์œ ์ผํ•˜๊ฒŒ ์–˜๋งŒ ํŒŒ์ผ ์•„๋‹˜)

๋””๋ฐ”์ด์Šค ํŒŒ์ผ

๋””๋ฐ”์ด์Šค ํŒŒ์ผ์€ ์žฅ์น˜๋งˆ๋‹ค ์กด์žฌํ•œ๋‹ค.

ex) ์ €์žฅ ์žฅ์น˜ : /dev/sda, /dev/sdb ๊ฐ™์€ ํŒŒ์ผ์ด ๋””๋ฐ”์ด์Šค ํŒŒ์ผ.

๋””๋ฐ”์ด์Šค ๋“œ๋ผ์ด๋ฒ„ : ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋””๋ฐ”์ด์Šค ํŒŒ์ผ์„ ์กฐ์ž‘ํ•˜๋ฉด ๋Œ€์‹  ์žฅ์น˜์— ์ ‘๊ทผํ•˜๋Š” SW

<๋””๋ฐ”์ด์Šค ํŒŒ์ผ์— ์ €์žฅ๋˜๋Š” ์ •๋ณด>

  • ํŒŒ์ผ ์ข…๋ฅ˜ : ์บ๋ฆญํ„ฐ ์žฅ์น˜ or ๋ธ”๋ก ์žฅ์น˜
  • ๋””๋ฐ”์ด์Šค ๋ฉ”์ด์ € ๋ฒˆํ˜ธ, ๋งˆ์ด๋„ˆ ๋ฒˆํ˜ธ : ๋‘ ๋ฒˆํ˜ธ์˜ ์กฐํ•ฉ์ด ๊ฐ™๋‹ค๋ฉด ๊ฐ™์€ ์žฅ์น˜์ž„

๋””๋ฐ”์ด์Šค ํŒŒ์ผ์€ ๋ณดํ†ต /dev/ ๋””๋ ‰ํ„ฐ๋ฆฌ ์•„๋ž˜์— ์กด์žฌํ•œ๋‹ค.

ls -l /dev/ | less

crw-rw----  1 root    tty       7, 134 Oct 23 05:28 vcsa6
crw-rw----  1 root    tty       7,  64 Oct 23 05:28 vcsu
crw-rw----  1 root    tty       7,  65 Oct 23 05:28 vcsu1
crw-rw----  1 root    tty       7,  66 Oct 23 05:28 vcsu2
crw-rw----  1 root    tty       7,  67 Oct 23 05:28 vcsu3
crw-rw----  1 root    tty       7,  68 Oct 23 05:28 vcsu4
crw-rw----  1 root    tty       7,  69 Oct 23 05:28 vcsu5
crw-rw----  1 root    tty       7,  70 Oct 23 05:28 vcsu6
brw-rw----  1 root    disk    252,   0 Oct 23 05:28 vda
brw-rw----  1 root    disk    252,   1 Oct 23 05:28 vda1

์ฒซ๊ธ€์ž

c : ์บ๋ฆญํ„ฐ ์žฅ์น˜

b : ๋ธ”๋ก ์žฅ์น˜

5๋ฒˆ์งธ๊ฐ€ ๋ฉ”์ด์ €, 6๋ฒˆ์งธ๊ฐ€ ๋งˆ์ด๋„ˆ

์บ๋ฆญํ„ฐ ์žฅ์น˜

= R, W ๊ฐ€๋Šฅ, ํƒ์ƒ‰ ์กฐ์ž‘ ๋ถˆ๊ฐ€๋Šฅ(์žฅ์น˜ ๋‚ด๋ถ€์—์„œ ์ ‘๊ทผ ์žฅ์†Œ ๋ณ€๊ฒฝ)

ex) ๋‹จ๋ง, ํ‚ค๋ณด๋“œ, ๋งˆ์šฐ์Šค

๊ฐ ํ”„๋กœ์„ธ์Šค์™€ ์—ฐ๊ฒฐ๋œ ๋‹จ๋ง : ps ax์˜ ๋‘ ๋ฒˆ์งธ ํ•„๋“œ์—์„œ ํ™•์ธ ๊ฐ€๋Šฅ

/dev/pts/0 : pts/0 ๋‹จ๋ง์— ๋Œ€์‘ํ•˜๋Š” ๋””๋ฐ”์ด์Šค ํŒŒ์ผ

๋‹จ๋ง ์žฅ์น˜์— hello ๋ฌธ์ž์—ด์„ ์“ฐ๋ฉด(๋””๋ฐ”์ด์Šค ํŒŒ์ผ์— write() ์‹œ์Šคํ…œ ์ฝœ์„ ํ˜ธ์ถœ) ๋‹จ๋ง์— ๋ฌธ์ž์—ด์ด ์ถœ๋ ฅ๋œ๋‹ค. โ†’ echo hello ๋ช…๋ น์–ด ์‹คํ–‰๊ณผ ๋™์ผํ•œ ๊ฒฐ๊ณผ

๊ทธ ์ด์œ ๋Š” echo ๋ช…๋ น์–ด๋Š” ํ‘œ์ค€ ์ถœ๋ ฅ์— hello๋ฅผ ์“ฐ๊ณ , ๋ฆฌ๋ˆ…์Šค์—์„œ ํ‘œ์ค€ ์ถœ๋ ฅ์€ ๋‹จ๋ง๊ณผ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ.

์œ„ ์‚ฌ์ง„ ๋ณด๋ฉด ์•„๋ฌด๊ฒƒ๋„ ํ•˜์ง€ ์•Š์€ ๋‘ ๋ฒˆ์งธ ๋‹จ๋ง ํ™”๋ฉด์— ์ฒซ๋ฒˆ์งธ ๋‹จ๋ง ํ™”๋ฉด์—์„œ ์“ด ๋””๋ฐ”์ด์Šค ํŒŒ์ผ์— ์“ด ๋ฌธ์ž์—ด์ด ์ถœ๋ ฅ๋œ ๊ฑธ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

๋ธ”๋ก ์žฅ์น˜(block device)

= R, W, ํƒ์ƒ‰๋„ ๊ฐ€๋Šฅ

ex) ํ•˜๋“œ ๋””์Šคํฌ(HDD), SDD ๊ฐ™์€ ์ €์žฅ์žฅ์น˜

๋ธ”๋ก ๋””๋ฐ”์ด์Šค ํŒŒ์ผ์„ ์ง์ ‘ ์กฐ์ž‘ํ•˜๋Š” ๊ฑด ๋“œ๋ฌธ ์ผ๋กœ ๋ณดํ†ต์€ ํŒŒ์ผ ์‹œ์Šคํ…œ์„ ๊ฒฝ์œ ํ•ด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๊ณ  ์“ด๋‹ค.

๋ฃจํ”„ ์žฅ์น˜

๋ฃจํ”„ ์žฅ์น˜ : ํŒŒ์ผ์„ ๋””๋ฐ”์ด์Šค ํŒŒ์ผ์ฒ˜๋Ÿผ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ

๋น„์–ด์žˆ๋Š” ์žฅ์น˜๊ฐ€ ์—†๊ฑฐ๋‚˜ ๋””์Šคํฌ์— ์ €์žฅ๋œ ๋‚ด์šฉ์ด ์†์ƒ๋  ์œ„ํ—˜์ด ์žˆ์„ ๊ฒฝ์šฐ ๋ฃจํ”„ ์žฅ์น˜ ๊ธฐ๋Šฅ ์“ฐ๋ฉด๋จ.

๋””๋ฐ”์ด์Šค ๋“œ๋ผ์ด๋ฒ„

๋””๋ฐ”์ด์Šค ๋“œ๋ผ์ด๋ฒ„ : ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋””๋ฐ”์ด์Šค ํŒŒ์ผ์— ์ ‘๊ทผํ•  ๋•Œ ๋™์ž‘ํ•˜๋Š” ์ปค๋„ ๊ธฐ๋Šฅ

์žฅ์น˜๋ฅผ ์ง์ ‘ ์กฐ์ž‘ํ•˜๋ ค๋ฉด ๊ฐ ์žฅ์น˜์— ๋‚ด์žฅ๋œ ๋ ˆ์ง€์Šคํ„ฐ ์˜์—ญ์„ ์ฝ๊ณ  ์จ์•ผ ํ•œ๋‹ค.

๋””๋ฐ”์ด์Šค ๋ ˆ์ง€์Šคํ„ฐ โ‰  CPU ๋ ˆ์ง€์Šคํ„ฐ

ํ”„๋กœ์„ธ์Šค ์ž…์žฅ์—์„œ ๋ณด๋Š” ์žฅ์น˜ ์กฐ์ž‘

๋ฉ”๋ชจ๋ฆฌ ๋งต ์ž…์ถœ๋ ฅ(MMIO)

๋ฉ”๋ชจ๋ฆฌ ๋งต ์ž…์ถœ๋ ฅ(memory-mapped I/O, MMIO)๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋””๋ฐ”์ด์Šค ๋ ˆ์ง€์Šคํ„ฐ์— ์ ‘๊ทผํ•œ๋‹ค.

180~184 ์ฐธ๊ณ ..

ํด๋ง

ํด๋ง : ๋””๋ฐ”์ด์Šค ๋“œ๋ผ์ด๋ฒ„๊ฐ€ ๋Šฅ๋™์ ์œผ๋กœ ์žฅ์น˜์—์„œ ์ฒ˜๋ฆฌ๋ฅผ ์™„๋ฃŒํ–ˆ๋Š”์ง€ ํ™•์ธ

โ†’ ๋‚ด๊ฐ€ ํ™•์ธ

๋””๋ฐ”์ด์Šค ๋“œ๋ผ์ด๋ฒ„๊ฐ€ ์žฅ์น˜์— ์ฒ˜๋ฆฌ๋ฅผ ์š”์ฒญํ•˜๊ณ  ์ฒ˜๋ฆฌ ์™„๋ฃŒํ•  ๋•Œ๊นŒ์ง€ ํ™•์ธ์šฉ ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ๊ณ„์† ํ™•์ธํ•˜๊ธฐ ๋•Œ๋ฌธ์— CPU๋Š” ๋‹ค๋ฅธ ์ผ์„ ํ•  ์ˆ˜ ์—†๋‹ค

โ†’ ์—„์ฒญ๋‚œ ์ž์›๋‚ญ๋น„.

๊ทธ๋ž˜์„œ ๊ณ„์†ํ•ด์„œ ํ™•์ธํ•˜๋Š” ๋Œ€์‹ ์— ์ผ์ • ๊ฐ„๊ฒฉ์„ ๋‘๊ณ  ๋ ˆ์ง€์Šคํ„ฐ ๊ฐ’์„ ํ™•์ธํ•˜๋Š” ํด๋ง ๋ฐฉ๋ฒ•๋„ ์žˆ๋‹ค.

์ธํ„ฐ๋ŸฝํŠธ

= ์‹œ์Šคํ…œ์ด ํ™•์ธํ•ด์„œ ์•Œ๋ ค์คŒ

๋‚ด๊ฐ€ ์‹ ๊ฒฝ์“ธ ํ•„์š” ์—†๊ธฐ ๋•Œ๋ฌธ์— ํด๋ง๋ณด๋‹ค๋Š” ์ธํ„ฐ๋ŸฝํŠธ๋ฅผ ์žฅ์น˜ ์ฒ˜๋ฆฌ ์™„๋ฃŒ ํ™•์ธ ๋ฐฉ๋ฒ•์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Œ.

/proc/interrupts : ์‹œ์Šคํ…œ ์‹œ์ž‘ ์ดํ›„ ์ง€๊ธˆ๊นŒ์ง€ ๋ฐœ์ƒํ•œ ์ธํ„ฐ๋ŸฝํŠธ ๊ฐœ์ˆ˜

Column) ์ผ๋ถ€๋Ÿฌ ํด๋ง์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ

์žฅ์น˜ ์ฒ˜๋ฆฌ๊ฐ€ ๋น ๋ฅด๊ณ  ์ฒ˜๋ฆฌ ๋นˆ๋„๊ฐ€ ๋†’๋‹ค๋ฉด ์˜ˆ์™ธ์ ์œผ๋กœ ํด๋ง์„ ์‚ฌ์šฉํ•˜๊ธฐ๋„ ํ•œ๋‹ค.

why? ์ธํ„ฐ๋ŸฝํŠธ ํ•ธ๋“ค๋Ÿฌ ํ˜ธ์ถœ์€ ์–ด๋А ์ด์ƒ์˜ ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ๋ฐœ์ƒํ•˜๊ธฐ ๋•Œ๋ฌธ

์‚ฌ์šฉ์ž ๊ณต๊ฐ„ ์ž…์ถœ๋ ฅ(userspace I/O, UIO) : ๋””๋ฐ”์ด์Šค ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ๋งคํ•‘ํ•œ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์„ ํ”„๋กœ์„ธ์Šค์˜ ๊ฐ€์ƒ ์ฃผ์†Œ ๊ณต๊ฐ„์— ๋งคํ•‘ํ•ด์„œ, ํ”„๋กœ์„ธ์Šค์—์„œ ์žฅ์น˜๋ฅผ ์กฐ์ž‘ํ•˜๋Š” ๊ธฐ๋Šฅ

๋””๋ฐ”์ด์Šค ํŒŒ์ผ๋ช…์€ ๋ฐ”๋€Œ๊ธฐ ๋งˆ๋ จ


Uploaded by N2T