๐Ÿ”ฌComputer Science/๋„คํŠธ์›Œํฌ

๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜์ด๋ž€

hellohailie 2022. 8. 1. 14:40

๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜์ด๋ž€

 

ํ”„๋กœ๊ทธ๋žจ์—์„œ ๋” ์ด์ƒ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ž๋™์œผ๋กœ ์ •๋ฆฌํ•˜๋Š” ๊ฒƒ.

=> JAVA, C#, JAVASCRIPT ๋“ฑ์ด ์žˆ๋‹ค. 

 

๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜ ๋ฐฉ๋ฒ•

 

โœ”๏ธ ํŠธ๋ ˆ์ด์‹ฑ : ํ•œ ๊ฐ์ฒด์— flag๋ฅผ ๋‘๊ณ , ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜ ์‚ฌ์ดํด๋งˆ๋‹ค flag์— ํ‘œ์‹œ ํ›„ ์‚ญ์ œํ•˜๋Š” mark and sweep ๋ฐฉ๋ฒ•

 

๊ฐ์ฒด์— in-use flag๋ฅผ ๋‘๊ณ , ์‚ฌ์ดํด๋งˆ๋‹ค ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ์ž๊ฐ€ ๋ชจ๋“  ๊ฐ์ฒด๋ฅผ ์ถ”์ ํ•ด์„œ ์‚ฌ์šฉ ์ค‘์ธ์ง€ ์•„๋‹Œ์ง€๋ฅผ ํ‘œ์‹œ(mark)ํ•œ๋‹ค. 

๊ทธ๋ฆฌ๊ณ  ํ‘œ์‹œ๋˜์ง€ ์•Š์€ ๊ฐ์ฒด๋ฅผ ์‚ญ์ œ(sweep)ํ•˜๋Š” ๋‹จ๊ณ„๋ฅผ ํ†ตํ•ด ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ•ด์ œํ•œ๋‹ค. 

 

โœ”๏ธ ๋ ˆํผ๋Ÿฐ์Šค ์นด์šดํŒ… : ํ•œ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ•˜๋Š” ๋ณ€์ˆ˜์˜ ์ˆ˜๋ฅผ ์ถ”์ ํ•˜๋Š” ๋ฐฉ๋ฒ•

 

๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ•˜๋Š” ๋ณ€์ˆ˜๋Š” ์ฒ˜์Œ์—๋Š” ํŠน์ • ๋ฉ”๋ชจ๋ฆฌ์— ๋Œ€ํ•ด ๋ ˆํผ๋Ÿฐ์Šค๊ฐ€ ํ•˜๋‚˜๋ฟ์ด์ง€๋งŒ, ๋ณ€์ˆ˜์˜ ๋ ˆํผ๋Ÿฐ์Šค๊ฐ€ ๋ณต์‚ฌ๋  ๋•Œ๋งˆ๋‹ค ๋ ˆํผ๋Ÿฐ์Šค ์นด์šดํŠธ๊ฐ€ ๋Š˜์–ด๋‚œ๋‹ค. ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ•˜๊ณ  ์žˆ๋˜ ๋ณ€์ˆ˜์˜ ๊ฐ’์ด ๋ฐ”๋€Œ๊ฑฐ๋‚˜, ๋ณ€์ˆ˜ ์Šค์ฝ”ํ”„๋ฅผ ๋ฒ—์–ด๋‚˜๋ฉด ๋ ˆํผ๋Ÿฐ์Šค ์นด์šดํŠธ๋Š” ์ค„์–ด๋“ ๋‹ค.

๋ ˆํผ๋Ÿฐ์Šค ์นด์šดํŠธ๊ฐ€ 0์ด ๋˜๋ฉด, ๊ทธ ๊ฐ์ฒด์™€ ๊ด€๋ จํ•œ ๋ฉ”๋ชจ๋ฆฌ๋Š” ๋น„์šธ ์ˆ˜ ์žˆ๋‹ค. (๋ ˆํผ๋Ÿฐ์Šค ์นด์šดํŠธ๊ฐ€ 0์ด ๋œ๋‹ค๋Š” ๋ง์€ ์•„๋ฌด๋„ ๊ทธ ๊ฐ์ฒด์— ๋Œ€ํ•œ ๋ ˆํผ๋Ÿฐ์Šค๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์ง€ ์•Š๋‹ค๋Š” ๋ง๊ณผ ๊ฐ™์Œ.)

 


๋ฉ”๋ชจ๋ฆฌ ์ƒ์กด ์ฃผ๊ธฐ (ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์™€ ๊ด€๊ณ„์—†์ด ๋น„์Šทํ•จ)

 

1. ํ•„์š”ํ•  ๋•Œ ํ• ๋‹นํ•œ๋‹ค. 

2. ํ• ๋‹น๋œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

3. ๋” ์ด์ƒ ํ•„์š”ํ•˜์ง€ ์•Š์œผ๋ฉด ํ•ด์ œํ•œ๋‹ค. 

 

 

๐Ÿ˜ƒ ์ž˜๋ชป๋œ ๊ฐœ๋… ์ „๋‹ฌ์ด ์žˆ๋‹ค๋ฉด ๋Œ“๊ธ€ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ์ €์˜ ์„ฑ์žฅ์— ํฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค๐Ÿค“