Linux ์ปค๋„ ํ—ค๋” ํŒŒ์ผ์„ ์žฌ๊ตฌ์„ฑํ•œ ํŒจ์น˜์˜ ๋‘ ๋ฒˆ์งธ ๋ฒ„์ „

Ingo Molnar๋Š” ํ—ค๋” ํŒŒ์ผ์˜ ๊ณ„์ธต ๊ตฌ์กฐ๋ฅผ ์žฌ๊ตฌ์„ฑํ•˜๊ณ  ์ƒํ˜ธ ์ข…์†์„ฑ ์ˆ˜๋ฅผ ์ค„์—ฌ ์ปค๋„์„ ์žฌ๊ตฌ์ถ•ํ•˜๋Š” ์‹œ๊ฐ„์„ ํฌ๊ฒŒ ์ค„์ผ ์ˆ˜ ์žˆ๋Š” ํŒจ์น˜ ์„ธํŠธ์˜ ๋‘ ๋ฒˆ์งธ ๋ฒ„์ „์„ ์ œ์‹œํ–ˆ์Šต๋‹ˆ๋‹ค. ์ƒˆ ๋ฒ„์ „์€ 5.16-rc8 ์ปค๋„์— ๋งž๊ฒŒ ์กฐ์ •๋˜๊ณ  ์ถ”๊ฐ€ ์ตœ์ ํ™”๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์œผ๋ฉฐ Clang ์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋นŒ๋“œํ•˜๊ธฐ ์œ„ํ•œ ์ง€์›์„ ๊ตฌํ˜„ํ•œ๋‹ค๋Š” ์ ์—์„œ ๋ฉฐ์น  ์ „์— ์ œ์•ˆ๋œ ์ฒซ ๋ฒˆ์งธ ๋ฒ„์ „๊ณผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. Clang์„ ์‚ฌ์šฉํ•  ๋•Œ ํŒจ์น˜๋ฅผ ์ ์šฉํ•˜๋ฉด CPU ๋ฆฌ์†Œ์Šค ์†Œ๋น„ ์ธก๋ฉด์—์„œ ๋นŒ๋“œ ์‹œ๊ฐ„์ด 88% ๋˜๋Š” 77% ๋‹จ์ถ•๋˜์—ˆ์Šต๋‹ˆ๋‹ค. make -j96 vmlinux ๋ช…๋ น์–ด๋กœ ์ปค๋„์„ ์™„์ „ํžˆ ์žฌ๊ตฌ์ถ•ํ–ˆ์„ ๋•Œ ๋นŒ๋“œ ์‹œ๊ฐ„์ด 337.788์ดˆ์—์„œ 179.773์ดˆ๋กœ ๋‹จ์ถ•๋๋‹ค.

์ƒˆ ๋ฒ„์ „์€ ๋˜ํ•œ GCC ํ”Œ๋Ÿฌ๊ทธ์ธ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ณ , ์ดˆ๊ธฐ ๊ฒ€ํ†  ๊ณผ์ •์—์„œ ์‹๋ณ„๋œ ์˜ค๋ฅ˜๋ฅผ ์ˆ˜์ •ํ•˜๋ฉฐ, "task_struct_per_task" ๊ตฌ์กฐ์˜ ์ค‘๋ณต ์„ ์–ธ์„ ํ†ตํ•ฉํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ, linux/sched.h ํ—ค๋”ํŒŒ์ผ ์ตœ์ ํ™”๋ฅผ ์ง€์†ํ•˜๊ณ , RDMA ์„œ๋ธŒ์‹œ์Šคํ…œ(infiniband)์˜ ํ—ค๋”ํŒŒ์ผ ์ตœ์ ํ™”๋ฅผ ๊ตฌํ˜„ํ•ด ์ „์ž‘ ๋Œ€๋น„ ๋นŒ๋“œํƒ€์ž„์„ 9% ๋” ๋‹จ์ถ•ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋๋‹ค. ํŒจ์น˜์˜. linux/sched.h ํ—ค๋” ํŒŒ์ผ์„ ํฌํ•จํ•˜๋Š” ์ปค๋„ C ํŒŒ์ผ ์ˆ˜๊ฐ€ ์ฒซ ๋ฒˆ์งธ ํŒจ์น˜ ๋ฒ„์ „์— ๋น„ํ•ด 68%์—์„œ 36%๋กœ ์ค„์—ˆ์Šต๋‹ˆ๋‹ค(์›๋ณธ ์ปค๋„์— ๋น„ํ•ด 99%์—์„œ 36%).

์ถœ์ฒ˜ : opennet.ru

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€