โœ”๏ธOS 11

[Python] ๋™์‹œ์„ฑ๊ณผ ๋ณ‘๋ ฌ์„ฑ ๋ฌธ๋ฒ• - GIL๊ณผ Multithreading

1. ๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋“œ, ๋ฉ€ํ‹ฐ ํ”„๋กœ์„ธ์Šค ๊ฐœ๋… [์šด์˜์ฒด์ œ] Thread ์—์„œ ์ •๋ฆฌํ•œ ์ ์ด ์žˆ์Œ. a. Processs vs Thread Process: ์ปดํ“จํ„ฐ์—์„œ ์—ฐ์†์ ์œผ๋กœ ์‹คํ–‰๋˜๊ณ  ์žˆ๋Š” ์ปดํ“จํ„ฐ ํ”„๋กœ๊ทธ๋žจ, ์ฆ‰ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ์™€ ์‹คํ–‰๋˜๊ณ  ์žˆ๋Š” ๋…๋ฆฝ์ ์ธ ํ”„๋กœ๊ทธ๋žจ ์ธ์Šคํ„ด์Šค Thread: ํ”„๋กœ์„ธ์Šค ๋‚ด์—์„œ ๋™์ž‘๋˜๋Š” ์—ฌ๋Ÿฌ ์‹คํ–‰์˜ ํ๋ฆ„ ๋‹จ์œ„ ์ด๋ ‡๊ฒŒ ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค ๋‚ด์—์„œ ์ƒ์„ฑ๋œ thread๋ผ๋ฆฌ ํ•ด๋‹น ํ”„๋กœ์„ธ์Šค์˜ ์˜์—ญ์„ ๊ณต์œ ํ•œ๋‹ค. - Processs๋Š” ๋…๋ฆฝ์ , Thread๋Š” ํ”„๋กœ์„ธ์Šค์˜ ์„œ๋ธŒ๋„ท - Process๋Š” ๊ฐ๊ฐ ๋…๋ฆฝ์ ์ธ ์ž์›์„ ๊ฐ€์ง„๋‹ค. Thread๋Š” ํ”„๋กœ์„ธ์Šค์˜ ์ž์›์„ ๊ณต์œ ํ•œ๋‹ค. Process๋Š” ๋ณ„๋„์˜ Code, Data, Stack, Heap์„ ๋…๋ฆฝ์ ์œผ๋กœ ๊ฐ€์ง€๋Š” ๋ฐ˜๋ฉด Thread๋Š” Stack๋งŒ ๋…๋ฆฝ์ ์œผ๋กœ ๊ฐ€์ง€๊ณ  Code, ..

[Shell Script] Bash Shell Script

์ตœ๊ทผ์— shell script๋ฅผ ์ ‘ํ•  ๊ธฐํšŒ๊ฐ€ ๋งŽ์•˜๋‹ค. Shell script๋ฅผ ์ ‘ํ•˜๋ฉด์„œ ๋“  ์ƒ๊ฐ์€ 1. ์–ด๋–ค ์–ธ์–ด์ด๊ณ , ์™œ ์“ฐ์ง€?? 2. ์ฝ”๋“œ๋ฅผ ์ดํ•ดํ•˜๊ณ  ์‹ถ๋‹ค.. 3. shell script๋ฅผ ์ž‘์„ฑํ•ด์•ผ ํ•˜๋Š”๋ฐ ์–ด๋–กํ•˜์ง€? ์ง€๊ธˆ์ด ๊ณต๋ถ€ํ•ด์•ผ ํ•  ์‹œ๊ฐ„์ด๋ผ๊ณ  ์ƒ๊ฐํ–ˆ๊ณ  ๋„ ์ฐธ๊ณ ํ•ด์„œ 3์ผ ์ •๋„? ๋น ๋ฅด๊ฒŒ ํ›‘์–ด๋ณด์•˜๋‹ค. 1. Kernel? Shell? Shell Script? Terminal? [์šด์˜์ฒด์ œ] ์šด์˜์ฒด์ œ ๊ตฌ์กฐ - ์‹œ์Šคํ…œ์ฝœ, ์‚ฌ์šฉ์ž ๋ชจ๋“œ, ์ปค๋„ ๋ชจ๋“œ ์—ฌ๊ธฐ์—๋„ ์ •๋ฆฌํ•ด ๋‘” ์ ์ด ์žˆ๋Š”๋ฐ, ์ด ๊ฐœ๋…๋“ค์„ ๋‹ค์‹œ ํ™•์‹คํžˆ ์ •๋ฆฌํ•˜๊ณ  ์‹œ์ž‘ํ•˜๊ณ  ์‹ถ๋‹ค. ์—ฌ๊ธฐ์„œ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ, ์šด์˜์ฒด์ œ, ์ปดํ“จํ„ฐ ํ•˜๋“œ์›จ์–ด(์‹œ์Šคํ…œ ๋ฆฌ์†Œ์Šค)๋ฅผ ๋„์„œ๊ด€์— ๋น„์œ ํ•ด๋ณด๋ฉด ์šด์˜์ฒด์ œ - ๋„์„œ๊ด€ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ - ์‹œ๋ฏผ ์ปดํ“จํ„ฐ ํ•˜๋“œ์›จ์–ด - ์ฑ… - ๊ทธ๋ž˜์„œ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ(์‹œ๋ฏผ..

[์šด์˜์ฒด์ œ] ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ์˜ ์ดํ•ด

๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ(Virtual Memory) ๋ฆฌ๋ˆ…์Šค์˜ ๊ฐ ํ”„๋กœ์„ธ์Šค๋งˆ๋‹ค 4GB๋ฅผ ์ฐจ์ง€ํ•œ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ํ†ต์ƒ ๋ฉ”๋ชจ๋ฆฌ๋Š” 16GB? ์ •๋„์ธ ๊ฒƒ๋„ ์žˆ๊ณ , ์ฝ”๋“œ๋Š” ๋ฉ”๋ชจ๋ฆฌ์— ๋ฐ˜๋“œ์‹œ ์žˆ์–ด์•ผ ํ•˜๋Š”๋ฐ ์—ฌ๋Ÿฌ๊ฐœ์˜ ํ”„๋กœ์„ธ์Šค๋“ค ์‹คํ–‰ํ•  ๋•Œ ๋ฉ”๋ชจ๋ฆฌ ํฌ๊ธฐ์˜ ํ•œ๊ณ„๋ฅผ ์–ด๋–ป๊ฒŒ ๊ทน๋ณตํ•  ์ˆ˜ ์žˆ์„๊นŒ? ์ฆ‰ ์–ด๋–ป๊ฒŒ ํ•˜๋ฉด ํ•œ์ •๋œ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ์—ฌ๋Ÿฌ ํ”„๋กœ์„ธ์Šค๋ฅผ ์‹คํ–‰์‹œํ‚ฌ ์ˆ˜ ์žˆ๋„๋ก ๋ฉ”๋ชจ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ ธ๊ฐˆ ๊ฒƒ์ธ๊ฐ€? ์ด๋•Œ ํ™œ์šฉํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ์ด๋‹ค. ๋˜ํ•œ ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ†ตํ•ด ํ”„๋กœ์„ธ์Šค๊ฐ„ ๊ณต๊ฐ„ ๋ถ„๋ฆฌ๋กœ ํ”„๋กœ์„ธ์Šค ์ด์Šˆ๊ฐ€ ์ „์ฒด ์‹œ์Šคํ…œ์— ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š์„ ์ˆ˜ ์žˆ๋‹ค. ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ์˜ ๊ธฐ๋ณธ ์•„์ด๋””์–ด๋Š” ํ”„๋กœ์„ธ์Šค๋Š” ๊ฐ€์ƒ ์ฃผ์†Œ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ , ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉ(์ฝ๊ณ /์“ฐ๊ธฐ) ํ•  ๋•Œ ๋ฌผ๋ฆฌ ์ฃผ์†Œ๋กœ ๋ณ€ํ™˜ํ•ด์ฃผ๋ฉด ๋œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ์ฆ‰, ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๊ฐ€์ƒ ์ฃผ์†Œ(virtual add..

[์šด์˜์ฒด์ œ] Semaphore์™€ deadlock, starvation

+ ์šด์˜์ฒด์ œ๋ฅผ ๊ณต๋ถ€์ค‘์ด๊ณ , ์˜ค๋Š˜์€ Semaphore์™€ deadlock, starvation์— ๋Œ€ํ•ด์„œ ๊ณต๋ถ€ํ•˜์˜€๋Š”๋ฐ...ใ…  ํ•ด๋‹น ๋‚ด์šฉ์— ๋Œ€ํ•ด์„œ๋Š” ๊นŠ์€ ์ดํ•ด๊ฐ€ ์•„์ง ๋ถ€์กฑํ•ฉ๋‹ˆ๋‹ค. ์•ž์œผ๋กœ ๊ณ„์† ๋ณด์ถฉํ•˜์—ฌ ํ•ด๋‹น ํฌ์ŠคํŠธ๋ฅผ ์ˆ˜์ •ํ•ด ๋‚˜๊ฐˆ ๊ฒƒ์ž…๋‹ˆ๋‹ค. [์šด์˜์ฒด์ œ] Thread ์—ฌ๊ธฐ์„œ thread์˜ ๋™๊ธฐํ™” ์ด์Šˆ๋ฅผ ์‚ดํŽด๋ณด์•˜๋‹ค. ๋‹ค์‹œ ํ•œ๋ฒˆ ์ •๋ฆฌํ•ด๋ณด๋ฉด, ๊ณต์œ  ๋ฐ์ดํ„ฐ(shared data)์˜ ๋™์‹œ ์ ‘๊ทผ(concurrent access)์€ ๋ฐ์ดํ„ฐ์˜ ๋ถˆ์ผ์น˜ ๋ฌธ์ œ(inconsistency)๋ฅผ ๋ฐœ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค. ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ๋ช‡๊ฐ€์ง€ ์ถฉ์กฑ ์กฐ๊ฑด 1) Mutual Exclusion ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” Mutual exclusion(์ƒํ˜ธ ๋ฐฐ์ œ)๊ธฐ๋ฒ•์ด ํ•„์š”ํ•˜๋‹ค. ์Šค๋ ˆ๋“œ๋Š” ํ”„๋กœ์„ธ์Šค์˜ ๋ชจ๋“  ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผ ํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์—ฌ๋Ÿฌ ์Šค๋ ˆ๋“œ๊ฐ€ ๋ณ€๊ฒฝํ•˜..

[์šด์˜์ฒด์ œ] Thread

1. Processs vs Thread Process ์ปดํ“จํ„ฐ์—์„œ ์—ฐ์†์ ์œผ๋กœ ์‹คํ–‰๋˜๊ณ  ์žˆ๋Š” ์ปดํ“จํ„ฐ ํ”„๋กœ๊ทธ๋žจ, ์ฆ‰ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ์™€ ์‹คํ–‰๋˜๊ณ  ์žˆ๋Š” ๋…๋ฆฝ์ ์ธ ํ”„๋กœ๊ทธ๋žจ ์ธ์Šคํ„ด์Šค Thread ํ”„๋กœ์„ธ์Šค ๋‚ด์—์„œ ๋™์ž‘๋˜๋Š” ์—ฌ๋Ÿฌ ์‹คํ–‰์˜ ํ๋ฆ„ ๋‹จ์œ„ Processs๋Š” ๋…๋ฆฝ์ , Thread๋Š” ํ”„๋กœ์„ธ์Šค์˜ ์„œ๋ธŒ๋„ท Process๋Š” ๊ฐ๊ฐ ๋…๋ฆฝ์ ์ธ ์ž์›์„ ๊ฐ€์ง„๋‹ค. Thread๋Š” ํ”„๋กœ์„ธ์Šค์˜ ์ž์›์„ ๊ณต์œ ํ•œ๋‹ค. Process๋Š” ์ž์‹ ๋งŒ์˜ ์ฃผ์†Œ ์˜์—ญ์„ ๊ฐ€์ง„๋‹ค. Thread๋Š” ์ฃผ์†Œ ์˜์—ญ์„ ๊ณต์œ ํ•œ๋‹ค. Process๊ฐ„์—๋Š” IPC๊ธฐ๋ฒ•์œผ๋กœ ํ†ต์‹ ํ•ด์•ผํ•˜์ง€๋งŒ Thread๋Š” ํ•„์š”์—†๋‹ค. (IPC์— ๋Œ€ํ•ด์„œ๋Š” ์•„์ง ๊ณต๋ถ€๊ฐ€ ๋” ํ•„์š”ํ•œ ์ƒํƒœ..) 2. Thread - Light Weight Process๋ผ๊ณ ๋„ ํ•จ - ํ”„๋กœ์„ธ์Šค ๊ฐ„์—๋Š” ๊ฐ ํ”„๋กœ์„ธ์Šค์˜ ๋ฐ์ดํ„ฐ ์ ‘๊ทผ์ด ๋ถˆ๊ฐ€ํ•˜๋‹ค..

[์šด์˜์ฒด์ œ] Process ๊ตฌ์กฐ, Process์™€ ์ปจํ…์ŠคํŠธ ์Šค์œ„์นญ

ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜๋‹ค๋ณด๋ฉด ์‹ค์ œ ์‹คํ–‰ํŒŒ์ผ์˜ ๊ตฌ์กฐ๋ฅผ ์ดํ•ดํ•ด์•ผํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค. (๊นŠ๊ฒŒ ๋””๋ฒ„๊น…์„ ํ•ด์•ผํ•˜๋Š” ๊ฒฝ์šฐ) ์ด๋Ÿฐ ๊ฒฝ์šฐ๋ฅผ ์œ„ํ•ด์„œ๋ผ๋„ ํ”„๋กœ์„ธ์Šค ๊ตฌ์กฐ๋ฅผ ์•Œ์•„์•ผํ•  ํ•„์š”๊ฐ€ ์žˆ๋‹ค. ํ”„๋กœ์„ธ์Šค์˜ ๊ตฌ์กฐ TEXT(CODE): ์ปดํŒŒ์ผ๋œ ์ฝ”๋“œ๊ฐ€ ๋“ค์–ด๊ฐ€๋Š” ๋ถ€๋ถ„ DATA: ๋ณ€์ˆ˜/์ดˆ๊ธฐํ™”๋œ ๋ฐ์ดํ„ฐ STACK(์Šคํƒ ํ”„๋ ˆ์ž„): ์ž„์‹œ ๋ฐ์ดํ„ฐ(ํ•จ์ˆ˜ ํ˜ธ์ถœ, ๋กœ์ปฌ ๋ณ€์ˆ˜ ๋“ฑ) HEAP: ์ฝ”๋“œ์—์„œ ๋™์ ์œผ๋กœ ๋งŒ๋“ค์–ด์ง€๋Š” ๋ฐ์ดํ„ฐ ์•„๋ž˜์˜ ์ฝ”๋“œ๋ฅผ ์˜ˆ์‹œ๋กœ ํ”„๋กœ์„ธ์Šค ๊ตฌ์กฐ๋ฅผ ๊ทธ๋ ค๋ณด๋ฉด ์ด์™€ ๊ฐ™๋‹ค.(๋‹จ, ํ”„๋กœ๊ทธ๋žจ์—์„œ ํŒŒ์ด์ฌ ์ฝ”๋“œ๋ฅผ ์˜ˆ์‹œ๋กœ ๋“ค์—ˆ์ง€๋งŒ C์–ธ์–ด์ฒ˜๋Ÿผ ์ปดํŒŒ์ผ ๋œ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๊ฒŒ ๋ณด๊ธฐ!) HEAP ์—ฌ๊ธฐ์„œ HEAP์ด ์ฝ”๋“œ์—์„œ ๋™์ ์œผ๋กœ ๋งŒ๋“ค์–ด์ง€๋Š” ๋ฉ”๋ชจ๋ฆฌ์ธ๋ฐ, ์–ด๋–ป๊ฒŒ ๋งŒ๋“ค์–ด์ง€๊ณ , ์‚ฌ์šฉ๋˜๋Š”์ง€ ์•Œ์•„๋ณด์ž, C์–ธ์–ด์—๋Š” malloc์ด๋ผ๋Š” ๋ฉ”์„œ๋“œ๊ฐ€ ์žˆ๋‹ค. ์ด ๋ฉ”์„œ๋“œ๋กœ ๋ช…์‹œํ•œ ๋ฉ”๋ชจ๋ฆฌ..

[์šด์˜์ฒด์ œ] Interrupt

์ธํ„ฐ๋ŸฝํŠธ๋ž€, ์–ด๋Š ํ•œ ์ˆœ๊ฐ„ CPU๊ฐ€ ์‹คํ–‰ํ•˜๋Š” ๋ช…๋ น์€ PC(Program Counter)๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” ๋ช…๋ น ํ•˜๋‚˜์ด๋‹ค. ์ด๋ ‡๊ฒŒ CPU๊ฐ€ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๊ณ  ์žˆ์„ ๋•Œ, ์ž…์ถœ๋ ฅ ํ•˜๋“œ์›จ์–ด ๋“ฑ์˜ ์žฅ์น˜์™€ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜ ํ•ด์•ผํ•  ๋•Œ๋‚˜, ์˜ˆ์™ธ์ƒํ™ฉ์ด ๋ฐœ์ƒํ•˜์—ฌ ์ฒ˜๋ฆฌ๊ฐ€ ํ•„์š”ํ•  ๊ฒฝ์šฐ๊ฐ€ ์ƒ๊ธธ ์ˆ˜ ์žˆ๋‹ค. ์ด ๋•Œ CPU์— ์•Œ๋ ค์„œ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ธฐ์ˆ˜๋ฅผ ์ธํ„ฐ๋ŸฝํŠธ๋ผ๊ณ  ํ•œ๋‹ค. ์ธํ„ฐ๋ŸฝํŠธ์˜ ํ•„์š”์„ฑ 1. ์„ ์ ํ˜• ์Šค์ผ€์ฅด๋Ÿฌ๋ฅผ ๊ตฌํ˜„ ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ํ”„๋กœ์„ธ์Šค running์ค‘์— ์Šค์ผ€์ฅด๋Ÿฌ๊ฐ€ ์ด๋ฅผ ์ค‘๋‹จ์‹œํ‚ค๊ณ , ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๋กœ ๊ต์ฒดํ•˜๊ธฐ ์œ„ํ•ด, ํ˜„์žฌ ํ”„๋กœ์„ธ์Šค์˜ ์‹คํ–‰์„ ์ค‘๋‹จ์‹œํ‚จ๋‹ค. ๊ทธ๋Ÿฌ๋ ค๋ฉด ์Šค์ผ€์ฅด๋Ÿฌ ์ฝ”๋“œ๊ฐ€ ์‹คํ–‰๋˜์–ด์•ผ ํ•˜๋Š”๋ฐ, ์ด ๋•Œ ์ž ์‹œ ์ธํ„ฐ๋ŸฝํŠธ๊ฐ€ ์‚ฌ์šฉ๋œ๋‹ค. (ํƒ€์ด๋จธ ์ธํ„ฐ๋ŸฝํŠธ) 2. I/O Device์™€์˜ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜ ์˜ˆ๋ฅผ ๋“ค์–ด, ์ €์žฅ ๋งค์ฒด์—์„œ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ๊ฐ€ ์™„๋ฃŒ๋์„ ๋•Œ, ..

[์šด์˜์ฒด์ œ] ์„ ์ ํ˜•/๋น„์„ ์ ํ˜• ์Šค์ผ€์ฅด๋Ÿฌ

1. ๋น„์„ ์ ํ˜• ์Šค์ผ€์ฅด๋Ÿฌ(Non-preemptive Scheduling) ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋๋‚˜์ง€ ์•Š์œผ๋ฉด ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๋Š” CPU๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Œ ์˜ˆ๋ฅผ ๋“ค์–ด, CPU์— ์žˆ๋Š” Aํ”„๋กœ์„ธ์Šค์˜ ์ƒํƒœ๊ฐ€ ์ž์ฒด์ ์œผ๋กœ block๋˜๊ฑฐ๋‚˜, terminated๋˜์–ด์•ผ๋งŒ, ๊ทธ์ œ์„œ์•ผ ์Šค์ผ€์ฅด๋Ÿฌ๊ฐ€ Bํ”„๋กœ์„ธ์Šค๊ฐ€ ์‹คํ–‰ ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค.์ฆ‰,์Šค์ผ€์ฅด๋Ÿฌ๊ฐ€ CPU์— ์žˆ๋Š” ํ”„๋กœ์„ธ์Šค๋ฅผ ์„ ์ ,์ œ์–ด ํ•  ์ˆ˜ ์—†๋‹ค. ๊ทธ๋ฆผ์œผ๋กœ ๋น„์„ ์ ํ˜• ์Šค์ผ€์ฅด๋Ÿฌ๊ฐ€ ์ž‘๋™ํ•˜๋Š” ๋ฐฉ์‹์„ ๋ณด๋ฉด, 2. ์„ ์ ํ˜• ์Šค์ผ€์ฅด๋Ÿฌ(Preemptive Scheduling): ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค ๋Œ€์‹ ์— ํ”„๋กœ์„ธ์„œ(CPU)๋ฅผ ์ฐจ์ง€ํ•  ์ˆ˜ ์žˆ์Œ. ์ฆ‰, ํ”„๋กœ์„ธ์Šค ์ƒํƒœ๊ฐ€ running ์ค‘์—๋„ ์Šค์ผ€์ฅด๋Ÿฌ๊ฐ€ ์ด๋ฅผ ์ค‘๋‹จ(ready) ์‹œํ‚ค๊ณ , ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๋กœ ๊ต์ฒดํ•  ์ˆ˜ ์žˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์‹œ๋ถ„ํ•  ์‹œ์Šคํ…œ๊ฐ™์€ ๊ฒฝ์šฐ..

[์šด์˜์ฒด์ œ] ์šด์˜์ฒด์ œ ๊ตฌ์กฐ - ์‹œ์Šคํ…œ์ฝœ, ์‚ฌ์šฉ์ž ๋ชจ๋“œ, ์ปค๋„ ๋ชจ๋“œ

์—ฌ๊ธฐ์„œ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ, ์šด์˜์ฒด์ œ, ์ปดํ“จํ„ฐ ํ•˜๋“œ์›จ์–ด(์‹œ์Šคํ…œ ๋ฆฌ์†Œ์Šค)๋ฅผ ๋„์„œ๊ด€์— ๋น„์œ ํ•ด๋ณด๋ฉด ์šด์˜์ฒด์ œ - ๋„์„œ๊ด€ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ - ์‹œ๋ฏผ ์ปดํ“จํ„ฐ ํ•˜๋“œ์›จ์–ด - ์ฑ… - ๊ทธ๋ž˜์„œ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ(์‹œ๋ฏผ)์ด ์šด์˜์ฒด์ œ(๋„์„œ๊ด€)์—์„œ ์ปดํ“จํ„ฐ ํ•˜๋“œ์›จ์–ด(์ž์›; ์ฑ…)์„ ์š”์ฒญํ•˜๋ฉด - ์šด์˜์ฒด์ œ(๋„์„œ๊ด€)์€ ์ ์ ˆํ•œ ์ปดํ“จํ„ฐ ํ•˜๋“œ์—์–ด(์ฑ…)์„ ์ฐพ์•„์„œ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ(์‹œ๋ฏผ)์—๊ฒŒ ๋นŒ๋ ค์คŒ(์ฆ‰, ํ•˜๋“œ์›จ์–ด๋ฅผ ์ž๊น ์“ธ ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค€ ๋’ค) - ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ(์‹œ๋ฏผ)์ด ์‚ฌ์šฉํ•  ๊ธฐ๊ฐ„์ด ๋‹ค ๋˜๋ฉด, ์šด์˜์ฒด์ œ(๋„์„œ๊ด€)์ด ํ•ด๋‹น ์ปดํ“จํ„ฐ ํ•˜๋“œ์—์–ด(์ฑ…)์„ ํšŒ์ˆ˜ํ•œ๋‹ค. ์ด๋ ‡๋“ฏ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ, ์šด์˜์ฒด์ œ, ์ปดํ“จํ„ฐ ํ•˜๋“œ์›จ์–ด(์‹œ์Šคํ…œ ๋ฆฌ์†Œ์Šค)์˜ ๊ด€๊ณ„๋ฅผ ๋‹ค์‹œ ์„ค๋ช…ํ•˜๋ฉด, - ์šด์˜์ฒด์ œ๋Š” ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์ด ์š”์ณฅํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ—ˆ๊ฐ€ํ•˜๊ณ , ๋ถ„๋ฐฐํ•œ๋‹ค. - ์šด์˜์ฒด์ œ๋Š” ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์ด ์š”์ฒญํ•˜๋Š” CPU ์‹œ๊ฐ„์„ ..

[์šด์˜์ฒด์ œ] ์šด์˜์ฒด์ œ์˜ ๋ฐœ์ „์‚ฌ(๋ฐฐ์น˜ ์ฒ˜๋ฆฌ ์‹œ์Šคํ…œ, ์‹œ๋ถ„ํ•  ์‹œ์Šคํ…œ, ๋ฉ€ํ‹ฐ ํƒœ์Šคํ‚น)

์šด์˜์ฒด์ œ์˜ ๋ฐœ์ „์‚ฌ๋ฅผ ๋ณด๋ฉด์„œ ๊ฐ๊ฐ์˜ ์šด์˜์ฒด์ œ์˜ ๊ธฐ๋Šฅ๋“ค์ด ์–ด๋–ป๊ฒŒ ๋ฐœ์ „ํ•ด์™”๋Š”์ง€, ์–ด๋–ค ํŠธ๋ Œ๋“œ๊ฐ€ ์žˆ์—ˆ๋Š”์ง€ ์•Œ์•„๋ณด์•˜๋‹ค. 1950๋…„๋Œ€) ENIAC: ์ฒซ ๋ฒˆ์งธ ์ปดํ“จํ„ฐ ์ด ๋•Œ๋Š” ์šด์˜์ฒด์ œ๊ฐ€ ์—†์—ˆ๋‹ค. 1๊ฐœ์˜ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰์‹œํ‚ค๊ธฐ๋„ ๋ฐ”๋นด์œผ๋ ค ์ด ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์ด ์ง์ ‘ ์‹œ์Šคํ…œ ์ž์›์„ ์ œ์–ดํ•˜์˜€๋‹ค. 1960๋…„๋Œ€ ์ดˆ๊ธฐ) ์ด ๋•Œ๋Š” ํ”„๋กœ๊ทธ๋žจ ์ข…๋ฅ˜๋„ ๋งŽ์•„์ง€๊ณ , ์‚ฌ์šฉ์ž๋„ ์Šฌ์Šฌ ๋งŽ์•„์ง€๊ธฐ ์‹œ์ž‘ํ–ˆ๋‹ค. ์˜ˆ๋ฅผ๋“ค์–ด, ์ฒ ์ˆ˜๊ฐ€ '์˜ˆ์ƒ ์‹คํ–‰ ์‹œ๊ฐ„์ด 12 ์‹œ๊ฐ„'์ธ ์„ ์‹คํ–‰ํ•˜๊ณ ์ž ํ•˜๋ฉฐ, ์˜ํฌ๊ฐ€ '์˜ˆ์ƒ ์‹คํ–‰ ์‹œ๊ฐ„์ด 1๋ถ„'์ธ ๋ฅผ ์‹คํ–‰ํ•˜๊ณ ์ž ํ•œ๋‹ค. ์ด ๋•Œ ์ฒ ์ˆ˜๊ฐ€ ๋จผ์ € ํ”„๋กœ๊ทธ๋žจ1์„ ์‹คํ–‰์‹œํ‚จ๋‹ค๋ฉด ์˜ํฌ๋Š” 1๋ถ„ ๋งŒ์— ๋๋‚˜๋Š” ์ž‘์—…์ž„์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ์ฒ ์ˆ˜์˜ ํ”„๋กœ๊ทธ๋žจ์ด ๋‹ค ๋๋‚  ๋•Œ๊นŒ์ง€ ์ง์ ‘ ๋œฌ ๋ˆˆ์œผ๋กœ ๊ธฐ๋‹ค๋ คํ•œ๋‹ค. ์ด๋Ÿฌํ•œ ๋ถˆํŽธํ•จ์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” ์šด์˜์ฒด์ œ๊ฐ€ ์ถœ..

โ€‹