๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿ–ฅ CS

(30)
[Algorithm/Swift] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค(Lv.3) - ์ž…๊ตญ์‹ฌ์‚ฌ ์•ˆ๋…•ํ•˜์„ธ์š” ์ œ์ธ์ž…๋‹ˆ๋‹ค! ์š”์ฆ˜์€ ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๋ฌธ์ œ๋“ค์„ ๊พธ์ค€ํžˆ ํ’€๋ฉด์„œ ์ทจ์•ฝํ•œ ์œ ํ˜•์˜ ๋ฌธ์ œ๋“ค์„ ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค, ๋ฐฑ์ค€์—์„œ ๋” ์ฐพ์•„์„œ ์—ฐ์Šตํ•ด๋ณด๋Š” ๋ฐฉ์‹์œผ๋กœ PS ์‹ค๋ ฅ์„ ๊พธ์ค€ํžˆ ํ–ฅ์ƒ์‹œํ‚ค๋ ค๊ณ  ๋…ธ๋ ฅํ•˜๊ณ  ์žˆ๋Š”๋ฐ์š”, ์˜ค๋Š˜์€ ์ €๋ฒˆ์— ๋ฌธ์ œ๋ฅผ ํ†ตํ•ด ์ด๋ถ„ํƒ์ƒ‰ ๋ฌธ์ œ๋ฅผ ์ฒ˜์Œ ์ ‘ํ•˜๊ณ , ๋” ์—ฐ์Šตํ•ด๋ณด๊ณ  ์‹ถ์–ด์„œ ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์—์„œ ์ด๋ถ„ํƒ์ƒ‰ ์—ฐ์Šต๋ฌธ์ œ๋ฅผ ์ฐพ์•„์„œ ํ’€์–ด๋ดค์Šต๋‹ˆ๋‹ค! ํ’€๋‹ค๋ณด๋‹ˆ ์ง•๊ฒ€๋‹ค๋ฆฌ ๊ฑด๋„ˆ๊ธฐ ๋ฌธ์ œ์™€ ๋น„์Šทํ•œ ์ ์ด ๋งŽ์€ ๊ฒƒ ๊ฐ™์•„์„œ ์ด๋ถ„ํƒ์ƒ‰ ๋ฌธ์ œ๋ฅผ ์ ‘ํ–ˆ์„ ๋•Œ ์ ‘๊ทผํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ๊ธฐ๋กํ•ด๋‘๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™์•„์„œ ๊ฐ€์ ธ์™€๋ดค์Šต๋‹ˆ๋‹ค :) ๋ฌธ์ œ ๋งํฌ ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”. programmers.co.kr ๋ฌธ์ œ ํ’€์ด ์ผ๋‹จ..
[Algorithm/Swift] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค(Lv.2) - ๊ฐ€์žฅ ํฐ ์ •์‚ฌ๊ฐํ˜• ์ฐพ๊ธฐ ์•ˆ๋…•ํ•˜์„ธ์š” ์ œ์ธ์ž…๋‹ˆ๋‹ค! PS..๋ฅผ ๋“ค๊ณ  ์™”์Šต๋‹ˆ๋‹ค....ํ˜ผ์ž ํ•ด๊ฒฐ๋ชปํ•œ ๋ฌธ์ œ๊ฐ€ ๋˜ ์ƒ๊ธด ๊ฒƒ์ด์ฃ ..์˜ˆ.. PS ์‹ค๋ ฅ์ด ์™œ ์ด๋ ‡๊ฒŒ ์•ˆ๋Š˜๊นŒ์š”....์ข€ ๋” ๋งŽ์€ ๋ฌธ์ œ๋ฅผ ํ’€์–ด๋ด์•ผ๊ฒ ์–ด์š”.. ๋ฌธ์ œ ๋งํฌ ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”. programmers.co.kr ๋ฌธ์ œ ํ’€์ด ์ผ๋‹จ ์ด ๋ฌธ์ œ๋Š” DP(Dynamic Programming) ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ด์šฉํ•ด ํ’€์–ด์•ผํ•˜๋Š” ๋ฌธ์ œ์˜€์Šต๋‹ˆ๋‹ค. 1915๋ฒˆ: ๊ฐ€์žฅ ํฐ ์ •์‚ฌ๊ฐํ˜• ์ฒซ์งธ ์ค„์— n, m(1 ≤ n, m ≤ 1,000)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‹ค์Œ n๊ฐœ์˜ ์ค„์—๋Š” m๊ฐœ์˜ ์ˆซ์ž๋กœ ๋ฐฐ์—ด์ด ์ฃผ์–ด์ง„๋‹ค. www.acmicpc.net ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ์—ฐ์Šต๋ฌธ์ œ๋ผ ๋ฐฑ์ค€์—๋„ ๋™์ผํ•œ..
[Algorithm/Swift] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค(Lv.3) - ์ง•๊ฒ€๋‹ค๋ฆฌ ๊ฑด๋„ˆ๊ธฐ ์•ˆ๋…•ํ•˜์„ธ์š” ์ œ์ธ์ž…๋‹ˆ๋‹ค:) PS๋กœ ํ•˜๋ฃจ๋ฅผ ํž˜์ฐจ๊ฒŒ ์‹œ์ž‘ํ•˜๋ ค๊ณ  ํ–ˆ๋Š”๋ฐ ์ด์ œ ํ•  ์ผ์„ ์ข€ ํ•˜๊ณ  ๋ฌธ์ œ๋ฅผ ํ’€์–ด์•ผ๊ฒ ์–ด์š”...ใ…‡ maxElement { max = maxElement } pointer1 += 1 pointer2 += 1 } return max } ์ฒ˜์Œ์—๋Š” ํˆฌ ํฌ์ธํ„ฐ๋ฅผ ํ™œ์šฉํ•ด ์Šฌ๋ผ์ด๋”ฉ ์œˆ๋„์šฐ ๊ธฐ๋ฒ•์œผ๋กœ k๊ฐœ์˜ ๋””๋”ค๋Œ์„ ํ•œ ๊ตฌ๊ฐ„์œผ๋กœ ์„ค์ •ํ•ด์„œ ์ „์ฒด๋ฅผ ์Šค์บ”ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ํ’€์—ˆ์Šต๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด, ์ง•๊ฒ€๋‹ค๋ฆฌ๋ฅผ ๋” ์ด์ƒ ๊ฑด๋„ˆ์ง€ ๋ชปํ•˜๊ฒŒ ๋˜๋Š” ์ˆœ๊ฐ„์€ ์ ํžŒ ์ˆซ์ž๊ฐ€ 0์ด ๋˜๋Š” ๋””๋”ค๋Œ์ด k๊ฐœ ์—ฐ๋‹ฌ์•„ ๋‚˜์˜ค๋Š” ๊ฒฝ์šฐ์ด๊ธฐ ๋•Œ๋ฌธ์— ๊ธธ์ด๊ฐ€ k์ธ ๊ตฌ๊ฐ„ ์•ˆ์—์„œ์˜ ์ตœ๋Œ“๊ฐ’์ด ํ•ด๋‹น ๊ตฌ๊ฐ„์„ ๊ฑด๋„ ์ˆ˜ ์žˆ๋Š” ์‚ฌ๋žŒ์˜ ์ตœ๋Œ€ ์ˆซ์ž๋ผ๋Š” ๊ฒƒ์„ ํŒŒ์•…ํ–ˆ๊ณ , ํ•ญ์ƒ ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ๋Œ์„ ๋ฐŸ์•„์•ผ ํ•˜๋ฏ€๋กœ ํ•œ ์‚ฌ๋žŒ์ด ๊ฑด๋„ ๋•Œ๋งˆ๋‹ค ์ „์ฒด ๋Œ์˜ ์ˆซ์ž๊ฐ€ 1์”ฉ ๊ฐ์†Œํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ „์ฒด ๋‹ค๋ฆฌ..
[Algorithm/Swift] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค(Lv.3) - ๊ธฐ์ง€๊ตญ ์„ค์น˜ ์•ˆ๋…•ํ•˜์„ธ์š” ์ œ์ธ์ž…๋‹ˆ๋‹ค:) ๊ฝค๋‚˜ ์˜ค๋žœ๋งŒ์ด์ฃ ..? ์ธ๊ฐ„์ด ์™ค์ผ€ ๊ฒŒ์œผ๋ฅผ๊นŒ์š” ์˜ค๋žœ๋งŒ์— ํ‹ฐ์Šคํ† ๋ฆฌ๋ฅผ ๋“ค์–ด์™”๋”๋‹ˆ ํ”ผ๋“œ์— ์ƒˆ ๊ธ€์ด ์—„์ฒญ ๋งŽ๋„ค์š”.. ๋‹ค๋“ค ๊พธ์ค€ํ•œ ๊ธฐ๋ก ๋Œ€๋‹จํ•ด..๋ณธ๋ฐ›๊ฒ ์Šต๋‹ˆ๋‹ค.. ๋•๋ถ„์— ์ €๋„ ์ž๊ทน๋ฐ›๊ณ  ๋‹ค์‹œ ์—ด์‹ฌํžˆ ํ‹ฐ์Šคํ† ๋ฆฌ ๊ธ€์„ ์—ด์‹ฌํžˆ ์ช„๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค!!!! ์˜ค๋Š˜์€ PS ๊ธฐ๋ก์„ ๋‚จ๊ฒจ๋ณด๋ ค๊ณ  ํ•˜๋Š”๋ฐ ๊ฐ‘์ž๊ธฐ Lv3..? ํ‹ฐ์Šคํ† ๋ฆฌ์— ํ’€์ด๊ธฐ๋ก์€ ์•ˆํ–ˆ์ง€๋งŒ.. ๋จธ ํ’€๋‹ค๋ณด๋‹ˆ ๋ ˆ๋ฒจ3๊นŒ์ง€ ์™”๋„ค์š”? ๋ ˆ๋ฒจ3 ๋ฌธ์ œ๋ฅผ ํ’€๋‹ค๋ณด๋‹ˆ ํ™•์‹คํžˆ ํŠน์ • ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•ด์•ผํ•˜๊ฑฐ๋‚˜, ํšจ์œจ์„ฑ๊นŒ์ง€ ๊ณ ๋ คํ•ด์•ผํ•˜๋Š” ๋ฌธ์ œ๊ฐ€ ๋งŽ์•„์„œ ๊ธฐ๋ก์˜ ํ•„์š”์„ฑ์„ ๋Š๊ผˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์•ž์œผ๋กœ ๋ฌธ์ œ ํ’€์ด๊ณผ์ •์—์„œ ์ƒˆ๋กœ ์•Œ๊ฒŒ ๋˜๋Š” ์ข‹์€ ์ ‘๊ทผ ๋ฐฉ๋ฒ•์ด๋‚˜ ํ’€์ด ๋ฐฉ๋ฒ•๋“ค์„ ๊ธ€๋กœ ๋‚จ๊ฒจ๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค! ์ €์˜ PS ํšจ์œจ์„ฑ์„ ์œ„ํ•ด ๋ฌธ์ œ์— ๋Œ€ํ•œ ์„ค๋ช…์€ ์ƒ๋žตํ•˜๊ณ  ์ ‘๊ทผ ๋ฐ ํ’€์ด ์œ„์ฃผ๋กœ ๊ธฐ๋กํ•ด๋‚˜๊ฐ€๋„๋ก ํ• ๊ฒŒ์š”๐Ÿ™ƒ๐Ÿ™‚..
[์šด์˜์ฒด์ œ] CPU ์Šค์ผ€์ค„๋ง ๋ณธ ๊ฒŒ์‹œ๊ธ€์€ KOCW ์ดํ™”์—ฌ์ž๋Œ€ํ•™๊ต ๋ฐ˜ํšจ๊ฒฝ ๊ต์ˆ˜๋‹˜์˜ ๊ฐ•์˜๋ฅผ ๋“ฃ๊ณ , ์ฑ…์„ ์ฐธ๊ณ ํ•˜์—ฌ ์ •๋ฆฌํ•œ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค. ๊ฒŒ์‹œ๊ธ€์— ํฌํ•จ๋˜๋Š” ์ด๋ฏธ์ง€ ์ž๋ฃŒ๋Š” ๊ฐ•์˜์— ํฌํ•จ๋œ ๊ฐ•์˜ ์ž๋ฃŒ์ž…๋‹ˆ๋‹ค. CPU ์Šค์ผ€์ค„๋ง์ด๋ž€? ๋ชจ๋“  ํ”„๋กœ์„ธ์Šค๋Š” CPU๋ฅผ ํ•„์š”๋กœ ํ•˜๊ณ , ๋จผ์ € CPU๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์–ด ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ํ”„๋กœ์„ธ์Šค๋“ค์—๊ฒŒ ๊ณต์ •ํ•˜๊ณ  ํ•ฉ๋ฆฌ์ ์œผ๋กœ CPU ์ž์›์„ ํ• ๋‹นํ•˜๊ธฐ ์œ„ํ•ด ์šด์˜์ฒด์ œ๋Š” ์–ด๋–ค ํ”„๋กœ์„ธ์Šค์— CPU๋ฅผ ํ• ๋‹นํ• ์ง€, ์–ด๋–ค ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๊ฒŒ ํ• ์ง€๋ฅผ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ์šด์˜์ฒด์ œ๊ฐ€ ํ”„๋กœ์„ธ์Šค๋“ค์—๊ฒŒ ๊ณต์ •ํ•˜๊ณ  ํ•ฉ๋ฆฌ์ ์œผ๋กœ CPU ์ž์›์„ ๋ฐฐ๋ถ„ํ•˜๋Š” ๊ฒƒ์„ CPU ์Šค์ผ€์ค„๋ง(CPU Scheduling)์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ํ”„๋กœ๊ทธ๋žจ์˜ ์‹คํ–‰ ๋‹จ๊ณ„ (CPU and I/O Bursts) ํ•ฉ๋ฆฌ์ ์ด๊ณ  ํšจ์œจ์ ์ธ CPU ์ž์› ๋ฐฐ๋ถ„์„ ์œ„ํ•ด ์–ด๋–ค ํ”„๋กœ์„ธ์Šค์—๊ฒŒ CPU๋ฅผ ๋จผ์ € ํ• ๋‹นํ•˜๋Š” ๊ฒƒ์ด..
[์šด์˜์ฒด์ œ] ์Šค๋ ˆ๋“œ (Thread) ๋ณธ ๊ฒŒ์‹œ๊ธ€์€ KOCW ์ดํ™”์—ฌ์ž๋Œ€ํ•™๊ต ๋ฐ˜ํšจ๊ฒฝ ๊ต์ˆ˜๋‹˜์˜ ๊ฐ•์˜๋ฅผ ๋“ฃ๊ณ  ์ •๋ฆฌํ•œ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค. ๊ฒŒ์‹œ๊ธ€์— ํฌํ•จ๋˜๋Š” ์ด๋ฏธ์ง€ ์ž๋ฃŒ๋Š” ๊ฐ•์˜์— ํฌํ•จ๋œ ๊ฐ•์˜ ์ž๋ฃŒ์ž…๋‹ˆ๋‹ค. ์Šค๋ ˆ๋“œ(Thread) ์Šค๋ ˆ๋“œ๋Š” ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ์‹คํ–‰ ๋‹จ์œ„์ž…๋‹ˆ๋‹ค. (lightweight process๋ผ๊ณ ๋„ ๋ถˆ๋ฆฝ๋‹ˆ๋‹ค) ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค๋Š” ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์Šค๋ ˆ๋“œ๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์œผ๋ฉฐ(์ตœ์†Œ ํ•˜๋‚˜๋Š” ๊ฐ€์ง), ์Šค๋ ˆ๋“œ๋ฅผ ์ด์šฉํ•˜๋ฉด ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค์—์„œ ์—ฌ๋Ÿฌ ๋ถ€๋ถ„์„ ๋™์‹œ์— ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์Šค๋ ˆ๋“œ์˜ ๊ตฌ์„ฑ Thread์˜ ๊ตฌ์„ฑ: CPU ์ˆ˜ํ–‰๊ณผ ๊ด€๋ จ๋œ ์ •๋ณด(๊ณต์œ  ํ•˜์ง€ ์•Š๋Š” ๋ถ€๋ถ„) Program Counter Register set Stack space Thread๊ฐ„ ๊ณต์œ ํ•˜๋Š” ์˜์—ญ (= task) ๋ฉ”๋ชจ๋ฆฌ ๋‚ด Code, Data ์˜์—ญ (= ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ ๊ณต๊ฐ„) OS resources ..
[์šด์˜์ฒด์ œ] ํ”„๋กœ์„ธ์Šค ๊ด€๋ฆฌ ๋ณธ ๊ฒŒ์‹œ๊ธ€์€ KOCW ์ดํ™”์—ฌ์ž๋Œ€ํ•™๊ต ๋ฐ˜ํšจ๊ฒฝ ๊ต์ˆ˜๋‹˜์˜ ๊ฐ•์˜๋ฅผ ๋“ฃ๊ณ , ์ฑ…์„ ์ฐธ๊ณ ํ•˜์—ฌ ์ •๋ฆฌํ•œ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค. ๊ฒŒ์‹œ๊ธ€์— ํฌํ•จ๋˜๋Š” ์ด๋ฏธ์ง€ ์ž๋ฃŒ๋Š” ๊ฐ•์˜์— ํฌํ•จ๋œ ๊ฐ•์˜ ์ž๋ฃŒ์ž…๋‹ˆ๋‹ค. ํ”„๋กœ์„ธ์Šค ๊ณ„์ธต๊ตฌ์กฐ ํ”„๋กœ์„ธ์Šค๋Š” ์‹คํ–‰ ๋„์ค‘ ์‹œ์Šคํ…œ ํ˜ธ์ถœ์„ ํ†ตํ•ด ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋•Œ ์ƒˆ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ƒ์„ฑํ•œ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋ถ€๋ชจ ํ”„๋กœ์„ธ์Šค(parent process), ๋ถ€๋ชจ ํ”„๋กœ์„ธ์Šค์— ์˜ํ•ด ์ƒ์„ฑ๋œ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ž์‹ ํ”„๋กœ์„ธ์Šค(child process)๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋ถ€๋ชจ ํ”„๋กœ์„ธ์Šค๋กœ๋ถ€ํ„ฐ ์ƒ์„ฑ๋œ ์ž์‹ ํ”„๋กœ์„ธ์Šค๋Š” ์‹คํ–‰ ๊ณผ์ •์—์„œ ๋˜ ๋‹ค๋ฅธ ์ž์‹ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๊ณ , ๊ทธ ์ž์‹ ํ”„๋กœ์„ธ์Šค๋„ ์ž์‹ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋งŽ์€ ์šด์˜์ฒด์ œ๋Š” ์ด์ฒ˜๋Ÿผ ํ”„๋กœ์„ธ์Šค๊ฐ€ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋‚ณ๋Š” ๊ณ„์ธต์ ์ธ ๊ตฌ์กฐ(= ํŠธ๋ฆฌ ๊ตฌ์กฐ)๋กœ์จ ํ”„๋กœ์„ธ์Šค๋“ค์„ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ํ”„๋กœ์„ธ์Šค ..
[์šด์˜์ฒด์ œ] ํ”„๋กœ์„ธ์Šค ์ƒํƒœ ๋ณธ ๊ฒŒ์‹œ๊ธ€์€ KOCW ์ดํ™”์—ฌ์ž๋Œ€ํ•™๊ต ๋ฐ˜ํšจ๊ฒฝ ๊ต์ˆ˜๋‹˜์˜ ๊ฐ•์˜๋ฅผ ๋“ฃ๊ณ , ์ฑ…์„ ์ฐธ๊ณ ํ•˜์—ฌ ์ •๋ฆฌํ•œ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค. ๊ฒŒ์‹œ๊ธ€์— ํฌํ•จ๋˜๋Š” ์ด๋ฏธ์ง€ ์ž๋ฃŒ๋Š” ๊ฐ•์˜์— ํฌํ•จ๋œ ๊ฐ•์˜ ์ž๋ฃŒ์ž…๋‹ˆ๋‹ค. ํ”„๋กœ์„ธ์Šค์˜ ์ƒํƒœ ํ•˜๋‚˜์˜ ์ปดํ“จํ„ฐ์—์„œ ์—ฌ๋Ÿฌ ํ”„๋กœ์„ธ์Šค๋“ค์ด ๋น ๋ฅด๊ฒŒ ๋ฒˆ๊ฐˆ์•„ ๊ฐ€๋ฉด์„œ ์‹คํ–‰๋˜๋Š” ๊ณผ์ •์—์„œ ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค๋Š” ์—ฌ๋Ÿฌ ์ƒํƒœ๋ฅผ ๊ฑฐ์น˜๋ฉฐ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์šด์˜ ์ฒด์ œ๋Š” ํ”„๋กœ์„ธ์Šค์˜ ์ƒํƒœ๋ฅผ PCB๋ฅผ ํ†ตํ•ด ์ธ์‹ํ•˜๊ณ  ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ํ”„๋กœ์„ธ์Šค๊ฐ€ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋Š” ๋Œ€ํ‘œ์ ์ธ ์ƒํƒœ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. 1. ์ƒ์„ฑ ์ƒํƒœ - new ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ƒ์„ฑ ์ค‘์ธ ์ƒํƒœ๋ฅผ ์ƒ์„ฑ ์ƒํƒœ(new) ๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. 2. ์‹คํ–‰ ์ƒํƒœ - running CPU๋ฅผ ํ• ๋‹น ๋ฐ›์•„ ์‹คํ–‰ ์ค‘(= instruction์„ ์ˆ˜ํ–‰ ์ค‘)์ธ ์ƒํƒœ๋ฅผ ์‹คํ–‰ ์ƒํƒœ(running)๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ๋Œ€๋ถ€๋ถ„์˜ ์ปดํ“จํ„ฐ๋Š” C..