๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
  • Dev Blog

CS/์šด์˜์ฒด์ œ18

[์šด์˜์ฒด์ œ] ์Šค๋ ˆ๋“œ ํŒจ์ŠคํŠธ์บ ํผ์Šค ์šด์˜์ฒด์ œ ๊ฐ•์˜์™€ ์‰ฝ๊ฒŒ ๋ฐฐ์šฐ๋Š” ์šด์˜์ฒด์ œ ๊ต์žฌ์— ๋Œ€ํ•œ TIL์ž…๋‹ˆ๋‹ค. ์Šค๋ ˆ๋“œ๋ž€? ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ƒ์„ฑ๋˜๋ฉด CPU ์Šค์ผ€์ค„๋Ÿฌ๋Š” ํ”„๋กœ์„ธ์Šค๊ฐ€ ํ•ด์•ผ ํ•  ์ผ์„ CPU์— ์ „๋‹ฌํ•˜๊ณ  ์‹ค์ œ ์ž‘์—…์€ CPU๊ฐ€ ์ˆ˜ํ–‰ํ•œ๋‹ค. ์ด๋•Œ CPU ์Šค์ผ€์ค„๋Ÿฌ๊ฐ€ CPU์— ์ „๋‹ฌํ•˜๋Š” ์ผ ํ•˜๋‚˜๊ฐ€ ์Šค๋ ˆ๋“œ๋‹ค. ์ฆ‰, CPU๊ฐ€ ์ฒ˜๋ฆฌํ•˜๋Š” ์ž‘์—…์˜ ๋‹จ์œ„๋Š” ํ”„๋กœ์„ธ์Šค๋กœ๋ถ€ํ„ฐ ์ „๋‹ฌ๋ฐ›์€ ์Šค๋ ˆ๋“œ๊ฐ€ ๋œ๋‹ค. ๋”ฐ๋ผ์„œ, ์šด์˜์ฒด์ œ์˜ ์ž‘์—… ๋‹จ์œ„๋ฅผ ํ”„๋กœ์„ธ์Šค๋ผ๊ณ  ํ•œ๋‹ค๋ฉด CPU์˜ ์ž‘์—… ๋‹จ์œ„๋ฅผ ์Šค๋ ˆ๋“œ๋ผ๊ณ  ํ•œ๋‹ค. ํ”„๋กœ์„ธ์Šค์™€ ์Šค๋ ˆ๋“œ์˜ ์ฐจ์ด ํ”„๋กœ์„ธ์Šค๋ผ๋ฆฌ๋Š” ์•ฝํ•˜๊ฒŒ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋‹ค. ์•ฝํ•˜๊ฒŒ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋‹ค๋Š” ๊ฒƒ์€ ๊ฐ๊ฐ์˜ ํ”„๋กœ์„ธ์Šค๋Š” ๋…๋ฆฝ๋œ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์„ ๊ฐ€์ง€๋ฉฐ, ์„œ๋กœ ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค ๊ฐ„์—๋Š” ๋ฉ”๋ชจ๋ฆฌ ๊ณต์œ ๋ฅผ ํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ์ด๋ ‡๊ฒŒ ๋…๋ฆฝ์ ์ธ ํ”„๋กœ์„ธ์Šค๋Š” ์„œ๋กœ ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๋ผ๋ฆฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›์„ ๋•Œ ํ”„๋กœ์„ธ.. 2023. 4. 14.
[์šด์˜์ฒด์ œ] ํ”„๋กœ์„ธ์Šค ํŒจ์ŠคํŠธ์บ ํผ์Šค ์šด์˜์ฒด์ œ ๊ฐ•์˜์™€ ์‰ฝ๊ฒŒ ๋ฐฐ์šฐ๋Š” ์šด์˜์ฒด์ œ ๊ต์žฌ์— ๋Œ€ํ•œ TIL์ž…๋‹ˆ๋‹ค. ํ”„๋กœ์„ธ์Šค๋ž€? ํ”„๋กœ๊ทธ๋žจ์€ ํ•˜๋“œ๋””์Šคํฌ ๊ฐ™์€ ์ €์žฅ์žฅ์น˜์— ๋ณด๊ด€๋˜์–ด ์žˆ๋‹ค๊ฐ€ ๋งˆ์šฐ์Šค๋กœ ํด๋ฆญํ•˜๋ฉด ์‹คํ–‰๋œ๋‹ค. ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰๋œ๋‹ค๋Š” ๊ฒƒ์€ ํฐ๋…ธ์ด๋งŒ ๊ตฌ์กฐ์— ๋”ฐ๋ฅด๋ฉด ํ•ด๋‹น ํ”„๋กœ๊ทธ๋žจ ์ฝ”๋“œ๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ์™€์„œ ์ž‘์—…์ด ์ง„ํ–‰๋œ๋‹ค๋Š” ์˜๋ฏธ์ด๋‹ค. ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰์„ ์œ„ํ•ด ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ์˜จ ๊ฒƒ์„ ํ”„๋กœ์„ธ์Šค๋ผ๊ณ  ํ•œ๋‹ค. ํ”„๋กœ๊ทธ๋žจ์—์„œ ํ”„๋กœ์„ธ์Šค๋กœ์˜ ์ „ํ™˜ ์–ด๋–ค ํ”„๋กœ๊ทธ๋žจ์ด ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋˜์—ˆ๋‹ค๋Š” ๊ฒƒ์€ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ์™”๋‹ค๊ณ  ํ•  ์ˆ˜๋„ ์žˆ์ง€๋งŒ ๋™์‹œ์— ์šด์˜์ฒด์ œ๋กœ๋ถ€ํ„ฐ ํ”„๋กœ์„ธ์Šค ์ œ์–ด ๋ธ”๋ก(PCB)์„ ๋ฐ›์•˜๋‹ค๊ณ ๋„ ํ•  ์ˆ˜ ์žˆ๋‹ค. ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š”๋ฐ ํ•„์š”ํ•œ ๋‹ค์–‘ํ•œ ์ •๋ณด๋“ค์ด ์žˆ์„ ๊ฒƒ์ด๋‹ค. ์ด๋Ÿฌํ•œ ์ •๋ณด๋“ค์„ ๋ณด๊ด€ํ•˜๋Š” ์ž๋ฃŒ ๊ตฌ์กฐ๊ฐ€ ๋ฐ”๋กœ ํ”„๋กœ์„ธ์Šค ์ œ์–ด ๋ธ”๋ก์ด๋‹ค. ์ด์ „ ํฌ์ŠคํŒ…์—์„œ ๋ฉ”๋ชจ๋ฆฌ ๋งต ์ž…์ถœ๋ ฅ์„ ์„ค๋ช….. 2023. 4. 13.
[์šด์˜์ฒด์ œ] ์ปดํ“จํ„ฐ์˜ ๊ตฌ์กฐ์™€ ์„ฑ๋Šฅ ํ–ฅ์ƒ ์‰ฝ๊ฒŒ ๋ฐฐ์šฐ๋Š” ์šด์˜์ฒด์ œ ๊ต์žฌ 2์žฅ์— ๋Œ€ํ•œ TIL์ž…๋‹ˆ๋‹ค. ์šด์˜์ฒด์ œ๋ฅผ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ์˜ ๊ตฌ์กฐ์™€ ์ด๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ํ•˜๋“œ์›จ์–ด์˜ ํŠน์„ฑ์„ ์•Œ์•„์•ผ ํ•œ๋‹ค. ๋”ฐ๋ผ์„œ ์šด์˜์ฒด์ œ์™€ ๊ด€๋ จ๋œ ์—ฌ๋Ÿฌ ํ•˜๋“œ์›จ์–ด์˜ ํŠน์„ฑ๊ณผ ๋™์ž‘ ์›๋ฆฌ์— ๋Œ€ํ•ด์„œ ํฌ์ŠคํŒ…ํ•˜๋ ค๊ณ  ํ•œ๋‹ค. ํ•˜๋“œ์›จ์–ด์˜ ๊ตฌ์„ฑ ์ปดํ“จํ„ฐ๋Š” ์ค‘์•™์ฒ˜๋ฆฌ์žฅ์น˜(CPU), ๋ฉ”์ธ๋ฉ”๋ชจ๋ฆฌ, ์ž…์ถœ๋ ฅ์žฅ์น˜, ์ €์žฅ์žฅ์น˜๋กœ ๊ตฌ์„ฑ๋œ๋‹ค. ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ๋Š” ์ „๋ ฅ์ด ๋Š๊ธฐ๋ฉด ๋ฐ์ดํ„ฐ๋ฅผ ์žƒ์–ด๋ฒ„๋ฆฌ๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ์ดํ„ฐ๋ฅผ ์˜๊ตฌํžˆ ๋ณด๊ด€ํ•˜๋ ค๋ฉด ํ•˜๋“œ๋””์Šคํฌ๋‚˜ USB ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค. ๋”ฐ๋ผ์„œ, ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ œ1์ €์žฅ์žฅ์น˜, ํ•˜๋“œ๋””์Šคํฌ๋‚˜ USB ๋ฉ”๋ชจ๋ฆฌ ๊ฐ™์€ ๊ฒƒ๋“ค์„ ์ œ2์ €์žฅ์žฅ์น˜ ๋˜๋Š” ๋ณด์กฐ์ €์žฅ์žฅ์น˜๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. ์ด์ œ๋ถ€ํ„ฐ ์›Œ๋”ฉ์— ๋Œ€ํ•œ ํŽธ๋ฆฌํ•จ์„ ์œ„ํ•ด ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ '๋ฉ”๋ชจ๋ฆฌ', ๋ณด์กฐ์ €์žฅ์žฅ์น˜๋ฅผ '์ €์žฅ์žฅ์น˜'๋ผ๊ณ  ํ•˜๊ฒ ๋‹ค. ์ปดํ“จํ„ฐ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ถ€ํ’ˆ ์ค‘์—๋Š”.. 2023. 4. 12.
[์šด์˜์ฒด์ œ] ์ปค๋„๊ณผ ์ธํ„ฐํŽ˜์ด์Šค ํŒจ์ŠคํŠธ์บ ํผ์Šค ์šด์˜์ฒด์ œ ๊ฐ•์˜์™€ ์‰ฝ๊ฒŒ ๋ฐฐ์šฐ๋Š” ์šด์˜์ฒด์ œ ๊ต์žฌ์— ๋Œ€ํ•œ TIL์ž…๋‹ˆ๋‹ค. ์‹œ์Šคํ…œ ํ˜ธ์ถœ(System Call) ์‹œ์Šคํ…œ ํ˜ธ์ถœ์€ ์ปค๋„์ด ์ž์‹ ์„ ๋ณดํ˜ธํ•˜๊ธฐ ์œ„ํ•ด ๋งŒ๋“  ์ธํ„ฐํŽ˜์ด์Šค๋‹ค. ์ปค๋„์€ ์ปดํ“จํ„ฐ ์ž์›์„ ๋ณดํ˜ธํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ์ž๋‚˜ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์ด ์ž์›์— ์ง์ ‘ ์ ‘๊ทผํ•˜๋Š” ๊ฒƒ์„ ์ฐจ๋‹จํ•œ๋‹ค. ๋”ฐ๋ผ์„œ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์ด ์ž์›์„ ์ด์šฉํ•˜๋ ค๋ฉด ์‹œ์Šคํ…œ ํ˜ธ์ถœ์ด๋ผ๋Š” ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ด์šฉํ•˜์—ฌ ์ ‘๊ทผํ•ด์•ผ ํ•œ๋‹ค. ๋ณดํ†ต ์‹œ์Šคํ…œ ํ˜ธ์ถœ์„ ์ง์ ‘ ์‚ฌ์šฉํ•˜๊ธฐ๋ณด๋‹ค๋Š”, ํ•ด๋‹น ์‹œ์Šคํ…œ ํ˜ธ์ถœ์„ ์‚ฌ์šฉํ•ด์„œ ๋งŒ๋“  ๊ฐ ์–ธ์–ด๋ณ„ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ(API)๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ์œ„ ๊ทธ๋ฆผ์€ C์–ธ์–ด๋กœ ๋งŒ๋“  ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์—์„œ ์‹œ์Šคํ…œ ํ˜ธ์ถœ์„ ์‚ฌ์šฉํ•˜๋Š” ์˜ˆ์ œ์ด๋‹ค. ์ด๋•Œ, sys_open()์ด๋ผ๋Š” ์‹œ์Šคํ…œ ํ˜ธ์ถœ์„ ์ง์ ‘ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ C์–ธ์–ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ ์ œ๊ณตํ•ด ์ฃผ๋Š” open()์„ ์‚ฌ์šฉํ•œ๋‹ค. ์ปค๋„์˜ ์—ญํ• ๊ณผ ์ข….. 2023. 4. 10.