[c++] CAS ๊ตฌํ˜„ ๋ฐ ABA ๋ฌธ์ œ ํ•ด๊ฒฐ :: ABA ํ•ด๊ฒฐ_4. ๊ทธ ์™ธ์˜ ๋ฐฉ๋ฒ•๋“ค
์ปดํ“จํ„ฐ๊ณผํ•™ (CS)/Operating System 2020. 7. 2. 19:45

๋ชฉ์ฐจ ๋ฌธ์ œ ์ •์˜ lock free ๊ตฌํ˜„ ABA ํ•ด๊ฒฐ intํ˜• ๊ตฌํ˜„(+ Hazard pointer) Counter ๊ทธ ์™ธ์˜ ๋ฐฉ๋ฒ•๋“ค mutex lock(spin lock)๊ณผ์˜ ๋น„๊ต ๊ทธ ์™ธ์˜ ๋ฐฉ๋ฒ•๋“ค DCAS _InterlockedCompareExchange128 ์‚ฌ์šฉ ์œ„์˜ Counter ๊ธฐ๋ฒ•๊ณผ ๋น„์Šทํ•˜๋‹ค. 64bit๋ฅผ ๋ชจ๋‘ ์ด์šฉํ•˜์—ฌ ์ฃผ์†Œ๋ฅผ ํ‘œํ˜„ํ•˜๋Š” CPU์—์„œ๋Š” ์œ„์˜ Counter ๊ธฐ๋ฒ•์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์œผ๋ฏ€๋กœ c++์˜ _InterlockedCompareExchange128 ์—ฐ์‚ฐ์„ ์ด์šฉํ•˜์—ฌ ์ด๋ฅผ ๋Œ€์‹ ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด ์—ฐ์‚ฐ์€ 64bit ์ž๋ฃŒํ˜• 2๊ฐœ๋ฅผ ๋ฌถ์–ด์„œ 128bit๋กœ CAS ์—ฐ์‚ฐ์„ ์‹œํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด ๋•Œ 64bit ์”ฉ ๋ถ„๋ฆฌํ•˜์—ฌ ์ƒˆ๋กœ์šด ๊ฐ’์œผ๋กœ ๋ฐ”๊พธ์–ด์ค„ ์ˆ˜ ์žˆ๋‹ค. lock ๋ณ€์ˆ˜ ์ด์šฉ ์–ด์…ˆ๋ธ”๋ฆฌ์–ด๊นŒ์ง€ ๋ณด๋ฉด lock-fr..