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

CS22

13. ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋“œ ๊ตฌํ˜„ ๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋“œ ๊ตฌํ˜„ ? ๊ฐœ๋ฐœ์ž๋กœ ๊ฑฐ๋“ญ๋‚˜๋ ค๋ฉด ๊ผญ ํ•„์š”ํ•œ ๊ฐœ๋…์ด๋‹ค. ์šฐ๋ฆฌ๋„ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋ฉด์„œ ๋‹ค์–‘ํ•œ ์‚ฌ์šฉ์ž์— ๋Œ€ํ•ด ์ž‘์—…์„ ํ•ด์•ผํ•  ๊ฒƒ์ด๋‹ค. ๊ทธ ๋•Œ, ์Šค๋ ˆ๋“œ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด ์šฐ๋ฆฌ๊ฐ€ ๋งŒ๋“  ์Šค๋ ˆ๋“œ๊ฐ€ ์‹œ์Šคํ…œ์—์„œ ์Šค์ผ€์ค„ ๋  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. ํฌ๊ฒŒ N:1 ๋งคํ•‘, 1:1 ๋งคํ•‘, N:M ๋งคํ•‘์ด ์žˆ๋‹ค. X : Y ๊ผด๋กœ, X๊ฐœ์˜ ์‚ฌ์šฉ์ž ๋ ˆ๋ฒจ ์Šค๋ ˆ๋“œ๋ฅผ Y๊ฐœ์˜ ์ปค๋„ ๋ ˆ๋ฒจ ์Šค๋ ˆ๋“œ๋กœ ๋งคํ•‘ํ•œ๋‹ค๋Š” ๋‚ด์šฉ์ธ๋ฐ ์ด ์™ธ์—๋„ 1:N ๋งคํ•‘๋„ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ์ค‘์š”ํ•œ N:1, 1:1 ๋งŒ ์ž‘์„ฑํ•˜๋„๋ก ํ•˜๊ฒ ๋‹ค .N(User):1(Kernel) ๋งคํ•‘ ๋ง ๊ทธ๋Œ€๋กœ N๊ฐœ์˜ ์‚ฌ์šฉ์ž ์Šค๋ ˆ๋“œ๊ฐ€ 1๊ฐœ์˜ ์ปค๋„ ์Šค๋ ˆ๋“œ๋กœ ๋งคํ•‘ํ•˜๋Š” ๊ฐœ๋…์ด๋‹ค. ์šด์˜์ฒด์ œ(์ปค๋„ ์ž…์žฅ)๋Š” ๋ชจ๋“  ํ”„๋กœ์„ธ์Šค๋ฅผ Main ์Šค๋ ˆ๋“œ๋ผ๋Š” ๋‹จ์ผ ํ”„๋กœ์„ธ์Šค๋กœ ์ฒ˜๋ฆฌํ•œ๋‹ค. ์ด ๋ง์€ ์ปค๋„ ์˜์—ญ์— ์ €์žฅ๋˜๋Š” ์ปค๋„ ๋ ˆ๋ฒจ ์Šค๋ ˆ๋“œ์˜.. 2024. 4. 22.
12. ์ปค๋„ ๋ ˆ๋ฒจ ์Šค๋ ˆ๋“œ์™€ ์‚ฌ์šฉ์ž ๋ ˆ๋ฒจ ์Šค๋ ˆ๋“œ ์Šค๋ ˆ๋“œ์˜ ๋ ˆ๋ฒจ? ์Šค๋ ˆ๋“œ๋Š” ์Šค์ผ€์ค„๋ง ์ฃผ์ฒด์— ๋”ฐ๋ผ ๋‘ ์ข…๋ฅ˜์˜ ์Šค๋ ˆ๋“œ๋กœ ๊ตฌ๋ถ„๋œ๋‹ค. 1. ์ปค๋„ ๋ ˆ๋ฒจ ์Šค๋ ˆ๋“œ (Kernal-Level Thread) : ์ปค๋„์— ์˜ํ•ด ์Šค์ผ€์ค„๋ง ๋œ๋‹ค. 2. ์‚ฌ์šฉ์ž ๋ ˆ๋ฒจ ์Šค๋ ˆ๋“œ (User-Level Thread) : ์Šค๋ ˆ๋“œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ์˜ํ•ด ์Šค์ผ€์ค„๋ง ๋œ๋‹ค. TCB๋ฅผ ์†Œ์œ ํ•˜๊ณ  ์žˆ๋Š” ์ฃผ์ฒด์— ๋”ฐ๋ผ ๋‘ ์ข…๋ฅ˜์˜ ์Šค๋ ˆ๋“œ๋กœ ๊ตฌ๋ถ„๋˜๋Š”๋ฐ ์ž์„ธํžˆ ์•Œ์•„๋ณด๋„๋ก ํ•˜๊ฒ ๋‹ค. ์ปค๋„ ๋ ˆ๋ฒจ ์Šค๋ ˆ๋“œ ์ปค๋„ ๋ ˆ๋ฒจ ์Šค๋ ˆ๋“œ๋Š” ์‹œ์Šคํ…œ ํ˜ธ์ถœ์„ ํ†ตํ•ด์„œ๋งŒ ์ƒ์„ฑ๋œ๋‹ค. ์ฆ‰, ์ปค๋„์— ์˜ํ•ด์„œ๋งŒ ์Šค์ผ€์ค„๋ง ๋˜๋Š” ๊ฒƒ์ด๋‹ค. ํ•˜์ง€๋งŒ, ์ปค๋„ ์ฝ”๋“œ์™€ ๋‹ฌ๋ฆฌ ์ปค๋„ ๋ ˆ๋ฒจ ์Šค๋ ˆ๋“œ์˜ ์ฝ”๋“œ๋‚˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์ปค๋„ ๊ณต๊ฐ„๋ฟ ์•„๋‹ˆ๋ผ ์‚ฌ์šฉ์ž ๊ณต๊ฐ„์—๋„ ์žˆ์„ ์ˆ˜ ์žˆ๋‹ค. ์ด๊ฒŒ ๋ฌด์Šจ๋ง์ธ์ง€ ์ •๋ง ํ—ท๊ฐˆ๋ ธ๋‹ค. thread_create() ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ktread_create()๋ผ๋Š” ์Šค๋ ˆ๋“œ.. 2024. 4. 22.
11. ์Šค๋ ˆ๋“œ ์ฃผ์†Œ ๊ณต๊ฐ„๊ณผ ์ปจํ…์ŠคํŠธ ์Šค๋ ˆ๋“œ์˜ ์ฃผ์†Œ๊ณต๊ฐ„์€ ์ƒ๊ฐ๋ณด๋‹ค ๊ฐ„๋‹จํ•˜๋‹ค. ํ”„๋กœ์„ธ์Šค ์ฃผ์†Œ๊ณต๊ฐ„์„ ๊ทธ๋Œ€๋กœ ๋‚˜๋ˆ„์–ด๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ๊ธฐ์กด ํ”„๋กœ์„ธ์Šค์˜ ์ฝ”๋“œ, ๋ฐ์ดํ„ฐ, ํž™, ์Šคํƒ ์˜์—ญ์€ ๊ณต์œ  ์˜์—ญ์ด๋˜๊ณ  ๊ฐœ๋ณ„ ์Šค๋ ˆ๋“œ๋งˆ๋‹ค ์ฝ”๋“œ ์˜์—ญ, ๋ฐ์ดํ„ฐ ์˜์—ญ, ์Šคํƒ ์˜์—ญ, ์ปค๋„ ์˜์—ญ์œผ๋กœ ๋‚˜๋ˆ„์–ด ์‚ฌ์šฉ๋˜๊ณ  ์žˆ๋‹ค. โ€ป ํ”„๋กœ์„ธ์Šค์™€ ์Šค๋ ˆ๋“œ๋Š” ์œ ์‚ฌํ•˜๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค. ์Šค๋ ˆ๋“œ ์ƒ๋ช… ์ฃผ๊ธฐ ํ”„๋กœ์„ธ์Šค์—์„œ ์Šค๋ ˆ๋“œ๋กœ ๋ฐ”๋€Œ์—ˆ์œผ๋‹ˆ ์œ ์‚ฌํ•œ ๊ฒƒ์€ ๋‹น์—ฐํ•˜๋‹ค. ๊ทธ๋Ÿผ ํ”„๋กœ์„ธ์Šค์—์„œ ์žˆ๋Š” ๊ฐœ๋…๋“ค์€ ์›ฌ๋งŒํ•˜๋ฉด ์Šค๋ ˆ๋“œ์—๋„ ์ ์šฉ๋œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ๊ฒƒ์ด๋‹ค. ์Šค๋ ˆ๋“œ ๋˜ํ•œ ์ƒ๋ช…์ฃผ๊ธฐ๊ฐ€ ์žˆ๋‹ค. ํ”„๋กœ์„ธ์Šค๋Š” NEW, Ready, Running, Blocked, Zombie, Out ์ƒํƒœ๊ฐ€ ์žˆ์—ˆ๋‹ค. ์Šค๋ ˆ๋“œ๋Š” Ready, Running, Blocked, Terminated ์ƒํƒœ๊ฐ€ ์žˆ๋‹ค. ๊ฐ ์ƒํƒœ์— ๋Œ€ํ•œ ๊ธฐ๋ณธ์ ์ด ๋‚ด์šฉ์€ ํ”„๋กœ์„ธ์Šค.. 2024. 4. 22.
10. ์Šค๋ ˆ๋“œ (Thread) ์“ฐ๋ ˆ๋“œ๋Š” ์™œ ์‚ฌ์šฉํ• ๊นŒ? ์Šค๋ ˆ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋œ ๋ฐฐ๊ฒฝ๋„ ์žˆ์„ ๊ฒƒ์ด๋‹ค. ์ด์œ ๋Š” ํ”„๋กœ์„ธ์Šค์˜ ๋ฌธ์ œ์  ๋•Œ๋ฌธ์ด๋‹ค. ํ”„๋กœ์„ธ์Šค์—์„œ ์ปจํ…์ŠคํŠธ ์Šค์œ„์นญ์ด ๋ฐœ์ƒํ•  ๊ฒฝ์šฐ, ํ”„๋กœ์„ธ์Šค ์ƒ์„ฑ์— ๋„ˆ๋ฌด ๋งŽ์€ ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค ํ”„๋กœ์„ธ์Šค ์ƒ์„ฑ์‹œ PCB ์ƒ์„ฑ, ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น, ๋ถ€๋ชจ ํ”„๋กœ์„ธ์Šค ๋‚ด์šฉ ๋ณต์‚ฌ ๋“ฑ ๋งŽ์€ ์ž‘์—…์„ ํ•ด์•ผํ•œ๋‹ค. ๊ทธ ์™ธ์—๋„ ๋’ค์— ๋‚˜์˜ฌ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ” ์ฐธ์กฐ, ์บ์‹œ ์—…๋ฐ์ดํŠธ ๋“ฑ ๋งŽ์€ ๋ถ€๋ถ„์—์„œ ๋ฌธ์ œ์ ์ด ๋ฐœ์ƒ ํ”„๋กœ์„ธ์Šค ๊ฐ„์˜ ํ†ต์‹ ์ด ์–ด๋ ต๋‹ค. ํ”„๋กœ์„ธ์Šค๋Š” ๋…๋ฆฝ์ ์ธ ๊ณต๊ฐ„์„ ๊ฐ–๊ณ  ์žˆ์œผ๋ฏ€๋กœ ์„œ๋กœ ์นจ๋ฒ”ํ•  ์ˆ˜ ์—†์–ด์„œ ํ†ต์‹ ์ด ํž˜๋“ค๋‹ค๋Š” ์ . ํ”„๋กœ์„ธ์Šค ๊ฐ„ ํ†ต์‹ ์„ ์œ„ํ•ด ๋ฉ”๋ชจ๋ฆฌ ๋งต, ํŒŒ์ดํ”„, ์†Œ์ผ“ ๋“ฑ ๋‹ค์–‘ํ•œ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ–ˆ๋‹ค. ํ”„๋กœ์„ธ์Šค๋Š” ์ž…๋ ฅ์„ ๋…์ ํ•˜๋Š” ForeGorund Process์™€ ๊ฐ์ข… ์ฒ˜๋ฆฌ๋ฅผ ํ•˜๋Š” BackGround Process๊ฐ€ ์กด์žฌํ•œ๋‹ค. ๊ทธ ์™ธ์—๋„.. 2024. 4. 21.
9. ํ”„๋กœ์„ธ์Šค ๊ณ„์ธต ๊ตฌ์กฐ ํ”„๋กœ์„ธ์Šค๋Š” ๋ถ€๋ชจ - ์ž์‹ ๊ด€๊ณ„์ด๋‹ค. ์œˆ๋„์šฐ์—์„œ๋Š” ํ”„๋กœ์„ธ์Šค๋Š” ๋ชจ๋‘ ๋™๋“ฑํ•œ ๊ด€๊ณ„์ด์ง€๋งŒ, ๋‹ค๋ฅธ OS์—์„œ๋Š” ๋‹ค๋ฅด๋‹ค. ์ตœ์ดˆ์— ์‹คํ–‰๋˜๋Š” #0 ํ”„๋กœ์„ธ์Šค๊ฐ€ ์กฐ์ƒ ํ”„๋กœ์„ธ์Šค๋กœ ์ดํ›„๋กœ ์ž์‹ ํ”„๋กœ์„ธ์Šค๋“ค์ด ๋ป—์–ด์ ธ ๋‚˜๊ฐ€๋Š” ํ˜•ํƒœ์ด๋‹ค. ํ•˜๋‚˜์˜ ๋ถ€๋ชจ๋Š” ์—ฌ๋Ÿฟ์˜ ์ž์‹์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋Š” ํ˜•ํƒœ์ด๋‹ค. ์ด ๋ง์€, #0 ํ”„๋กœ์„ธ์Šค๋ฅผ ์ œ์™ธํ•œ ๋‚˜๋จธ์ง€ ๋ชจ๋“  ํ”„๋กœ์„ธ์Šค๋Š” ๋ถ€๋ชจ ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๋Š” ์˜๋ฏธ์ด๋‹ค. ๋ฆฌ๋ˆ…์Šค์˜ ๊ฒฝ์šฐ #0 - Idle Process, #1 - Init Process, #2 - kthreadd Process ๋กœ ์กฐ์ƒ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๊ตฌ์„ฑ๋˜์–ด์žˆ๋‹ค. ๊ฐ ๊ฐ, CPU๊ฐ€ ๋†€์ง€ ์•Š๊ธฐ ์œ„ํ•œ ์šฉ๋„, ์‚ฌ์šฉ์ž ํ”„๋กœ์„ธ์Šค์˜ ์กฐ์ƒ ํ”„๋กœ์„ธ์Šค, ์ปค๋„ ํ”„๋กœ์„ธ์Šค์˜ ์กฐ์ƒ ํ”„๋กœ์„ธ์Šค์˜ ์—ญํ• ์„ ํ•œ๋‹ค. Linux ํ™˜๊ฒฝ์—์„œ ps -eal, pstree 0 ๋ช…๋ น์œผ๋กœ ์ง์ ‘ ํ™•์ธํ•  ์ˆ˜.. 2024. 4. 21.
8. ํ”„๋กœ์„ธ์Šค ์ œ์–ด ๋ธ”๋ก (PCB, Process Control Block) PCB๋ž€? ํ”„๋กœ์„ธ์Šค ์ œ์–ด ๋ธ”๋ก์€ ํ”„๋กœ์„ธ์Šค ์ •๋ณด๋ฅผ ๋‹ด๊ณ  ์žˆ๋Š” ํ•˜๋‚˜์˜ ๋‹จ์œ„์ด๋‹ค. PCB ํ•˜๋‚˜์—๋Š” ํ”„๋กœ์„ธ์Šค ์ •๋ณด(PID, PPID, Process Status, ... )๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ํ•ด๋‹น ๋‚ด์šฉ์€ ์™ธ์šฐ๊ณ  ์žˆ์„ ํ•„์š”๋Š” ์—†๋‹ค. ์‹ค์ œ ์‹œ์Šคํ…œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•˜๊ฒŒ ๋  ๋•Œ, ์ด ์ •๋ณด๋ฅผ ์ปจํŠธ๋กคํ•˜๊ฒŒ ๋œ๋‹ค. PCB๊ฐ€ ์™œ ํ•„์š”ํ• ๊นŒ? ๋‹ค์ค‘ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ธฐ๋ฒ•์„ ์ƒ๊ฐํ•ด๋ณด์ž. ์ค‘๊ฐ„์— ์ธํ„ฐ๋ŸฝํŠธ๊ฐ€ ๋ฐœ์ƒํ•ด์„œ CPU๊ฐ€ ์ฒ˜๋ฆฌํ•˜๊ณ  ์žˆ๋˜ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ž ์‹œ ์ธํ„ฐ๋ŸฝํŠธ ์ฒ˜๋ฆฌํ•˜๊ณ  ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋ฐœ์ƒํ•ด์•ผํ•œ๋‹ค. ๊ทธ ์ด์œ ๋Š” CPU Idle Time์„ ์ค„์ด๊ธฐ ์œ„ํ•ด์„œ์ด๋‹ค. ์ด ๋•Œ, ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๋ฅผ ์‹คํ–‰ํ•˜๊ณ  interrupt๊ฐ€ ์ข…๋ฃŒ๋˜๋ฉด ๊ธฐ์กด์˜ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ด์–ด์„œ ์ฒ˜๋ฆฌํ•ด์•ผํ•œ๋‹ค. ์—ฌ๊ธฐ์„œ ๊ธฐ์กด์˜ ํ”„๋กœ์„ธ์Šค๋กœ ์ „ํ™˜ํ•˜๋Š” ๊ณผ์ •์„ ์ปจํ…์ŠคํŠธ ์Šค์œ„์นญ(Context Switching).. 2024. 4. 21.
7. ํ”„๋กœ์„ธ์Šค (Process) ๋ณธ๊ฒฉ์ ์ธ ์šด์˜์ฒด์ œ ๊ฐœ๋… ์ด์ „๊นŒ์ง€๋Š” ์šด์˜์ฒด์ œ๋ฅผ ์•Œ๊ธฐ ์œ„ํ•œ ์ „๋ฐ˜์ ์ธ ํ๋ฆ„์ด๋‚˜ ๊ธฐ๋ณธ์ ์ธ ์ง€์‹์„ ์„ค๋ช…ํ•˜๋Š” ๋‚ด์šฉ์ด์—ˆ๋‹ค. ์šด์˜์ฒด์ œ์˜ ์‹œ์ž‘์„ ์•Œ๋ฆฌ๋Š” ํ”„๋กœ์„ธ์Šค๋ž€ ๋„๋Œ€์ฒด ๋ฌด์—‡์ผ๊นŒ? ์šฐ๋ฆฌ๋Š” Chrome, Kakao Talk์™€ ๊ฐ™์€ Application์„ ํ”„๋กœ๊ทธ๋žจ์ด๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. ์ด ๋…€์„๋“ค์€ HDD๋‚˜ SSD์— ์ €์žฅ๋˜์–ด์žˆ๋‹ค. ๋ฐ”๋กœ๊ฐ€๊ธฐ icon์— ๋Œ€ํ•ด '์šฐํด๋ฆญ - ์†์„ฑ - ํŒŒ์ผ์œ„์น˜์—ด๊ธฐ'๋ฅผ ๋ˆŒ๋Ÿฌ๋ณด๋ฉด ์ •ํ™•ํ•œ ํ”„๋กœ๊ทธ๋žจ์„ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค. windows์—์„œ๋Š” Chrome.exe์™€ ๊ฐ™์€ *.exe ํ™•์žฅ์ž๊ฐ€ ๋ถ™๋Š”๋ฐ ์ด๊ฒƒ์„ ํ”„๋กœ๊ทธ๋žจ์ด๋ผ๊ณ  ํ•œ๋‹ค. ์•ž์—์„œ ํ”„๋กœ์„ธ์Šค๋„ *.exe๋ผ๊ณ  ๋‹ค๋ฃฌ์ ์ด ์žˆ๋‹ค. ๋งž์ง€๋งŒ ์กฐ๊ธˆ ๋‹ค๋ฅด๋‹ค. exe ํŒŒ์ผ์—๋Š” ์ฝ”๋“œ, ๋ฐ์ดํ„ฐ, ์Šคํƒ, ํž™ ๊ณต๊ฐ„์ด ๋ชฉ์  ์ฝ”๋“œ๋กœ ์ž‘์„ฑ๋˜์–ด์žˆ๋Š”๋ฐ ์ด ์‹คํ–‰ํŒŒ์ผ์„ ์‹คํ–‰ํ–ˆ์„ ๊ฒฝ์šฐ ๋ฉ”๋ชจ๋ฆฌ์— ์ ์žฌ๋˜๋Š”๋ฐ ์‹คํ–‰ .. 2024. 4. 21.
6. ์ปค๋„ (Kernal) ์ปค๋„์ด๋ž€ ๋ฌด์—‡์ผ๊นŒ? ์šด์˜์ฒด์ œ์˜ ํ•ต์‹ฌ ๋ถ€๋ถ„์ด๋‹ค. 1. ์šด์˜์ฒด์ œ๋ž€? ์—์„œ๋„ ์„ค๋ช…ํ–ˆ์ง€๋งŒ ์ปดํ“จํ„ฐ๋ฅผ ๋ถ€ํŒ…ํ•˜๊ฒŒ ๋œ๋‹ค๋ฉด OS๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ๊ธฐ๋ณธ์ ์ธ ์‹คํ–‰์ฝ”๋“œ๋“ค์ด ์‹คํ–‰๋œ๋‹ค. ์ด ๋•Œ, ์ปค๋„ ์ฝ”๋“œ์™€ GUI, ์ž‘์—… ์Šค์ผ€์ฅด๋Ÿฌ์— ์˜ํ•œ ์ตœ์ดˆ ์‹คํ–‰ ํ”„๋กœ๊ทธ๋žจ๋“ค์ด ๋ฉ”๋ชจ๋ฆฌ์— ์ ์žฌ๋œ๋‹ค. ๊ทธ ์ค‘ ์šฐ๋ฆฌ๋Š” ์šด์˜์ฒด์ œ์˜ ๋ชจ๋“  ์ •๋ณด๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ  ์žˆ๋Š” ์ปค๋„์— ๋Œ€ํ•ด์„œ๋งŒ ์ƒ๊ฐํ•ด์•ผํ•œ๋‹ค. ์ปค๋„์—๋Š” ์‹œ์Šคํ…œ ํ˜ธ์ถœ(System Call)๊ณผ ์ธํ„ฐ๋ŸฝํŠธ(Interrupt)๋ผ๋Š” ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ์ œ๊ณต๋˜๊ณ  ์žˆ๋‹ค. ์•ž์„œ, ์„ค๋ช…ํ•œ ๋‚ด์šฉ์ด์ง€๋งŒ ์‹œ์Šคํ…œ ํ˜ธ์ถœ์€ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ๊ณผ OS ๊ฐ„์— ์ธํ„ฐํŽ˜์ด์Šค์ด๊ณ  ์ธํ„ฐ๋ŸฝํŠธ๋Š” HW์™€ OS ๊ฐ„์— ์ธํ„ฐํŽ˜์ด์Šค์ด๋‹ค. ์‹œ์Šคํ…œ ํ˜ธ์ถœ์—์„œ ์ œ๊ณตํ•˜๋Š” ๊ธฐ๋Šฅ๋“ค์€ open(), close(), fork()์™€ ๊ฐ™์ด ABI๋ผ๊ณ ๋„ ๋ถˆ๋ฆฌ๋Š” ์œ ๋ช…ํ•œ ์‹œ์Šคํ…œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ธฐ๋Šฅ๋“ค์ด๋‹ค. .. 2024. 4. 21.
5. ์šด์˜์ฒด์ œ์˜ ์—ญํ•  ์šด์˜์ฒด์ œ์— ํ•„์š”ํ•œ ์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ์€ ์–ด๋–ป๊ฒŒ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์„๊นŒ? ์šด์˜์ฒด์ œ์˜ ์—ญํ• ์— ๋Œ€ํ•ด ์ดํ•ดํ•˜๋ ค๋ฉด ๋จผ์ € ์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ์˜ ๊ตฌ์กฐ๋ฅผ ์•Œ์•„์•ผํ•œ๋‹ค. ์šฐ๋ฆฌ๋Š” 1. ์šด์˜์ฒด์ œ๋ž€? ์—์„œ ์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ์˜ ๊ธฐ๋ณธ์ ์ธ ๊ตฌ์กฐ๋ฅผ ํ™•์ธํ–ˆ์—ˆ๋‹ค. ํฌ๊ฒŒ ์‘์šฉ SW OS HW์˜ ๊ณ„์ธต์„ ๊ฐ–๊ณ  ์žˆ๋Š”๋ฐ ์—ฌ๊ธฐ์„œ OS๊ฐ€ ์‚ฌ์šฉ์ž(์‘์šฉ SW)์™€ HW ๊ฐ„์— ์ค‘๊ณ„ ์—ญํ• (์ธํ„ฐํŽ˜์ด์Šค)์„ ์ˆ˜ํ–‰ํ•˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๊ทธ๋ž˜์„œ OS๋Š” ์ž์›์— ๋Œ€ํ•ด ๋ฐฐํƒ€์  ๋…์ ์„ ํ•˜๊ณ  ์žˆ๊ณ  ์‚ฌ์šฉ์ž๋‚˜ SW๋Š” OS๋ฅผ ํ†ตํ•ด์„œ๋งŒ HW์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ํŠน์ง•์ด ์žˆ๋‹ค. ์‚ฌ์‹ค ์ด ๋‚ด์šฉ์€ OS์˜ ์„ ์ˆ˜๊ณผ๋ชฉ์œผ๋กœ ์–ธ๊ธ‰๋˜๋Š” ์ปดํ“จํ„ฐ ๊ตฌ์กฐ๋‚˜ ์‹œ์Šคํ…œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ๊ณต๋ถ€ํ•ด์•ผ ํ•  ๋‚ด์šฉ์ธ๋ฐ ์ด๋ฏธ ์•Œ๋”๋ผ๋„ ๋ณต์Šตํ•˜๋Š” ๋‚ด์šฉ์œผ๋กœ ๋„˜์–ด๊ฐ€๋ ค๊ณ  ํ•œ๋‹ค. CPU(Central Processing Unit)๋Š” ์ค‘์•™์ฒ˜๋ฆฌ์žฅ์น˜๋กœ ๋ฉ”๋ชจ๋ฆฌ์— ์ ์žฌ๋œ.. 2024. 4. 21.