From 1a0f26ab31dc09d2b3509aebe9cfd72fd4b3592d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=9E=84=EC=9A=B0=EC=97=B4=20=28WooYeol=20Lim=29?= Date: Thu, 28 Sep 2023 13:39:04 +0900 Subject: [PATCH 1/3] docs : add Process Address Space.md --- 02-OPERATING_SYSTEM/Process Address Space.md | 101 +++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100644 02-OPERATING_SYSTEM/Process Address Space.md diff --git a/02-OPERATING_SYSTEM/Process Address Space.md b/02-OPERATING_SYSTEM/Process Address Space.md new file mode 100644 index 0000000..8f4bb28 --- /dev/null +++ b/02-OPERATING_SYSTEM/Process Address Space.md @@ -0,0 +1,101 @@ +# Process Address Space +## ๐Ÿ’ก ํ”„๋กœ์„ธ์Šค ์ฃผ์†Œ๊ณต๊ฐ„์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”. + +

+ +`ํ”„๋กœ์„ธ์Šค ์ฃผ์†Œ ๊ณต๊ฐ„(Process Address Space)`์€ ์ปดํ“จํ„ฐ์—์„œ ์‹คํ–‰ ์ค‘์ธ ๊ฐ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ณต๊ฐ„์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค๋Š” ๋ฉ”๋ชจ๋ฆฌ์˜ ์‚ฌ์šฉ์ž ์˜์—ญ์— ํฌ๊ฒŒ `์ฝ”๋“œ ์˜์—ญ`, `๋ฐ์ดํ„ฐ ์˜์—ญ`, `ํž™ ์˜์—ญ`,`์Šคํƒ ์˜์—ญ`์œผ๋กœ ๋‚˜๋‰˜์–ด ์ €์žฅ๋ฉ๋‹ˆ๋‹ค. + +- `์ฝ”๋“œ(Code) ์˜์—ญ` + - ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ์ฝ”๋“œ, ์ฆ‰ ๊ธฐ๊ณ„์–ด๋กœ ์ด๋ฃจ์–ด์ง„ ๋ช…๋ น์–ด๊ฐ€ ์ €์žฅ๋˜๋ฉฐ text ์˜์—ญ์ด๋ผ๊ณ ๋„ ํ•ฉ๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๊ฐ€ ์•„๋‹Œ CPU๊ฐ€ ์‹คํ–‰ํ•  ๋ช…๋ น์–ด๊ฐ€ ๋‹ด๊ฒจ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์“ฐ๊ธฐ๊ฐ€ ๊ธˆ์ง€๋˜์–ด์žˆ์Šต๋‹ˆ๋‹ค. (์ฝ๊ธฐ ์ „์šฉ ๊ณต๊ฐ„) +- `๋ฐ์ดํ„ฐ(Data) ์˜์—ญ` + - ์ž ๊น ์ผ๋‹ค๊ฐ€ ์—†์•จ ๋ฐ์ดํ„ฐ๊ฐ€ ์•„๋‹Œ **ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰๋˜๋Š” ๋™์•ˆ ์œ ์ง€ํ•  ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋˜๋Š” ๊ณต๊ฐ„**์ž…๋‹ˆ๋‹ค. **์ „์—ญ ๋ณ€์ˆ˜**๊ฐ€ ๋Œ€ํ‘œ์ ์ž…๋‹ˆ๋‹ค. + - ์ฝ”๋“œ ์˜์—ญ๊ณผ ๋ฐ์ดํ„ฐ ์˜์—ญ์€ ํฌ๊ธฐ๊ฐ€ ๊ณ ์ •๋œ ์˜์—ญ์ด๋ผ๋Š” ์ ์—์„œ **์ •์  ํ• ๋‹น ์˜์—ญ**์ด๋ผ๊ณ ๋„ ๋ถ€๋ฆ…๋‹ˆ๋‹ค. +- `ํž™(Heap) ์˜์—ญ` + - ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ์ง์ ‘ ํ• ๋‹นํ•  ์ˆ˜ ์žˆ๋Š” ์ €์žฅ ๊ณต๊ฐ„์ž…๋‹ˆ๋‹ค. ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ณผ์ •์—์„œ ํž™ ์˜์—ญ์— ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ํ• ๋‹นํ–ˆ๋‹ค๋ฉด ์–ธ์  ๊ฐ€๋Š” ํ•ด๋‹น ๊ณต๊ฐ„์„ ๋ฐ˜ํ™˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. +- `์Šคํƒ(Stack) ์˜์—ญ` + - ๋ฐ์ดํ„ฐ๋ฅผ ์ผ์‹œ์ ์œผ๋กœ ์ €์žฅํ•˜๋Š” ๊ณต๊ฐ„์ž…๋‹ˆ๋‹ค. ํ•จ์ˆ˜์˜ ์‹คํ–‰์ด ๋๋‚˜๋ฉด ์‚ฌ๋ผ์ง€๋Š” **๋งค๊ฐœ ๋ณ€์ˆ˜**,**์ง€์—ญ ๋ณ€์ˆ˜** ๋“ฑ์ด ์ €์žฅ๋ฉ๋‹ˆ๋‹ค. + - ํž™ ์˜์—ญ๊ณผ ์Šคํƒ ์˜์—ญ์€ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๊ทธ ํฌ๊ธฐ๊ฐ€ ๋ณ€ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— **๋™์  ํ• ๋‹น ์˜์—ญ**์ด๋ผ๊ณ  ๋ถ€๋ฆ…๋‹ˆ๋‹ค. + +
+ +## ๐Ÿ“‘ ๊ผฌ๋ฆฌ์งˆ๋ฌธ +### ์ดˆ๊ธฐํ™” ํ•˜์ง€ ์•Š์€ ๋ณ€์ˆ˜๋“ค์€ ์–ด๋””์— ์ €์žฅ๋ ๊นŒ์š”? +

+ +- ํ”„๋กœ์„ธ์Šค์˜ ๋ฐ์ดํ„ฐ ์˜์—ญ(Data Segment) ์ค‘์—์„œ `BSS(Block Started by Symbol)` ์„น์…˜์— ์ €์žฅ๋ฉ๋‹ˆ๋‹ค. +- ์ด ์„น์…˜์€ ํ”„๋กœ์„ธ์Šค์˜ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์—์„œ ์ดˆ๊ธฐํ™” ๋˜์ง€ ์•Š์€ **์ „์—ญ ๋ณ€์ˆ˜, ๋ฐฐ์—ด, ์ •์  ๋ณ€์ˆ˜ ๋“ฑ**์„ ์ €์žฅํ•˜๋Š”๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. + +### ์ผ๋ฐ˜์ ์ธ ์ฃผ์†Œ๊ณต๊ฐ„ ๊ทธ๋ฆผ์ฒ˜๋Ÿผ, Stack๊ณผ Heap์˜ ํฌ๊ธฐ๋Š” ๋งค์šฐ ํฌ๋‹ค๊ณ  ํ•  ์ˆ˜ ์žˆ์„๊นŒ์š”? ๊ทธ๋ ‡์ง€ ์•Š๋‹ค๋ฉด, ๊ทธ ํฌ๊ธฐ๋Š” ์–ธ์ œ ๊ฒฐ์ •๋ ๊นŒ์š”? +- ๋ฌด์กฐ๊ฑด์ ์œผ๋กœ ํฌ๊ธฐ๊ฐ€ ํฌ๋‹ค๊ณ  ํ•  ์ˆ˜๋Š” ์—†์ง€๋งŒ data์™€ code ์˜์—ญ์€ ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ์ „์— ์ด๋ฏธ ์ •์˜๋˜๊ณ  ํฌ๊ธฐ๊ฐ€ ๊ฒฐ์ •๋˜๋Š” **์ •์  ํ• ๋‹น ์˜์—ญ**์ด๋ฉฐ, stack๊ณผ heap ์˜์—ญ์€ ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ์ค‘์— **๋™์ ์œผ๋กœ ๊ด€๋ฆฌ**๋˜๋ฏ€๋กœ ์ƒ๋Œ€์ ์œผ๋กœ ์ž‘๊ฑฐ๋‚˜ ํฐ ๊ฒฝ์šฐ๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. + +- `Stack`์€ ํ•จ์ˆ˜์˜ ํ˜ธ์ถœ๊ณผ ๊ด€๊ณ„์žˆ๋Š” **์ง€์—ญ ๋ณ€์ˆ˜**์™€ **๋งค๊ฐœ ๋ณ€์ˆ˜**๊ฐ€ ์ €์žฅ๋˜๋Š” ์˜์—ญ์œผ๋กœ **์ปดํŒŒ์ผ ํƒ€์ž„์— ํฌ๊ธฐ๊ฐ€ ๊ฒฐ์ •**๋˜๊ณ  `Heap`์€ **๋Ÿฐํƒ€์ž„์— ํฌ๊ธฐ๊ฐ€ ๊ฒฐ์ •๋˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ**์ž…๋‹ˆ๋‹ค. + +### Stack๊ณผ Heap ๊ณต๊ฐ„์— ๋Œ€ํ•ด, ์ ‘๊ทผ ์†๋„๊ฐ€ ๋” ๋น ๋ฅธ ๊ณต๊ฐ„์€ ์–ด๋””์ผ๊นŒ์š”? + +- `Stack`์€ CPU์— ์˜ํ•ด ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌ๋˜๊ณ  ๋ฉ”๋ชจ๋ฆฌ๋Š” ๋‹จํŽธํ™”๋˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— **์ ‘๊ทผ์ด ๋งค์šฐ ๋น ๋ฆ…๋‹ˆ๋‹ค.** +- `Heap`์€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ง์ ‘ ๊ด€๋ฆฌํ•ด์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์— Stack์— ๋น„ํ•ด **์ ‘๊ทผ ์†๋„๊ฐ€ ๋А๋ฆฌ๋‹ค.** + +### ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ณต๊ฐ„์„ ๋ถ„ํ• ํ•˜๋Š” ์ด์œ ๊ฐ€ ์žˆ์„๊นŒ์š”? +- **๋ฐ์ดํ„ฐ๋ฅผ ๊ณต์œ ํ•˜์—ฌ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์„ ์ค„์ด๊ธฐ** ์œ„ํ•ด์„œ์ž…๋‹ˆ๋‹ค. +- `Code` ์˜์—ญ์€ ๊ฐ™์€ ํ”„๋กœ๊ทธ๋žจ ๋‚ด์—์„œ ๋ชจ๋‘ ๊ฐ™๊ณ , ์ˆ˜์ •๋  ์ผ์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— ๋”ฐ๋กœ ๊ด€๋ฆฌํ•˜์—ฌ ๊ณต์œ ํ•˜๊ณ , `Stack` ์˜์—ญ๊ณผ `Data` ์˜์—ญ์„ ๋‚˜๋ˆ„์–ด ์ง€์—ญ๋ณ€์ˆ˜์™€ ์ „์—ญ๋ณ€์ˆ˜๋ฅผ ๋ณด๋‹ค ํšจ์œจ์ ์œผ๋กœ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. +- ๋˜ํ•œ ์—ฌ๋Ÿฌ ์Šค๋ ˆ๋“œ๊ฐ€ ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋…๋ฆฝ์ ์œผ๋กœ ์ œ์–ดํ•˜๊ธฐ ์œ„ํ•œ ์˜์—ญ ์™ธ์˜ ๊ณตํ†ต๋˜๋Š” `Code` ์˜์—ญ, `Data` ์˜์—ญ, `Heap` ์˜์—ญ์„ ๊ณต์œ ํ•˜์—ฌ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ ˆ์•ฝํ•˜๊ธฐ ์œ„ํ•จ์ž…๋‹ˆ๋‹ค. + +### ์Šค๋ ˆ๋“œ์˜ ์ฃผ์†Œ๊ณต๊ฐ„์€ ์–ด๋–ป๊ฒŒ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์„๊นŒ์š”? +

+ +`์Šค๋ ˆ๋“œ ์ฃผ์†Œ ๊ณต๊ฐ„` +์Šค๋ ˆ๋“œ ์ฃผ์†Œ ๊ณต๊ฐ„์ด๋ž€ ์Šค๋ ˆ๋“œ๊ฐ€ ์ƒ์„ฑ๋˜๊ณ  ์‹คํ–‰๋˜๋Š” ๋™์•ˆ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•œ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์œผ๋กœ ํ”„๋กœ์„ธ์Šค ์ฃผ์†Œ ๊ณต๊ฐ„ ๋‚ด์— ํ˜•์„ฑํ•ฉ๋‹ˆ๋‹ค. + +- `์ฝ”๋“œ ์˜์—ญ` : ์Šค๋ ˆ๋“œ๊ฐ€ ์‹คํ–‰ํ•  ์ž‘์—…์˜ ํ•จ์ˆ˜๊ฐ€ ์žˆ์œผ๋ฉฐ ์Šค๋ ˆ๋“œ๋Š” ํ”„๋กœ์„ธ์Šค ์ฝ”๋“œ ์˜์—ญ์— ์žˆ๋Š” ๋‹ค๋ฅธ ๋ชจ๋“  ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. +- `๋ฐ์ดํ„ฐ ์˜์—ญ` : ๊ฐœ๋ณ„ ์Šค๋ ˆ๋“œ ์ „์šฉ ๊ณต๊ฐ„์ธ ์Šค๋ ˆ๋“œ ๋กœ์ปฌ ์Šคํ† ๋ฆฌ์ง€์™€ ํ”„๋กœ์„ธ์Šค์— ์˜ํ•ด ๊ณต์œ ๋˜๋Š” ๋ณ€์ˆ˜ ๊ณต๊ฐ„์ด ์žˆ์Šต๋‹ˆ๋‹ค. +- `ํž™ ์˜์—ญ` : ๋ชจ๋“  ์Šค๋ ˆ๋“œ๊ฐ€ ๋™์  ํ• ๋‹น์„ ๋ฐ›๋Š” ๊ณต๊ฐ„์œผ๋กœ ํ”„๋กœ์„ธ์Šค์˜ ํž™ ๊ณต๊ฐ„์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. +- `์Šคํƒ ์˜์—ญ` : ํ”„๋กœ์„ธ์Šค ์Šคํƒ์˜ ์ผ๋ถ€๋ถ„์„ ํ• ๋‹นํ•ฉ๋‹ˆ๋‹ค. + +### "์Šคํƒ"์˜์—ญ๊ณผ "ํž™"์˜์—ญ์€ ์ •๋ง ์ž๋ฃŒ๊ตฌ์กฐ์˜ ์Šคํƒ/ํž™๊ณผ ์—ฐ๊ด€์ด ์žˆ๋Š” ๊ฑธ๊นŒ์š”? ๋งŒ์•ฝ ๊ทธ๋ ‡๋‹ค๋ฉด, ๊ฐ ์ฃผ์†Œ๊ณต๊ฐ„์˜ ๋™์ž‘๊ณผ์ •๊ณผ ์—ฐ๊ณ„ํ•ด์„œ ์„ค๋ช…ํ•ด ์ฃผ์„ธ์š”. + +- `Stack` ์˜์—ญ์˜ ๋™์ž‘์€ LIFO(Last In First Out) ์›์น™์— ๋”ฐ๋ผ ๋ฉ”๋ชจ๋ฆฌ์˜ ํ•จ์ˆ˜ ํ˜ธ์ถœ๊ณผ ๊ด€๋ จ๋œ ๋ณ€์ˆ˜, ํ•จ์ˆ˜ ํ˜ธ์ถœ ์ •๋ณด, ๋ณต๊ท€ ์ฃผ์†Œ ๋“ฑ์„ ์ž…์ถœ๋ ฅํ•˜๋Š” ์ธก๋ฉด์—์„œ ์ž๋ฃŒ๊ตฌ์กฐ์˜ Stack๊ณผ ์—ฐ๊ด€์ด ์žˆ์Šต๋‹ˆ๋‹ค. +- `Heap` ์˜์—ญ์˜ ๋™์ž‘์€ ํ”„๋กœ๊ทธ๋žจ์˜ ์‹คํ–‰ ์ค‘์— ์‚ฌ์šฉ์ž์— ์˜ํ•ด ๋™์ ์œผ๋กœ ํ• ๋‹น๋˜๊ณ  ํ•ด์ œ๋˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๊ฐ์ฒด๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ํŠน์ง•์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ž๋ฃŒ๊ตฌ์กฐ์˜ Heap๊ณผ๋Š” ์—ฐ๊ด€์ด ์—†์Šต๋‹ˆ๋‹ค. + +### IPC์˜ Shared Memory ๊ธฐ๋ฒ•์€ ํ”„๋กœ์„ธ์Šค ์ฃผ์†Œ๊ณต๊ฐ„์˜ ์–ด๋””์— ๋“ค์–ด๊ฐ€๋‚˜์š”? ๊ทธ๋Ÿฐ ์ด์œ ๊ฐ€ ์žˆ์„๊นŒ์š”? +- `Shared Memory`๋Š” ์—ฌ๋Ÿฌ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋™์‹œ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์ž…๋‹ˆ๋‹ค. +- **๊ณต์œ  ๋ฉ”๋ชจ๋ฆฌ ์„ธ์…˜**์— ์œ„์น˜ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. + - ๊ณต์œ  ๋ฉ”๋ชจ๋ฆฌ ์„น์…˜์€ ํ”„๋กœ์„ธ์Šค์˜ ์ฝ”๋“œ(Code), ๋ฐ์ดํ„ฐ(Data), ์Šคํƒ(Stack), ๋˜๋Š” ํž™(Heap) ์ค‘ ์–ด๋А ๋ถ€๋ถ„์—๋„ ์ง์ ‘ ์œ„์น˜ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. + - ๊ณต์œ  ๋ฉ”๋ชจ๋ฆฌ ์„น์…˜์€ ๋ณ„๋„์˜ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์œผ๋กœ ๊ด€๋ฆฌ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ํ”„๋กœ์„ธ์Šค์˜ ์ฝ”๋“œ, ๋ฐ์ดํ„ฐ, ์Šคํƒ, ๋˜๋Š” ํž™ ์ค‘์—์„œ ํ•„์š”ํ•œ ๋ถ€๋ถ„์— ๊ณต์œ  ๋ฉ”๋ชจ๋ฆฌ ์„น์…˜์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋งคํ•‘(mapping)ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. + - `๋ฐ์ดํ„ฐ ์„ธ๊ทธ๋จผํŠธ(Data Segment)`: ๊ณต์œ  ๋ฐ์ดํ„ฐ(๊ณต์œ  ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ)๋Š” ํ”„๋กœ์„ธ์Šค์˜ ๋ฐ์ดํ„ฐ ์„ธ๊ทธ๋จผํŠธ์— ๋งคํ•‘๋ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ํ”„๋กœ์„ธ์Šค๊ฐ€ ๊ณต์œ  ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๊ณ  ์“ธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. + - `ํž™(Heap)`: ๊ณต์œ  ๋ฉ”๋ชจ๋ฆฌ ์„น์…˜์„ ํž™์— ๋งคํ•‘ํ•˜์—ฌ ๋™์ ์œผ๋กœ ํ• ๋‹น๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๋™์ ์œผ๋กœ ์ƒ์„ฑ๋˜๋Š” ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ ๋˜๋Š” ๊ณต์œ  ์ž์›์— ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. + - `๊ธฐํƒ€ ์„ธ๊ทธ๋จผํŠธ`: ์ฝ”๋“œ ์„ธ๊ทธ๋จผํŠธ๋‚˜ ์Šคํƒ ์„ธ๊ทธ๋จผํŠธ์— ๊ณต์œ  ๋ฉ”๋ชจ๋ฆฌ ์„น์…˜์„ ์ง์ ‘ ๋งคํ•‘ํ•˜๋Š” ๊ฒƒ์€ ์ผ๋ฐ˜์ ์ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ฝ”๋“œ ์„ธ๊ทธ๋จผํŠธ๋Š” ํ”„๋กœ๊ทธ๋žจ ์ฝ”๋“œ๋ฅผ ์ €์žฅํ•˜๊ณ , ์Šคํƒ ์„ธ๊ทธ๋จผํŠธ๋Š” ํ•จ์ˆ˜ ํ˜ธ์ถœ๊ณผ ๊ด€๋ จ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๊ณต์œ  ๋ฐ์ดํ„ฐ๋Š” ์ฃผ๋กœ ๋ฐ์ดํ„ฐ ์„ธ๊ทธ๋จผํŠธ๋‚˜ ํž™์—์„œ ๊ด€๋ฆฌ๋ฉ๋‹ˆ๋‹ค. + +
+ +## ๐Ÿ ๊ผฌ๊ผฌ๋ฌด +### Python์—์„œ๋Š” Stack๊ณผ Heap ์˜์—ญ์„ ์–ด๋–ป๊ฒŒ ๊ตฌ๋ถ„ํ• ๊นŒ์š”? +- ํŒŒ์ด์ฌ์€ **๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ๋ฅผ ์ถ”์ƒํ™”ํ•œ ์–ธ์–ด**์ž…๋‹ˆ๋‹ค. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ๊ฐœ๋ฐœ์ž๊ฐ€ ์ง์ ‘ ์Šคํƒ ๋ฐ ํž™์„ ๋ช…์‹œ์ ์œผ๋กœ ์ œ์–ดํ•˜๊ธฐ ์•Š์Šต๋‹ˆ๋‹ค. +- ํŒŒ์ด์ฌ ์ธํ„ฐํ”„๋ฆฌํ„ฐ์™€ ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰ํ„ฐ๊ฐ€ ์ด๋Ÿฌํ•œ **๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ๋ฅผ ์ž๋™**์œผ๋กœ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. + +- ๋Œ€๋ถ€๋ถ„ ์ฐธ์กฐ์ž๋Š” Stack ์˜์—ญ์— ์ƒ์„ฑ๋˜๊ณ  ๊ฐ์ฒด๋Š” heap ์˜์—ญ์— ์ƒ์„ฑ๋œ๋‹ค. +

+ +### Stack๊ณผ Heap ๊ณต๊ฐ„์— ๋Œ€ํ•ด, ํ• ๋‹น ์†๋„๊ฐ€ ๋” ๋น ๋ฅธ ๊ณต๊ฐ„์€ ์–ด๋””์ผ๊นŒ์š”? + +- ์Šคํƒ์€ ์ด๋ฏธ ํ• ๋‹น๋˜์–ด์žˆ๋Š” ๊ณต๊ฐ„์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด๊ณ  ํž™์€ ์‚ฌ์šฉ์ž๊ฐ€ ๋”ฐ๋กœ ํ• ๋‹นํ•ด์„œ ์‚ฌ์šฉ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ณต๊ฐ„์ด๊ธฐ ๋•Œ๋ฌธ์— ์Šคํƒ์ด ํ›จ์”ฌ ๋น ๋ฆ…๋‹ˆ๋‹ค. + - ์Šคํƒ์—์„œ ํ• ๋‹น์˜ ์˜๋ฏธ๋Š” ์ด๋ฏธ ์ƒ์„ฑ๋˜์–ด ์žˆ๋Š” ์Šคํƒ์— ๋Œ€ํ•ด ํฌ์ธํ„ฐ์˜ ์œ„์น˜๋งŒ ๋ฐ”๊ฟ”์ฃผ๋Š” ๋‹จ์ˆœํ•œ CPU Instruction์ž…๋‹ˆ๋‹ค. + - ํž™์—์„œ์˜ ํ• ๋‹น์˜ ์˜๋ฏธ๋Š” ์š”์ฒญ๋œ Chunk์˜ ํฌ๊ธฐ, ํ˜„์žฌ ๋ฉ”๋ชจ๋ฆฌ Fragmentation ์ƒํ™ฉ ๋“ฑ ๋‹ค์–‘ํ•œ ์š”์†Œ๋ฅผ ๊ณ ๋ คํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋” ๋งŽ์€ CPU Instruction์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. + +
+ +## ๐Ÿ“š Reference +--- + +- [ํ‹ฐ์Šคํ† ๋ฆฌ - ํ”„๋กœ์„ธ์Šค(Process)์˜ ์ฃผ์†Œ๊ณต๊ฐ„(Address Space)](https://whereisusb.tistory.com/10) +- [ํ‹ฐ์Šคํ† ๋ฆฌ - ํ”„๋กœ์„ธ์Šค ์ฃผ์†Œ ๊ณต๊ฐ„์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”](https://seongeun-it.tistory.com/181) +- [๋ฒจ๋กœ๊ทธ - [์šด์˜์ฒด์ œ] ํ”„๋กœ์„ธ์Šค ์ฃผ์†Œ ๊ณต๊ฐ„](https://velog.io/@klm03025/%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9C-%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4-%EC%A3%BC%EC%86%8C-%EA%B3%B5%EA%B0%84) +- [ํ‹ฐ์Šคํ† ๋ฆฌ - 27. ํ”„๋กœ์„ธ์Šค - IPC ๊ธฐ๋ฒ•(shared memory)](https://devraphy.tistory.com/418) +- [๋ฒจ๋กœ๊ทธ - [์šด์˜์ฒด์ œ] ํ”„๋กœ์„ธ์Šค ์ฃผ์†Œ๊ณต๊ฐ„](https://velog.io/@klloo/%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9C-%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4-%EC%A3%BC%EC%86%8C%EA%B3%B5%EA%B0%84) +- [ํ‹ฐ์Šคํ† ๋ฆฌ - [OS] ํ”„๋กœ์„ธ์Šค ์ฃผ์†Œ ๊ณต๊ฐ„](https://dar0m.tistory.com/258) +- [ํ‹ฐ์Šคํ† ๋ฆฌ - ํž™(Heap)๊ณผ ์Šคํƒ(Stack)์˜ ์ตœ๋Œ€ ํ• ๋‹น ํฌ๊ธฐ](https://bozeury.tistory.com/90) +- [๋ฒจ๋กœ๊ทธ - ๋ฉ”๋ชจ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ์•Œ์•„๋ณด์ž](https://velog.io/@hidaehyunlee/%EB%A9%94%EB%AA%A8%EB%A6%AC-%EA%B5%AC%EC%A1%B0%EB%A5%BC-%EC%95%8C%EC%95%84%EB%B3%B4%EC%9E%90) +- [ํ‹ฐ์Šคํ† ๋ฆฌ - ์Šค๋ ˆ๋“œ์˜ ๊ณต์œ ์ž์› ๊ด€๋ฆฌ(๋™๊ธฐํ™”)](https://development-sehee.tistory.com/24) +- [ํ‹ฐ์Šคํ† ๋ฆฌ - [OS] ํ”„๋กœ์„ธ์Šค ๊ฐ„ ํ†ต์‹ (Inter-Process Communication,IPC)](https://junghyungil.tistory.com/146) +- [ํ‹ฐ์Šคํ† ๋ฆฌ - CS - ๋ฉ”๋ชจ๋ฆฌ ๊ตฌ์กฐ(feat.์Šคํƒ Vs ํž™](https://leemyungjic.tistory.com/26) +- [ํ‹ฐ์Šคํ† ๋ฆฌ - ์Šคํƒ๊ณผ ํž™ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ,Stack Heap Memory](https://luv-n-interest.tistory.com/1046) +- [ํ‹ฐ์Šคํ† ๋ฆฌ - #3 python์˜ ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น๊ณผ ๊ด€๋ฆฌ](https://hkim-data.tistory.com/182) From 955618e3b39d3cb2c39bddc0dd0a2bed764b2853 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=9E=84=EC=9A=B0=EC=97=B4=20=28WooYeol=20Lim=29?= Date: Sun, 1 Oct 2023 15:01:32 +0900 Subject: [PATCH 2/3] docs : update Process Address Space --- 02-OPERATING_SYSTEM/Process Address Space.md | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/02-OPERATING_SYSTEM/Process Address Space.md b/02-OPERATING_SYSTEM/Process Address Space.md index 8f4bb28..c303bbc 100644 --- a/02-OPERATING_SYSTEM/Process Address Space.md +++ b/02-OPERATING_SYSTEM/Process Address Space.md @@ -1,7 +1,7 @@ # Process Address Space ## ๐Ÿ’ก ํ”„๋กœ์„ธ์Šค ์ฃผ์†Œ๊ณต๊ฐ„์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”. -

+

`ํ”„๋กœ์„ธ์Šค ์ฃผ์†Œ ๊ณต๊ฐ„(Process Address Space)`์€ ์ปดํ“จํ„ฐ์—์„œ ์‹คํ–‰ ์ค‘์ธ ๊ฐ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ณต๊ฐ„์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค๋Š” ๋ฉ”๋ชจ๋ฆฌ์˜ ์‚ฌ์šฉ์ž ์˜์—ญ์— ํฌ๊ฒŒ `์ฝ”๋“œ ์˜์—ญ`, `๋ฐ์ดํ„ฐ ์˜์—ญ`, `ํž™ ์˜์—ญ`,`์Šคํƒ ์˜์—ญ`์œผ๋กœ ๋‚˜๋‰˜์–ด ์ €์žฅ๋ฉ๋‹ˆ๋‹ค. @@ -57,10 +57,9 @@ - `Heap` ์˜์—ญ์˜ ๋™์ž‘์€ ํ”„๋กœ๊ทธ๋žจ์˜ ์‹คํ–‰ ์ค‘์— ์‚ฌ์šฉ์ž์— ์˜ํ•ด ๋™์ ์œผ๋กœ ํ• ๋‹น๋˜๊ณ  ํ•ด์ œ๋˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๊ฐ์ฒด๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ํŠน์ง•์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ž๋ฃŒ๊ตฌ์กฐ์˜ Heap๊ณผ๋Š” ์—ฐ๊ด€์ด ์—†์Šต๋‹ˆ๋‹ค. ### IPC์˜ Shared Memory ๊ธฐ๋ฒ•์€ ํ”„๋กœ์„ธ์Šค ์ฃผ์†Œ๊ณต๊ฐ„์˜ ์–ด๋””์— ๋“ค์–ด๊ฐ€๋‚˜์š”? ๊ทธ๋Ÿฐ ์ด์œ ๊ฐ€ ์žˆ์„๊นŒ์š”? -- `Shared Memory`๋Š” ์—ฌ๋Ÿฌ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋™์‹œ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์ž…๋‹ˆ๋‹ค. -- **๊ณต์œ  ๋ฉ”๋ชจ๋ฆฌ ์„ธ์…˜**์— ์œ„์น˜ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. +- `Shared Memory`๋Š” ์—ฌ๋Ÿฌ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋™์‹œ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์œผ๋กœ, **๊ณต์œ  ๋ฉ”๋ชจ๋ฆฌ ์„ธ์…˜**์— ์œ„์น˜ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. - ๊ณต์œ  ๋ฉ”๋ชจ๋ฆฌ ์„น์…˜์€ ํ”„๋กœ์„ธ์Šค์˜ ์ฝ”๋“œ(Code), ๋ฐ์ดํ„ฐ(Data), ์Šคํƒ(Stack), ๋˜๋Š” ํž™(Heap) ์ค‘ ์–ด๋А ๋ถ€๋ถ„์—๋„ ์ง์ ‘ ์œ„์น˜ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. - - ๊ณต์œ  ๋ฉ”๋ชจ๋ฆฌ ์„น์…˜์€ ๋ณ„๋„์˜ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์œผ๋กœ ๊ด€๋ฆฌ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ํ”„๋กœ์„ธ์Šค์˜ ์ฝ”๋“œ, ๋ฐ์ดํ„ฐ, ์Šคํƒ, ๋˜๋Š” ํž™ ์ค‘์—์„œ ํ•„์š”ํ•œ ๋ถ€๋ถ„์— ๊ณต์œ  ๋ฉ”๋ชจ๋ฆฌ ์„น์…˜์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋งคํ•‘(mapping)ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. + - ๊ณต์œ  ๋ฉ”๋ชจ๋ฆฌ ์„ธ์…˜์€ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ๋…๋ฆฝ์ ์œผ๋กœ ๊ด€๋ฆฌ๋˜๋ฉฐ ์ €์žฅํ•˜๋Š” ๋ฐ์ดํ„ฐ๋Š” ๊ฐ๊ฐ์˜ ํ”„๋กœ์„ธ์Šค ์ฃผ์†Œ ๊ณต๊ฐ„์— ๋งคํ•‘ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. - `๋ฐ์ดํ„ฐ ์„ธ๊ทธ๋จผํŠธ(Data Segment)`: ๊ณต์œ  ๋ฐ์ดํ„ฐ(๊ณต์œ  ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ)๋Š” ํ”„๋กœ์„ธ์Šค์˜ ๋ฐ์ดํ„ฐ ์„ธ๊ทธ๋จผํŠธ์— ๋งคํ•‘๋ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ํ”„๋กœ์„ธ์Šค๊ฐ€ ๊ณต์œ  ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๊ณ  ์“ธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. - `ํž™(Heap)`: ๊ณต์œ  ๋ฉ”๋ชจ๋ฆฌ ์„น์…˜์„ ํž™์— ๋งคํ•‘ํ•˜์—ฌ ๋™์ ์œผ๋กœ ํ• ๋‹น๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๋™์ ์œผ๋กœ ์ƒ์„ฑ๋˜๋Š” ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ ๋˜๋Š” ๊ณต์œ  ์ž์›์— ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. - `๊ธฐํƒ€ ์„ธ๊ทธ๋จผํŠธ`: ์ฝ”๋“œ ์„ธ๊ทธ๋จผํŠธ๋‚˜ ์Šคํƒ ์„ธ๊ทธ๋จผํŠธ์— ๊ณต์œ  ๋ฉ”๋ชจ๋ฆฌ ์„น์…˜์„ ์ง์ ‘ ๋งคํ•‘ํ•˜๋Š” ๊ฒƒ์€ ์ผ๋ฐ˜์ ์ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ฝ”๋“œ ์„ธ๊ทธ๋จผํŠธ๋Š” ํ”„๋กœ๊ทธ๋žจ ์ฝ”๋“œ๋ฅผ ์ €์žฅํ•˜๊ณ , ์Šคํƒ ์„ธ๊ทธ๋จผํŠธ๋Š” ํ•จ์ˆ˜ ํ˜ธ์ถœ๊ณผ ๊ด€๋ จ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๊ณต์œ  ๋ฐ์ดํ„ฐ๋Š” ์ฃผ๋กœ ๋ฐ์ดํ„ฐ ์„ธ๊ทธ๋จผํŠธ๋‚˜ ํž™์—์„œ ๊ด€๋ฆฌ๋ฉ๋‹ˆ๋‹ค. @@ -69,8 +68,9 @@ ## ๐Ÿ ๊ผฌ๊ผฌ๋ฌด ### Python์—์„œ๋Š” Stack๊ณผ Heap ์˜์—ญ์„ ์–ด๋–ป๊ฒŒ ๊ตฌ๋ถ„ํ• ๊นŒ์š”? -- ํŒŒ์ด์ฌ์€ **๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ๋ฅผ ์ถ”์ƒํ™”ํ•œ ์–ธ์–ด**์ž…๋‹ˆ๋‹ค. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ๊ฐœ๋ฐœ์ž๊ฐ€ ์ง์ ‘ ์Šคํƒ ๋ฐ ํž™์„ ๋ช…์‹œ์ ์œผ๋กœ ์ œ์–ดํ•˜๊ธฐ ์•Š์Šต๋‹ˆ๋‹ค. -- ํŒŒ์ด์ฌ ์ธํ„ฐํ”„๋ฆฌํ„ฐ์™€ ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰ํ„ฐ๊ฐ€ ์ด๋Ÿฌํ•œ **๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ๋ฅผ ์ž๋™**์œผ๋กœ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. +- ํŒŒ์ด์ฌ์€ Stack์˜์—ญ๊ณผ Heap ์˜์—ญ์˜ **๊ด€๋ฆฌ๋ฅผ ์ถ”์ƒํ™”** ํ•œ ์–ธ์–ด์ž…๋‹ˆ๋‹ค. +- ๋”ฐ๋ผ์„œ ๊ฐœ๋ฐœ์ž๊ฐ€ **์ง์ ‘ ์Šคํƒ ๋ฐ ํž™์„ ๋ช…์‹œ์ ์œผ๋กœ ์ œ์–ด**ํ•˜์ง€ ์•Š๊ณ , ํŒŒ์ด์ฌ ์ธํ„ฐํ”„๋ฆฌํ„ฐ์™€ ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰ํ„ฐ๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค. +- ์„ธ๋ถ€์ ์œผ๋กœ, ๋Œ€๋ถ€๋ถ„์˜ ์ฐธ์กฐ์ž๋Š” Stack ์˜์—ญ์— ์ƒ์„ฑ๋˜๊ณ , ๊ฐ์ฒด๋Š” heap ์˜์—ญ์— ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. - ๋Œ€๋ถ€๋ถ„ ์ฐธ์กฐ์ž๋Š” Stack ์˜์—ญ์— ์ƒ์„ฑ๋˜๊ณ  ๊ฐ์ฒด๋Š” heap ์˜์—ญ์— ์ƒ์„ฑ๋œ๋‹ค.

@@ -81,10 +81,12 @@ - ์Šคํƒ์—์„œ ํ• ๋‹น์˜ ์˜๋ฏธ๋Š” ์ด๋ฏธ ์ƒ์„ฑ๋˜์–ด ์žˆ๋Š” ์Šคํƒ์— ๋Œ€ํ•ด ํฌ์ธํ„ฐ์˜ ์œ„์น˜๋งŒ ๋ฐ”๊ฟ”์ฃผ๋Š” ๋‹จ์ˆœํ•œ CPU Instruction์ž…๋‹ˆ๋‹ค. - ํž™์—์„œ์˜ ํ• ๋‹น์˜ ์˜๋ฏธ๋Š” ์š”์ฒญ๋œ Chunk์˜ ํฌ๊ธฐ, ํ˜„์žฌ ๋ฉ”๋ชจ๋ฆฌ Fragmentation ์ƒํ™ฉ ๋“ฑ ๋‹ค์–‘ํ•œ ์š”์†Œ๋ฅผ ๊ณ ๋ คํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋” ๋งŽ์€ CPU Instruction์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. +### ์™œ ์ดˆ๊ธฐํ™” ํ•˜์ง€ ์•Š์€ ๋ณ€์ˆ˜๋“ค์„ BSS ์„น์…˜์— ์ €์žฅํ• ๊นŒ์š” (data์˜์—ญ๊ณผ bss ์˜์—ญ์„ ๊ตฌ๋ถ„ ํ•˜๋Š” ์ด์œ )? +- ์ดˆ๊ธฐํ™”๊ฐ€ ๋˜์ง€ ์•Š๋Š” ๋ณ€์ˆ˜๋Š” ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰๋ ๋•Œ ์˜์—ญ๋งŒ ์žก์•„์ฃผ๋ฉด ๋˜๊ณ  ๊ทธ ๊ฐ’์„ ํ”„๋กœ๊ทธ๋žจ์— ์ €์žฅํ•˜๊ณ  ์žˆ์„ ํ•„์š”๋Š” ์—†์œผ๋‚˜ ์ดˆ๊ธฐํ™”๊ฐ€ ๋˜๋Š” ๋ณ€์ˆ˜๋Š” ๊ทธ ๊ฐ’๋„ ํ”„๋กœ๊ทธ๋žจ์— ์ €์žฅํ•˜๊ณ  ์žˆ์–ด์•ผ ํ•˜๊ธฐ๋•Œ๋ฌธ์— ๋‘ ๊ฐ€์ง€๋ฅผ ๊ตฌ๋ถ„ํ•ด์„œ ์˜์—ญ์„ ์žก์•„์ค๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด bss์˜์—ญ๊ณผ data ์˜์—ญ์„ ๊ตฌ๋ถ„ํ•˜๋Š” ์ด์œ ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ด๋Ÿฌํ•œ bss์˜์—ญ ๋ณ€์ˆ˜๋“ค์€ ๋งŽ์•„์ ธ๋„ ํ”„๋กœ๊ทธ๋žจ์˜ ์‹คํ–‰์ฝ”๋“œ ์‚ฌ์ด์ฆˆ๋ฅผ ๋Š˜์–ด๋‚˜์ง€ ์•Š๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. +
## ๐Ÿ“š Reference ---- - [ํ‹ฐ์Šคํ† ๋ฆฌ - ํ”„๋กœ์„ธ์Šค(Process)์˜ ์ฃผ์†Œ๊ณต๊ฐ„(Address Space)](https://whereisusb.tistory.com/10) - [ํ‹ฐ์Šคํ† ๋ฆฌ - ํ”„๋กœ์„ธ์Šค ์ฃผ์†Œ ๊ณต๊ฐ„์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”](https://seongeun-it.tistory.com/181) @@ -99,3 +101,4 @@ - [ํ‹ฐ์Šคํ† ๋ฆฌ - CS - ๋ฉ”๋ชจ๋ฆฌ ๊ตฌ์กฐ(feat.์Šคํƒ Vs ํž™](https://leemyungjic.tistory.com/26) - [ํ‹ฐ์Šคํ† ๋ฆฌ - ์Šคํƒ๊ณผ ํž™ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ,Stack Heap Memory](https://luv-n-interest.tistory.com/1046) - [ํ‹ฐ์Šคํ† ๋ฆฌ - #3 python์˜ ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น๊ณผ ๊ด€๋ฆฌ](https://hkim-data.tistory.com/182) +- [ํ‹ฐ์Šคํ† ๋ฆฌ - ์šด์˜์ฒด์ œ - Process](https://dev-ahn.tistory.com/15) From cd92b81abe4a8f88985c0154464a6f69944d470b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=9E=84=EC=9A=B0=EC=97=B4=20=28WooYeol=20Lim=29?= Date: Tue, 31 Oct 2023 14:41:13 +0900 Subject: [PATCH 3/3] docs : update process address space by feedback --- 02-OPERATING_SYSTEM/Process Address Space.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/02-OPERATING_SYSTEM/Process Address Space.md b/02-OPERATING_SYSTEM/Process Address Space.md index c303bbc..e1cf680 100644 --- a/02-OPERATING_SYSTEM/Process Address Space.md +++ b/02-OPERATING_SYSTEM/Process Address Space.md @@ -33,7 +33,7 @@ ### Stack๊ณผ Heap ๊ณต๊ฐ„์— ๋Œ€ํ•ด, ์ ‘๊ทผ ์†๋„๊ฐ€ ๋” ๋น ๋ฅธ ๊ณต๊ฐ„์€ ์–ด๋””์ผ๊นŒ์š”? - `Stack`์€ CPU์— ์˜ํ•ด ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌ๋˜๊ณ  ๋ฉ”๋ชจ๋ฆฌ๋Š” ๋‹จํŽธํ™”๋˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— **์ ‘๊ทผ์ด ๋งค์šฐ ๋น ๋ฆ…๋‹ˆ๋‹ค.** -- `Heap`์€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ง์ ‘ ๊ด€๋ฆฌํ•ด์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์— Stack์— ๋น„ํ•ด **์ ‘๊ทผ ์†๋„๊ฐ€ ๋А๋ฆฌ๋‹ค.** +- `Heap`์€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ง์ ‘ ๊ด€๋ฆฌํ•ด์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์— Stack์— ๋น„ํ•ด **์ ‘๊ทผ ์†๋„๊ฐ€ ๋А๋ฆฝ๋‹ˆ๋‹ค.** ### ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ณต๊ฐ„์„ ๋ถ„ํ• ํ•˜๋Š” ์ด์œ ๊ฐ€ ์žˆ์„๊นŒ์š”? - **๋ฐ์ดํ„ฐ๋ฅผ ๊ณต์œ ํ•˜์—ฌ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์„ ์ค„์ด๊ธฐ** ์œ„ํ•ด์„œ์ž…๋‹ˆ๋‹ค. @@ -82,7 +82,11 @@ - ํž™์—์„œ์˜ ํ• ๋‹น์˜ ์˜๋ฏธ๋Š” ์š”์ฒญ๋œ Chunk์˜ ํฌ๊ธฐ, ํ˜„์žฌ ๋ฉ”๋ชจ๋ฆฌ Fragmentation ์ƒํ™ฉ ๋“ฑ ๋‹ค์–‘ํ•œ ์š”์†Œ๋ฅผ ๊ณ ๋ คํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋” ๋งŽ์€ CPU Instruction์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ### ์™œ ์ดˆ๊ธฐํ™” ํ•˜์ง€ ์•Š์€ ๋ณ€์ˆ˜๋“ค์„ BSS ์„น์…˜์— ์ €์žฅํ• ๊นŒ์š” (data์˜์—ญ๊ณผ bss ์˜์—ญ์„ ๊ตฌ๋ถ„ ํ•˜๋Š” ์ด์œ )? -- ์ดˆ๊ธฐํ™”๊ฐ€ ๋˜์ง€ ์•Š๋Š” ๋ณ€์ˆ˜๋Š” ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰๋ ๋•Œ ์˜์—ญ๋งŒ ์žก์•„์ฃผ๋ฉด ๋˜๊ณ  ๊ทธ ๊ฐ’์„ ํ”„๋กœ๊ทธ๋žจ์— ์ €์žฅํ•˜๊ณ  ์žˆ์„ ํ•„์š”๋Š” ์—†์œผ๋‚˜ ์ดˆ๊ธฐํ™”๊ฐ€ ๋˜๋Š” ๋ณ€์ˆ˜๋Š” ๊ทธ ๊ฐ’๋„ ํ”„๋กœ๊ทธ๋žจ์— ์ €์žฅํ•˜๊ณ  ์žˆ์–ด์•ผ ํ•˜๊ธฐ๋•Œ๋ฌธ์— ๋‘ ๊ฐ€์ง€๋ฅผ ๊ตฌ๋ถ„ํ•ด์„œ ์˜์—ญ์„ ์žก์•„์ค๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด bss์˜์—ญ๊ณผ data ์˜์—ญ์„ ๊ตฌ๋ถ„ํ•˜๋Š” ์ด์œ ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ด๋Ÿฌํ•œ bss์˜์—ญ ๋ณ€์ˆ˜๋“ค์€ ๋งŽ์•„์ ธ๋„ ํ”„๋กœ๊ทธ๋žจ์˜ ์‹คํ–‰์ฝ”๋“œ ์‚ฌ์ด์ฆˆ๋ฅผ ๋Š˜์–ด๋‚˜์ง€ ์•Š๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. +- ์ดˆ๊ธฐํ™”๊ฐ€ ๋˜์ง€ ์•Š๋Š” ๋ณ€์ˆ˜๋Š” ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰๋ ๋•Œ ๊ฐ’์€ ์ €์žฅํ•˜์ง€ ์•Š๊ณ  ์ €์žฅ๋  ์˜์—ญ๋งŒ ์žก์•„์ฃผ๋ฉด ๋ฉ๋‹ˆ๋‹ค. +- ์ดˆ๊ธฐํ™”๋œ ๋ณ€์ˆ˜๋Š” ๊ทธ ๊ฐ’๋„ ํ”„๋กœ๊ทธ๋žจ์— ์ €์žฅํ•˜๊ณ  ์žˆ์–ด์•ผ ํ•˜๊ธฐ๋•Œ๋ฌธ์— ๋‘ ๊ฐ€์ง€๋ฅผ ๊ตฌ๋ถ„ํ•ด์„œ ์˜์—ญ์„ ์žก์•„์ค๋‹ˆ๋‹ค. +- ์ด๊ฒƒ์ด bss์˜์—ญ๊ณผ data ์˜์—ญ์„ ๊ตฌ๋ถ„ํ•˜๋Š” ์ด์œ ์ž…๋‹ˆ๋‹ค. + +- ๋”ฐ๋ผ์„œ ์ด๋Ÿฌํ•œ bss์˜์—ญ ๋ณ€์ˆ˜๋“ค์€ ๋งŽ์•„์ ธ๋„ ํ”„๋กœ๊ทธ๋žจ์˜ ์‹คํ–‰ ์ฝ”๋“œ ์‚ฌ์ด์ฆˆ๋ฅผ ๋Š˜์ด์ง€ ์•Š๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.