์ ์ฒด ๊ธ112 ์ปดํจํฐ ์ฑ๋ฅ ํฅ์ ๊ธฐ์ ๋ฉ์ธ๋ณด๋ ๋ด ๋ฉ๋ชจ๋ฆฌ์ ์ฃผ๋ณ์ฅ์น๋ ์์คํ ๋ฒ์ค(FSB)๋ก ์ฐ๊ฒฐ๋์ด ์๊ณ , CPU ๋ด ALU, ์ ์ด์ฅ์น, ๋ ์ง์คํฐ๋ CPU ๋ด๋ถ ๋ฒ์ค(BSB)๋ก ์ฐ๊ฒฐ๋์ด ์๋ค. ๋ฐ๋ผ์ ๋ฉ๋ชจ๋ฆฌ์ ์๋๋ ์์คํ ๋ฒ์ค์ ์๋์ ๊ฐ๊ณ , CPU์ ์๋๋ CPU ๋ด๋ถ ๋ฒ์ค์ ์๋์ ๊ฐ๋ค. CPU ๋ด๋ถ ๋ฒ์ค์ ์๋๊ฐ ์์คํ ๋ฒ์ค์ ์๋ ๋ณด๋ค ๋น ๋ฅด๊ธฐ ๋๋ฌธ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋น๋กฏํ ์ฃผ๋ณ์ฅ์น์ ์๋๊ฐ CPU์ ์๋๋ฅผ ๋ฐ๋ผ๊ฐ์ง ๋ชปํ๋ค. ์ฑ๋ฅ ํฅ์ ๊ธฐ์ ์ ๋ฉ๋ชจ๋ฆฌ์ ์์ ์๋๋ฅผ ์ฌ๋ฆฌ๊ธฐ ์ํด ๊ฐ๋ฐ๋ ๊ธฐ์ ์ค ์ด์์ฒด์ ์ ๊ด๋ จ๋ ๊ธฐ์ ์ ์ดํด๋ณด์. ๋ฒํผ ๋ฒํผ๋ ์๋์ ์ฐจ์ด๊ฐ ์๋ ๋ ์ฅ์น ์ฌ์ด์์ ๊ทธ ์ฐจ์ด๋ฅผ ์ํํ๋ ์ญํ ์ ํ๋ค. ๋ณด๊ด ์ฐฝ๊ณ ์์ ๊ทค 5๊ฐ๋ฅผ ๋๋ง๋ก ์ฎ๊ธธ ๋ ํ๋์ฉ ์ฎ๊ธฐ๋ ๊ฒ๋ณด๋ค ๋ฐ๊ตฌ๋๋ก 5๊ฐ๋ฅผ ์ฎ๊ธธ ์ ์๋๋ฐ, ์ฌ๊ธฐ์ ๋ฐ๊ตฌ๋๊ฐ ๋ฒํผ์ ํด๋นํ๋ค. ์ผ.. 2023. 1. 7. ๊ต์ฐฉ์ํ(DeadLock) ์์ฌ ํ์์ ์ด์์ฒด์ ๊ฐ ์๋ชป๋ ์ ์ฑ ์ ์ฌ์ฉํ์ฌ ํน์ ํ๋ก์ธ์ค์ ์์ ์ด ์ง์ฐ๋๋ ๋ฌธ์ . ๊ต์ฐฉ ์ํ๋ ์ฌ๋ฌ ํ๋ก์ธ์ค๊ฐ ์๋ก ์๋ณดํ์ง ์๋ ์ํ. ๊ต์ฐฉ ์ํ๊ฐ ๋ฐ์ํ๋ฉด ์ด์์ฒด์ ๊ฐ ๊ฐ์์ ์ผ๋ก ํด๊ฒฐํด์ผ ํ๋ค. ๊ต์ฐฉ ์ํ์ ๋ฐ์ ๊ต์ฐฉ ์ํ๋ ์์คํ ์์, ๊ณต์ ๋ณ์(๋๋ ํ์ผ), ์์ฉ ํ๋ก๊ทธ๋จ ๋ฑ์ ์ฌ์ฉํ ๋ ๋ฐ์ํ๋ค. ์์คํ ์์ ์๋ฅผ ๋ค๋ฉด, ํ๋ก์ธ์ค P1์ ํ๋ฆฐํฐ๋ฅผ ํ ๋น ๋ฐ์ ํ CD ๋ ์ฝ๋๋ฅผ ๊ธฐ๋ค๋ฆฌ๊ณ ํ๋ก์ธ์ค P2๋ CD ๋ ์ฝ๋๋ฅผ ํ ๋น ๋ฐ์ ํ ํ๋ฆฐํฐ๋ฅผ ๊ธฐ๋ค๋ฆฌ๋ฉด ๊ต์ฐฉ ์ํ ๋ฐ์ ์ฌ๊ธฐ์ ํ๋ฆฐํฐ์ CD ๋ ์ฝ๋ ๊ฐ์ ์์์ ์๊ณ๊ตฌ์ญ์ผ๋ก ๋ณดํธ๋ฐ๊ณ ์์ ๋ค๋ฅธ ํ๋ก์ธ์ค์ ๊ณต์ ํ ์ ์๋ ์์์ ์ฌ์ฉํ ๋ ๋ฐ์(๋ํ์ ) ๊ณต์ ๋ณ์ ์๋ฅผ ๋ค๋ฉด, ์๋ก ๋ค๋ฅธ ํ๋ก์ธ์ค๊ฐ ํ ๊ณต์ ๋ณ์์ ๊ฐ์ ๋ฐ๊พธ๋ฉด์ ๋ฌดํ ๋ฃจํ๋ฅผ ๋๋ ๊ฒฝ์ฐ ํ .. 2023. 1. 3. ์ฑ๊ธํค ํจํด โ ์ฑ๊ธํค ํจํด ์ ํ๋ฆฌ์ผ์ด์ ์ด ์์๋ ๋ ์ด๋ค ํด๋์ค๊ฐ ์ต์ด ํ๋ฒ๋ง ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋นํ๊ณ (Static) ๊ทธ ๋ฉ๋ชจ๋ฆฌ์ ์ธ์คํด์ค๋ฅผ ๋ง๋ค์ด ์ฌ์ฉํ๋ ๋์์ธํจํด. ์์ฑ์๊ฐ ์ฌ๋ฌ ์ฐจ๋ก ํธ์ถ๋๋๋ผ๋ ์ค์ ๋ก ์์ฑ๋๋ ๊ฐ์ฒด๋ ํ๋๊ณ ์ต์ด ์์ฑ ์ดํ์ ํธ์ถ๋ ์์ฑ์๋ ์ต์ด์ ์์ฑํ ๊ฐ์ฒด๋ฅผ ๋ฐํํ๋ค. (์๋ฐ์์ ์์ฑ์๋ฅผ private๋ก ์ ์ธํด์ ์์ฑ ๋ถ๊ฐํ๊ฒ ํ๊ณ getInstance()๋ก ๋ฐ์์ฐ๊ธฐ๋ ํจ) => ์ฑ๊ธํค ํจํด์ ๋จ ํ๋์ ์ธ์คํด์ค๋ฅผ ์์ฑํด ์ฌ์ฉํ๋ ๋์์ธ ํจํด์ด๋ค. (์ธ์คํด์ค๊ฐ ํ์ ํ ๋ ๋๊ฐ์ ์ธ์คํด์ค๋ฅผ ๋ง๋ค์ด ๋ด๋ ๊ฒ์ด ์๋๋ผ, ๋์ผ(๊ธฐ์กด) ์ธ์คํด์ค๋ฅผ ์ฌ์ฉํ๊ฒํจ) โ ์ฑ๊ธํค ํจํด์ ์ฐ๋ ์ด์ ๊ณ ์ ๋ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ์ป์ผ๋ฉด์ ํ๋ฒ์ new๋ก ์ธ์คํด์ค๋ฅผ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ๋ฉ๋ชจ๋ฆฌ ๋ญ๋น๋ฅผ ๋ฐฉ์งํ ์ ์์ ๋ํ ์ฑ๊ธํค.. 2023. 1. 3. Context Switching(๋ฌธ๋งฅ ๊ตํ) 2023. 1. 2. ์ฑ๋ฅ ์ต์ ํ๋ฅผ ์ํ ๊ฟํ! โ ์ต์ ํ๋ฅผ ์ํ Tip ํจ์ ์ธ์ ์ค์ด๊ธฐ ํจ์ ์ธ์๊ฐ ๋ง์ผ๋ฉด ํจ์ ํธ์ถ ์ค๋ฒํค๋๊ฐ ์ฆ๊ฐํ๋ค. ๋ฐ๋ผ์ ๊ตฌ์กฐ์ฒด๋ ํด๋์ค๋ก ๋ฌถ์ด์ ๊ทธ๊ฒ์ ์ฐธ์กฐ๋ก ์ ๋ฌํ๋ฉด 30% ์๋๋ฅผ ์ฆ๊ฐ ์ํจ๋ค. const ์ ์ธ ์ปดํ์ผ๋ฌ๋ const ์์ ๊ฐ์ฒด๋ฅผ ์ผ๋ฐ์ ์ธ ๋ฉ๋ชจ๋ฆฌ๊ฐ ์๋ ๋จธ์ ๋ ์ง์คํฐ์ ์ ์ฅํ๊ธฐ ๋๋ฌธ์ ์ฐ์ฐ์ด ๋์ฑ ๋น ๋ฅด๋ค. ์กฐ๊ฑด๋ฌธ ๋ด ์ฐ์ฐ ์ค์ด๊ธฐ ์กฐ๊ฑด๋ฌธ ์์ ์ฌ๋ฌ๊ฐ์ ์กฐ๊ฑด ๋ณ์๊ฐ ์๋ค๋ฉด ๋ถํ์ํ ์ฐ์ฐ์ ๋ค๋ก ๋ณด๋ด์. ๋ง์ฝ if ( getValue() > 3000 || isExist ) ๊ฐ ์๋ค๋ฉด if ( isExist || getValue > 3000)๋ก ๋ฐ๊พธ์. isExist๊ฐ true๋ผ๋ฉด ๋ค ์ฐ์ฐ์ ์๋ตํด์ ์ฑ๋ฅ์ ๋์์ ์ค๋ค. ์์ฃผ ์ฌ์ฉํ๋ ์ผ์ด์ค๋ฅผ Switch ์์ชฝ์ผ๋ก ๋ฐฐ์น switch ์ฝ๋๋ ์์์ ๋ถํฐ ์ฐจ๋ก๋ก ์ฒด.. 2022. 12. 30. [C/C++] unsigned์ signed์ ๊ฐ ๋น๊ต ์ฃผ์ unsigned ์๋ฃํ๊ณผ signed ์๋ฃํ์ ํํํ ์ ์๋ ๋ฒ์๊ฐ ๋ค๋ฆ ๋๋ค. ๊ทธ๋์ ๊ฐ์ ์๋ฃํ์ด๋ผ๋ unsigned์ signed์ ๊ฐ์ ๋น๊ตํ ๋๋ ์ปดํ์ผ๋ฌ์์ warning์ ๋ฑ์ด์ค๋๋ค. unsigned int uVal = 3; int nVal = -1; if (uVal > nVal) { printf("unsigned 3 is bigger than signed -1\n"); } else { printf("signed -1 is bigger than unsigned 3\n"); } ์ด๋ค ๊ฒฐ๊ณผ๋ฅผ ๋ณด์ฌ์ค๊น์? ์ถ๋ ฅ ๊ฒฐ๊ณผ๋ else๋ฌธ์ธ "signed -1 is bigger than unsigned 3"์ด ์ถ๋ ฅ ๋ฉ๋๋ค. ํต์์ ์ผ๋ก uVal์ด nVal๋ณด๋ค ํฌ๋ค๊ณ ์๊ฐํ๊ฒ ์ง๋ง unsigned์ signed๋ฅผ.. 2022. 3. 23. ์ด์ 1 ยทยทยท 14 15 16 17 18 19 ๋ค์