728x90
๋ฐ˜์‘ํ˜•

์šด์˜์ฒด์ œ 4

[์šด์˜์ฒด์ œ] Multiprocessing๊ณผ Multithreading์˜ ์ฐจ์ดโ€ผ๏ธ

๐Ÿ“MultiProcessing - ํ•˜๋‚˜์˜ ํ”„๋กœ๊ทธ๋žจ์„ ์—ฌ๋Ÿฌ๊ฐœ์˜ process๋กœ ๊ตฌ์„ฑํ•˜์—ฌ ๊ฐ process๋งˆ๋‹ค ํ•˜๋‚˜์˜ ์ž‘์—…(task)์”ฉ ์ฒ˜๋ฆฌํ•˜๋„๋ก ํ•˜๋Š” ๊ฒƒ ์˜ˆ์‹œ) ํฌ๋กฌ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ํ•ด๋ณด์ž. ํฌ๋กฌ ์ฐฝ์„ ์—ฌ๋Ÿฌ๊ฐœ ๋„์šด๋‹ค๊ณ  ํ•  ๋•Œ, ์ฒซ ๋ฒˆ์งธ ํฌ๋กฌ์ฐฝ์„ ์‹คํ–‰์‹œํ‚ค๋Š” process, ๋‘๋ฒˆ์งธ ํฌ๋กฌ์ฐฝ์„ ์‹คํ–‰์‹œํ‚ค๋Š” process, ์„ธ๋ฒˆ์งธ ํฌ๋กฌ์ฐฝ์„ ์‹คํ–‰์‹œํ‚ค๋Š” process ... ์ด๋Ÿฐ์‹์œผ๋กœ ํฌ๋กฌ์ด๋ผ๋Š” ํ•˜๋‚˜์˜ ํ”„๋กœ๊ทธ๋žจ์—์„œ ์ผ์–ด๋‚˜๋Š” ์—ฌ๋Ÿฌ๊ฐœ์˜ ์ž‘์—…์„ process๋ฅผ ์—ฌ๋Ÿฌ๊ฐœ ์ƒ์„ฑํ•˜์—ฌ ํ•˜๋‚˜์”ฉ ์ฒ˜๋ฆฌํ•˜๋„๋ก ํ•ด์ฃผ๋Š” ๊ฒƒ..! ์žฅ์  - ๋…๋ฆฝ๋œ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์„ ๊ฐ์ž ํ• ๋‹น๋ฐ›๊ธฐ ๋•Œ๋ฌธ์— process๊ฐ„ ์„œ๋กœ์˜ ์ž์›์— ์นจํˆฌํ•  ์ˆ˜ ์—†์Œ โ†’ ์•ˆ์ •์„ฑ์ด ๋†’์Œ ๋‹จ์  - ์ž‘์—…๋Ÿ‰์ด ๋งŽ์•„์ง€๋ฉด *context switching์—์„œ์˜ ์˜ค๋ฒ„ํ—ค๋“œ ๋ฐœ์ƒ ๊ฐ€๋Šฅ (pro..

[์šด์˜์ฒด์ œ] Process์™€ thread์˜ ์ฐจ์ด (program vs process vs thread)

๐Ÿ“Program - ์ฝ”๋“œ๋กœ ๋งŒ๋“ค์–ด์ง„ ์ง‘ํ•ฉ์ฒด - ์˜ˆ์‹œ) ํฌ๋กฌ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ํ•˜๋‚˜์˜ ํ”„๋กœ๊ทธ๋žจ์ด๋ผ ํ•  ์ˆ˜ ์žˆ์Œ ๐Ÿ“Process - ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰์‹œํ‚ค๋ฉด ๊ทธ๊ฒŒ process๊ฐ€ ๋จ!! (์‹คํ–‰์ค‘์ธ ํ”„๋กœ๊ทธ๋žจ์ด๊ธฐ ๋•Œ๋ฌธ์— job, task๋ผ๊ณ ๋„ ๋ถˆ๋ฆผ) - OS๋กœ๋ถ€ํ„ฐ ์‹œ์Šคํ…œ ์ž์›์„ ํ• ๋‹น๋ฐ›๋Š” ์ž‘์—…์˜ ๋‹จ์œ„ (process๋Š” ๋…๋ฆฝ๋œ memory์˜์—ญ์„ ๊ฐ์ž ํ• ๋‹น๋ฐ›์Œ) ์‹œ์Šคํ…œ ์ž์›์„ ํ• ๋‹น๋ฐ›๋Š”๋‹ค๋ผ... ์‹œ์Šคํ…œ ์ž์›์ด ๋ญ˜๊นŒ? memory์˜์—ญ์€? ์šฐ์„  ๊ทธ๋ฆผ์œผ๋กœ process๊ฐ€ ์–ด๋–ป๊ฒŒ ์ƒ๊ฒผ๋Š”์ง€ ๋ณด์ž. process์•ˆ์— code, data, stack, heap์ด ๋“ค์–ด์žˆ๋‹ค. ์–˜๋„ค๊ฐ€ ๋ฐ”๋กœ memory ์˜์—ญ..! ๐Ÿ“Memory ๊ตฌ์กฐ 1. code ์ฝ”๋“œ ์ž์ฒด๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ 2. data ๋ฐ์ดํ„ฐ๋Š” *์ „์—ญ๋ณ€์ˆ˜, ์ •์ ๋ณ€์ˆ˜(static), ๋ฐฐ..

[์šด์˜์ฒด์ œ] ๋ฉ”๋ชจ๋ฆฌ ๊ตฌ์กฐ

๋ฉ”๋ชจ๋ฆฌ ๊ตฌ์กฐ : program์„ ์‹คํ–‰์‹œํ‚ค๋ฉด ์šด์˜์ฒด์ œ๋Š” ์šฐ๋ฆฌ๊ฐ€ ์‹คํ–‰์‹œํ‚จ program์„ ์œ„ํ•ด ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ํ• ๋‹นํ•ด์คŒ. ์ฆ‰ os๋Š” program์„ ์‹คํ–‰์‹œํ‚ค๊ธฐ ์œ„ํ•œ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ์ œ๊ณต ํ• ๋‹น๋˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์€ stack, heap, data ์˜์—ญ์œผ๋กœ ๋‚˜๋ˆ ์ง ์ด๋Ÿฌํ•œ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์ด ์–ด๋– ํ•œ ์šฉ๋„๋กœ, ์–ธ์ œ, ์–ด๋””์„œ ํ• ๋‹น๋˜๋Š”๊ฐ€ ํ• ๋‹น ์‹œ๊ธฐ: ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰๋ ๋•Œ๋งˆ๋‹ค ํ• ๋‹น ์žฅ์†Œ: main memory (RAM) ํ• ๋‹น ์šฉ๋„: program ์‹คํ–‰ ์‹œ ํ•„์š”ํ•œ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„(์ง€์—ญ/์ „์—ญ๋ณ€์ˆ˜ ์„ ์–ธ์„ ์œ„ํ•ด) ํ• ๋‹น ๋ฐ์ดํ„ฐ ์˜์—ญ : ์ „์—ญ๋ณ€์ˆ˜์™€ static ๋ณ€์ˆ˜๊ฐ€ ํ• ๋‹น๋˜๋Š” ์˜์—ญ ํ”„๋กœ๊ทธ๋žจ์ด ์‹œ์ž‘๊ณผ ๋™์‹œ์— ํ• ๋‹น๋˜๊ณ  program์ด ์ข…๋ฃŒ๋˜๋ฉด ๋ฉ”๋ชจ๋ฆฌ์—์„œ ์†Œ๋ฉธ๋จ #include int a=10; // data ์˜์—ญ์— ํ• ๋‹น int b=20; // prog..

[์šด์˜์ฒด์ œ] process vs thread

ํ”„๋กœ์„ธ์Šค์™€ ์Šค๋ ˆ๋“œ process and thread ์šด์˜์ฒด์ œ ์œ ํ˜• ๋‹ค์ค‘ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์‹œ์Šคํ…œ (multi programming) cpu๊ฐ€ ์ˆ˜ํ–‰ํ•  ์ž‘์—…์„ ํ•ญ์ƒ ๊ฐ€์ง€๋„๋ก ํ•˜์—ฌ cpu ์ด์šฉ๋ฅ  ์ฆ์ง„ ์šด์˜์ฒด์ œ๋Š” ๋ฉ”๋ชจ๋ฆฌ์— ์žˆ๋Š” ์ž‘์—… ์ค‘์—์„œ ํ•˜๋‚˜๋ฅผ ํƒํ•˜์—ฌ ์‹คํ–‰ํ•œ๋‹ค. multi programming์ด ์•„๋‹Œ ์‹œ์Šคํ…œ์—์„œ๋Š” ์ด ์ž‘์—…์€ ํ‚ค๋ณด๋“œ์—์„œ ๋ช…๋ น์„ ์ž…๋ ฅํ•˜๊ฑฐ๋‚˜, ์ž…์ถœ๋ ฅ ์กฐ์ž‘์ด ๋๋‚˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™์€ ์–ด๋–ค์ผ์„ ๊ธฐ๋‹ค๋ ค์•ผํ•  ํ•„์š”๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ๋Š”๋ฐ ์ด๋•Œ cpu๊ฐ€ ์œ ํœด์ƒํƒœ์— ๋†“์ด๊ฒŒ ๋œ๋‹ค. ํ•˜์ง€๋งŒ, multi programming system์—์„œ๋Š” ์šด์˜์ฒด์ œ๊ฐ€ ๊ฐ„๋‹จํžˆ ๋‹ค๋ฅธ ์ž‘์—…์œผ๋กœ ์ „ํ™˜ํ•˜์—ฌ ๊ทธ๊ฒƒ์„ ์ˆ˜ํ–‰ํ•˜๋„๋ก ํ•œ๋‹ค. ์•ž์˜ ์ž‘์—…์ด ๋๋‚˜๋ฉด ์ด ์ž‘์—…์€ cpu๋ฅผ ๋‹ค์‹œ ์ฐจ์ง€ํ•˜๊ฒŒ ๋œ๋‹ค. ๋”ฐ๋ผ์„œ ์ˆ˜ํ–‰๋  ์ž‘์—…์ด ๊ธฐ์–ต์žฅ์น˜์— ์ ์žฌ๋˜์–ด ์žˆ์œผ๋ฉด cpu๋Š” ์‰ฌ์ง€ ์•Š๋Š”๋‹ค..

728x90
๋ฐ˜์‘ํ˜•