๊ด€๋ฆฌ ๋ฉ”๋‰ด

Unfazedโ—๏ธ๐ŸŽฏ

ํ”„๋กœ๊ทธ๋žจ๊ณผ ํ”„๋กœ์„ธ์Šค์˜ ์ฐจ์ด/(feat. ์‹œ์Šคํ…œ ์ฝœ) ๋ณธ๋ฌธ

Operating System (์šด์˜์ฒด์ œ)

ํ”„๋กœ๊ทธ๋žจ๊ณผ ํ”„๋กœ์„ธ์Šค์˜ ์ฐจ์ด/(feat. ์‹œ์Šคํ…œ ์ฝœ)

9taetae9 2023. 10. 16. 04:33
728x90

ํ”„๋กœ๊ทธ๋žจ
๋””์Šคํฌ์— ์ €์žฅ๋œ ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ์ฝ”๋“œ์˜ ์ง‘ํ•ฉ
 
ํ”„๋กœ์„ธ์Šค 
์‹คํ–‰ ์ค‘์ธ ํ”„๋กœ๊ทธ๋žจ์˜ ์ธ์Šคํ„ด์Šค๋กœ, ์šด์˜ ์ฒด์ œ๊ฐ€ ๊ด€๋ฆฌํ•˜๋Š” ์‹คํ–‰ ์ปจํ…์ŠคํŠธ
test.c๋Š” ์†Œ์Šค ์ฝ”๋“œ ํŒŒ์ผ ์ด ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ์ปดํŒŒ์ผํ•˜์—ฌ ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ๋ฐ”์ด๋„ˆ๋ฆฌ(ํ”„๋กœ๊ทธ๋žจ)๋ฅผ ๋งŒ๋“ ๋‹ค. ์ด ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๋ฉด test๋ผ๋Š” ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ƒ์„ฑ๋˜์–ด ์‹คํ–‰๋œ๋‹ค.
 
test.c ์†Œ์Šค ์ฝ”๋“œ ๋‚ด์— a()๋ผ๋Š” ์‹œ์Šคํ…œ ์ฝœ์ด ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด๋ณด์ž.
 
a()๋Š” testํ”„๋กœ์„ธ์Šค ๋‚ด์—์„œ ํ˜ธ์ถœ๋˜๋Š” ์‹œ์Šคํ…œ ์ฝœ์ด๋‹ค. ๋”ฐ๋ผ์„œ ๋ณ„๋„์˜ ํ”„๋กœ์„ธ์Šค๋กœ ์‹คํ–‰๋˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋‹ค( a() ์‹œ์Šคํ…œ ์ฝœ์ด ์ข…๋ฃŒ๋œ ๊ฒƒ์ด์ง€ testํ”„๋กœ์„ธ์Šค๊ฐ€ ์ข…๋ฃŒ๋œ ๊ฒƒ์ด ์•„๋‹˜, ํ˜ธ์ถœ ๊ทธ๋ž˜ํ”„๋ฅผ ๊ทธ๋ฆฌ๋Š” ๊ณผ์ •์—์„œ ์ด ๋ถ€๋ถ„์„ ํ˜ผ๋™ํ•˜๊ณ  ์žˆ์—ˆ๋‹ค ). ํ˜„์žฌ ์‹คํ–‰ ์ค‘์ธ test ํ”„๋กœ์„ธ์Šค์˜ ์ปจํ…์ŠคํŠธ์—์„œ ์ปค๋„ ๋ชจ๋“œ๋กœ ์ „ํ™˜ํ•˜์—ฌ a() ์‹œ์Šคํ…œ์ฝœ์ด ์ฒ˜๋ฆฌ๋œ๋‹ค.  (context switch ์•„๋‹˜)
user mode ์™€ kernel mode ์‚ฌ์ด์˜ ์ „ํ™˜์œผ๋กœ mode switching ์ด๋ผ ํ•œ๋‹ค.
 
(์‚ฌ์šฉ์ž ๋ชจ๋“œ -> ์ปค๋„ ๋ชจ๋“œ)
1. ์™ธ๋ถ€ ์ธํ„ฐ๋ŸฝํŠธ (timer interrupt, I/O interrupt์™€ ๊ฐ™์ด HW์—์„œ ๋ฐœ์ƒ) ๋ฐœ์ƒ์‹œ
2. ์‚ฌ์šฉ์ž๊ฐ€ os ์„œ๋น„์Šค๋ฅผ ํ˜ธ์ถœ ์‹œ
(์ปค๋„ ๋ชจ๋“œ -> ์‚ฌ์šฉ์ž ๋ชจ๋“œ)
1. ์ œ์–ด๊ฐ€ ํ•ด๋‹น os ์„œ๋น„์Šค์—์„œ ์‚ฌ์šฉ์ž ํ”„๋กœ์„ธ์Šค๋กœ ๋ณต๊ท€ํ•  ๋•Œ (Return from System call)

728x90