๐Ÿ–ฅ Computer Science

97์ ์งœ๋ฆฌ ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค.. 100์  ๋„์ „์€ ํ•ด๋ณด์•˜๋Š”๋ฐ, ์ •์ƒ์ ์œผ๋กœ๋Š” ์•ˆ๋˜๋”๋ผ๊ตฌ์š”.. ํ˜น์‹œ ๋ˆ„๊ตฐ๊ฐ€ ์ •์ƒ์ ์œผ๋กœ 100์ ์„ ๋ฐ›์•˜๋‹ค๋ฉด.. ์Šฌ์ฉ ์•Œ๋ ค์ฃผ์‹œ๋ฉด ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.. ํ™”์ดํŒ…ํ•˜์„ธ์š” :)
๐Ÿง ํ”„๋กœ์„ธ์Šค ์šฐ์„  ํ”„๋กœ์„ธ์Šค์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ธฐ ์ „์—, ํ”„๋กœ์„ธ์Šค์™€ ๊ฐ™์ด ์•Œ์•„๋‘์–ด์•ผ ํ•  ์šฉ์–ด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ”๋กœ ํ”„๋กœ๊ทธ๋žจ๊ณผ Task์ž…๋‹ˆ๋‹ค. ๐Ÿ“• ํ”„๋กœ๊ทธ๋žจ ์ผ๋ฐ˜์ ์œผ๋กœ ํ•˜๋“œ ๋””์Šคํฌ์— ์ €์žฅ๋˜์–ด ์žˆ๋Š” ์‹คํ–‰์ฝ”๋“œ๋ฅผ ๋œปํ•˜๋Š”๋ฐ, ์˜ˆ๋ฅผ ๋“ค์–ด ์นด์นด์˜คํ†ก, ์›Œ๋“œ, ํ•œ๊ธ€ ๋“ฑ์ด ๊ฐ๊ฐ ํ•˜๋‚˜์˜ ํ”„๋กœ๊ทธ๋žจ์ž…๋‹ˆ๋‹ค. ์นด์นด์˜คํ†ก์„ ์˜ˆ์‹œ๋กœ ๊ณ„์† ์„ค๋ช…ํ•˜์ž๋ฉด, ์นด์นด์˜คํ†ก์„ ์ปดํ“จํ„ฐ์— ์„ค์น˜ํ•˜๊ธฐ๋งŒ ํ•ด์„œ๋Š” ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์นด์นด์˜คํ†ก ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜์—ฌ์•ผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ, ์‹คํ–‰ํ•˜๋Š” ๊ฒฝ์šฐ ์นด์นด์˜คํ†ก ํ”„๋กœ๊ทธ๋žจ์— ๋Œ€ํ•œ ์ธ์Šคํ„ด์Šค๊ฐ€ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ๋ฐ”๋กœ ํ”„๋กœ์„ธ์Šค์ž…๋‹ˆ๋‹ค. ํ”„๋กœ์„ธ์Šค๋Š” OS๊ฐ€ ๋งŒ๋“ค์–ด ์ฃผ๋Š” ์‹คํ–‰ ํ”„๋กœ๊ทธ๋žจ์˜ ์ธ์Šคํ„ด์Šค์ž…๋‹ˆ๋‹ค. ์ปดํ“จํ„ฐ๋Š” User, Kernel, HW ์˜์—ญ์œผ๋กœ ๋‚˜๋‰˜์–ด์ง‘๋‹ˆ๋‹ค. ์นด์นด์˜คํ†ก, ์›Œ๋“œ ๋“ฑ์˜ ํ”„๋กœ๊ทธ๋žจ์€ User ์˜์—ญ์—์„œ ์‹คํ–‰๋˜๋ฉฐ, Kernel ์˜์—ญ์—..
๐Ÿง ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ 2์ฐจ ์ €์žฅ์žฅ์น˜(๋””์Šคํฌ)์˜ ์บ์‹œ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ์ˆ ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์ด์ „๊นŒ์ง€๋Š” ์บ์‹œ๊ฐ€ ์–ด๋–ป๊ฒŒ ์ตœ๊ทผ์— ์‚ฌ์šฉํ•œ ์ฝ”๋“œ์™€ ๋ฐ์ดํ„ฐ ๋ถ€๋ถ„์— ๋Œ€ํ•œ ๋น ๋ฅธ ์ ‘๊ทผ์„ ์ œ๊ณตํ•˜๋Š”์ง€ ์•Œ์•„๋ณด์•˜์Šต๋‹ˆ๋‹ค. ๊ฐ™์€ ๋ฐฉ๋ฒ•์œผ๋กœ, ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๋ณดํ†ต ์ž๊ธฐ ๋””์Šคํฌ๋กœ ๊ตฌํ˜„๋˜๋Š” 2์ฐจ ์ €์žฅ์žฅ์น˜๋ฅผ ์œ„ํ•œ ์บ์‹œ๋กœ ๋™์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ธฐ์ˆ ์„ ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ(Virtual Memory)๋ผ๊ณ  ๋ถ€๋ฆ…๋‹ˆ๋‹ค. ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋œ ์ฃผ์š” ๋™๊ธฐ๋Š” ๋‘๊ฐ€์ง€์ž…๋‹ˆ๋‹ค. 1. ์—ฌ๋Ÿฌ ํ”„๋กœ๊ทธ๋žจ๋“ค์ด ํšจ๊ณผ์ ์ด๊ณ  ์•ˆ์ „ํ•˜๊ฒŒ ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•˜์—ฌ 2. ์ž‘๊ณ  ์ œํ•œ๋œ ํฌ๊ธฐ์˜ ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ํ”„๋กœ๊ทธ๋ž˜๋ฐํ•ด์•ผ ํ•˜๋Š” ์ œ์•ฝ์„ ์ œ๊ฑฐํ•˜๊ธฐ ์œ„ํ•ด์„œ ์ด ๊ธฐ๋ฒ•์ด ํƒ„์ƒํ•œ ์ง€ ์ˆ˜์‹ญ๋…„์ด ์ง€๋‚œ ์ง€๊ธˆ์€ ์ฒซ ๋ฒˆ์งธ ์ด์œ ๋กœ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์ˆ˜์˜ ํ”„๋กœ๊ทธ๋žจ์ด ๊ฐ™์€ ๋ฉ”๋ชจ๋ฆฌ..
์ด์ „ ๊ธ€์—์„œ ์‚ดํŽด๋ณธ associative cache๋Š” miss rate๋ฅผ ์ค„์ด๋Š” ๋ฐฉ์‹์œผ๋กœ ์„ฑ๋Šฅ์„ ๊ฐœ์„ ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ์— ์‚ดํŽด๋ณผ Multilevel cache๋Š” miss penalty๋ฅผ ๊ฐ์†Œ์‹œ์ผœ ์„ฑ๋Šฅ์„ ๋†’์ด๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ๐Ÿง Multilevel Cache ํ˜„๋Œ€์˜ ๋ชจ๋“  ์ปดํ“จํ„ฐ๋Š” ์บ์‹œ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ํ”„๋กœ์„ธ์„œ์˜ ๋น ๋ฅธ ์†๋„์™€ ์ƒ๋Œ€์ ์œผ๋กœ ์ ์  ๋Š๋ ค์ง€๋Š” DRAM์˜ ์ ‘๊ทผ์‹œ๊ฐ„์˜ ์ฐจ์ด๋ฅผ ๋”์šฑ ์ค„์ด๊ธฐ ์œ„ํ•ด์„œ, ๋Œ€๋ถ€๋ถ„์˜ ๋งˆ์ดํฌ๋กœํ”„๋กœ์„ธ์„œ๋Š” ์บ์‹œ๋ฅผ ํ•œ ๊ณ„์ธต ๋” ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. L1 cache(1์ฐจ ์บ์‹œ, primary cache) : ํ”„๋กœ์„ธ์„œ์™€ ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ์บ์‹œ. ์†๋„๋ฅผ ์œ„ํ•ด I cache์™€ D cache๋กœ ๋‚˜๋‰ฉ๋‹ˆ๋‹ค. - Instruction Cache (I cache) : ๋ฉ”๋ชจ๋ฆฌ์˜ TEXT ์˜์—ญ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃจ๋Š” ์บ์‹œ์ž…๋‹ˆ๋‹ค. - D..
๐Ÿง Associative Cache Associatvie Cache๋Š” ์œ ์—ฐํ•œ ๋ธ”๋ก ๋ฐฐ์น˜(placement)๋ฅผ ํ†ตํ•ด ์บ์‹œ ์‹คํŒจ์œจ(Miss rate)์„ ์ค„์ด๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ์ด์ „ ๊ธ€ ๊นŒ์ง€์—์„œ๋Š” ๋ฉ”๋ชจ๋ฆฌ ๋ธ”๋ก์„ ์บ์‹œ์— ๋„ฃ์„ ๋•Œ ๊ฐ ๋ธ”๋ก์ด ์บ์‹œ์˜ ๋”ฑ ํ•œ ์žฅ์†Œ์—๋งŒ ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๋‹จ์ˆœํ•œ ๋ฐฐ์น˜ ๋ฐฉ๋ฒ•์ธ directed mapped๋ฅผ ์‚ฌ์šฉํ•˜์˜€์Šต๋‹ˆ๋‹ค. directed mapped๋Š” ๋ธ”๋ก์„ ๋ฐฐ์น˜ํ•˜๋Š” ๋‹ค์–‘ํ•œ ๋ฐฉ์‹๋“ค ์ค‘, ๊ทน๋‹จ์ ์œผ๋กœ ๋ธ”๋ก์„ ํ•œ ๊ณณ์—๋งŒ ๋„ฃ์„ ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ๋ฐ˜๋Œ€์ชฝ ๊ทน๋‹จ์—๋Š” ๋ธ”๋ก์ด ์บ์‹œ์˜ ์–ด๋Š ๊ณณ์—๋‚˜ ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๋ฐฉ์‹์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๐Ÿ‘‰ fully associative ๋ธ”๋ก์ด ์บ์‹œ์˜ ์–ด๋Š ๊ณณ์—๋‚˜ ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ์บ์‹œ ๊ตฌ์กฐ๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๋ฉ”๋ชจ๋ฆฌ ๋ธ”๋ก์„ ์บ์‹œ ๋‚ด์˜ ์–ด๋–ค ์—”ํŠธ๋ฆฌ์™€๋„ ์—ฐ๊ด€(..
๐Ÿง ์บ์‹œ ์„ฑ๋Šฅ ์ธก์ • ํ•ด๋‹น ๊ธ€์—์„œ CPU ์‹œ๊ฐ„(time)์— ๋Œ€ํ•ด ์ž ๊น ์‚ดํŽด๋ณด์•˜๋“ฏ์ด, CPU ์‹œ๊ฐ„์€ ํด๋Ÿญ ์‚ฌ์ดํด์˜ ์ˆ˜์™€ ํด๋Ÿญ ์‚ฌ์ดํด ์‹œ๊ฐ„์˜ ๊ณฑ์œผ๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋•Œ ํด๋Ÿญ ์‚ฌ์ดํด์˜ ์ˆ˜๋Š” ๋‹ค์‹œ CPU๊ฐ€ ํ”„๋กœ๊ทธ๋žจ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐ ์“ด ํด๋Ÿญ ์‚ฌ์ดํด๊ณผ, ๋ฉ”๋ชจ๋ฆฌ ์‹œ์Šคํ…œ์„ ๊ธฐ๋‹ค๋ฆฌ๋Š” ๋ฐ ์‚ฌ์šฉํ•œ ํด๋Ÿญ ์‚ฌ์ดํด๋กœ ๋‚˜๋ˆ„์–ด๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์ ์ค‘ ์‹œ๊ฐ„(hit time)์€ CPU ํด๋Ÿญ ์‚ฌ์ดํด์˜ ์ผ๋ถ€๋กœ ๊ฐ„์ฃผํ•ฉ๋‹ˆ๋‹ค. CPU Time = (CPU ํด๋Ÿญ ์‚ฌ์ดํด(hit time ํฌํ•จ) + ๋ฉ”๋ชจ๋ฆฌ ์ง€์—ฐ ํด๋Ÿญ ์‚ฌ์ดํด) X ํด๋Ÿญ ์‚ฌ์ดํด ์‹œ๊ฐ„(Clock Cycle Time) ๋ฉ”๋ชจ๋ฆฌ ์ง€์—ฐ ํด๋Ÿญ ์‚ฌ์ดํด์€ ์ฃผ๋กœ ์บ์‹œ ์‹คํŒจ ๋•Œ๋ฌธ์— ๋ฐœ์ƒํ•˜๋ฉฐ, ์ฝ๊ธฐ์™€ ์“ฐ๊ธฐ ์‹œ์— ๋ฐœ์ƒ๋˜๋Š” ์ง€์—ฐ ์‚ฌ์ดํด์˜ ํ•ฉ์œผ๋กœ ์ •์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฉ”๋ชจ๋ฆฌ ์ง€์—ฐ ํด๋Ÿญ ์‚ฌ์ดํด = ..
๐Ÿง NP-Hard(NP ๋‚œํ•ด) Problem X๊ฐ€ ๋‹ค์Œ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋ฉด ์ด๋ฅผ NP-Hard๋ผ ๋ถ€๋ฆ…๋‹ˆ๋‹ค. ์–ด๋– ํ•œ Y $\in$ NP ์— ๋Œ€ํ•ด์„œ๋„, Y $\leq_p$ X ๊ฐ€ ์„ฑ๋ฆฝ๋‹ˆ๋‹ค. ์ฆ‰ NP์— ์†ํ•œ ์–ด๋– ํ•œ ๋ฌธ์ œ์— ๋Œ€ํ•ด์„œ๋„ X๋กœ์˜ Polynomial Time Reduction์ด ์กด์žฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. Halting Problem(์ •์ง€ ๋ฌธ์ œ)์€ NP-Hard์— ์†ํ•˜๋Š” ๋Œ€ํ‘œ์ ์ธ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ๐Ÿง NP-Complete(NP ์™„์ „) Problem X๊ฐ€ ๋‹ค์Œ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋ฉด ์ด๋ฅผ NP-Complete๋ผ๊ณ  ๋ถ€๋ฆ…๋‹ˆ๋‹ค. 1) ์–ด๋– ํ•œ Y $\in$ NP ์— ๋Œ€ํ•ด์„œ๋„, Y $\leq_p$ X ๊ฐ€ ์„ฑ๋ฆฝ๋‹ˆ๋‹ค. 2) X $\in$ NP ์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰ NP-Complete๋Š” NP-Hard์ด๋ฉด์„œ NP์ธ ๋ฌธ์ œ๋“ค์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. Haltin..
๐Ÿง Problem ์ด์ „ ๊ธ€์—์„œ ์‚ดํŽด๋ณด์•˜๋˜ problem์— ๊ด€๋ จํ•œ ๊ฐœ๋…๋“ค์„ ๋‹ค์‹œ ์‚ดํŽด๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. Problem Instance : ์–ด๋–ค ๋ฌธ์ œ(problem)๋ฅผ ์ •์˜ํ•˜๋Š” input์ด๋ฉฐ, ์ด๋•Œ ํ•ด๋‹น input์„ ์ผ์ข…์˜ binary string์œผ๋กœ ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Problem : ์–ด๋–ค ์กฐ๊ฑด์„ ๋งŒ์กฑ์‹œํ‚ค๋Š”(YES๋ผ ๋‹ตํ•˜๋Š”) problem instance๋“ค์˜ ์ง‘ํ•ฉ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์ด๋•Œ Problem์— ์†ํ•˜๋Š” instance๋“ค์„ YES instance๋ผ ํ•ฉ๋‹ˆ๋‹ค. Algorithm : ์–ด๋–ค problem X์— ๋Œ€ํ•˜์—ฌ, ์–ด๋–ค mapping ํ•จ์ˆ˜ A๊ฐ€ ์ž„์˜์˜ s $\in $ X์— ๋Œ€ํ•˜์—ฌ A(s) = YES์ด๊ณ , ์—ญ( A(s) = YES์ผ ๊ฒฝ์šฐ s $\in$ X )๋„ ์„ฑ๋ฆฝํ•˜๋Š” ๊ฒฝ์šฐ A๋ฅผ problem X๋ฅผ ํ•ด๊ฒฐํ•˜..
๋ง ๋ž‘
'๐Ÿ–ฅ Computer Science' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก