Busy Waiting์ด๋ž€?

  • ์›ํ•˜๋Š” ์ž์›์„ ์–ป๊ธฐ ์œ„ํ•ด ๊ธฐ๋‹ค๋ฆฌ๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๊ถŒํ•œ์„ ์–ป์„ ๋•Œ๊นŒ์ง€ ํ™•์ธํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

Busy Waiting์€ ์–ด๋–ค ์ƒํ™ฉ์ผ๋•Œ ์‚ฌ์šฉํ•˜๋Š”๊ฒŒ ์ข‹์„๊นŒ?

  • ์ž์›์˜ ๊ถŒํ•œ์„ ์–ป๋Š”๋ฐ ๋งŽ์€ ์‹œ๊ฐ„์ด ์†Œ์š”๋˜์ง€ ์•Š๋Š” ์ƒํ™ฉ์ธ ๊ฒฝ์šฐ.
  • Context Switching ๋น„์šฉ๋ณด๋‹ค ์„ฑ๋Šฅ์ ์œผ๋กœ ๋” ์šฐ์ˆ˜ํ•œ ์ƒํ™ฉ์ธ ๊ฒฝ์šฐ.

Busy Waiting์˜ ๋‹จ์ ์€ ์—†์„๊นŒ?

  • ๊ถŒํ•œ ํš๋“์„ ์œ„ํ•ด ๋งŽ์€ CPU๋ฅผ ๋‚ญ๋น„ํ•œ๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

Busy Waiting๋ง๊ณ  ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์€ ์—†์„๊นŒ?

  • ์ง€์†์ ์œผ๋กœ ํ™•์ธํ•˜๋Š” Busy Waiting์ด ์•„๋‹Œ Sleeping์ด๋ผ๋Š” ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Sleeping์ด๋ž€?

  • ๊ถŒํ•œ์„ ์–ป๊ธฐ ์œ„ํ•ด ๊ธฐ๋‹ค๋ฆฌ๋Š” ์‹œ๊ฐ„์„ wait queue์— ์‹คํ–‰ ์ค‘์ธ Thread ์ •๋ณด๋ฅผ ๋‹ด๊ณ  ๋‹ค๋ฅธ Thread์—๊ฒŒ CPU๋ฅผ ์–‘๋ณดํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.
  • ์ปค๋„์€ ๊ถŒํ•œ ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด wait queue์— ๋‹ด๊ธด Thread๋ฅผ ๊นจ์›Œ CPU๋ฅผ ๋ถ€์—ฌํ•ฉ๋‹ˆ๋‹ค.

Sleeping์€ ์–ด๋–ค ์ƒํ™ฉ์ผ๋•Œ ์‚ฌ์šฉํ•˜๋Š”๊ฒŒ ์ข‹์„๊นŒ?

  • ๊ธฐ๋‹ค๋ฆฌ๋Š” ์‹œ๊ฐ„์ด ์˜ˆ์ธก์ด ๋ถˆ๊ฐ€๋Šฅํ•œ ์ƒํ™ฉ์ธ ๊ฒฝ์šฐ.

Sleeping์˜ ๋‹จ์ ์€ ์—†์„๊นŒ?

  • wait queue์— ๋„ฃ๋Š” ๋น„์šฉ + Context Switching ๋น„์šฉ์ด ๋“œ๋Š” ๋‹จ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

Reference