ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

728x90
๋ฐ˜์‘ํ˜•

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

Dual Mode

Figure 1. ๊ฒŒ์ž„์—์„œ ๋””์Šคํฌ์— ์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•ด์•ผํ•˜๋Š” ์ƒํ™ฉ

์šด์˜์ฒด์ œ๋Š” ํŠน๊ถŒ ๋ช…๋ น(Privileged Instructions)์„ ์ง€์ •ํ•˜๊ณ  ์ผ๋ฐ˜ ์‚ฌ์šฉ์ž๋Š” ์‚ฌ์šฉํ•˜์ง€ ๋ชปํ•˜๊ฒŒ ๋ง‰์•˜๋‹ค. Applications์—์„œ ํŠน๊ถŒ ๋ช…๋ น ์‚ฌ์šฉ์ด ํ•„์š”ํ•  ๊ฒฝ์šฐ ์ธํ„ฐ๋ŸฝํŠธ๋ฅผ ๋ฐœ์ƒ์‹œ์ผœ kernel mode์— ์ง„์ž… ํ›„, ์šด์˜์ฒด์ œ๋ฅผ ํ†ตํ•ด ์ฒ˜๋ฆฌํ•˜๊ณ ์ž ํ•˜๋Š” ์ž‘์—…์„ ์ฒ˜๋ฆฌํ•œ๋‹ค.

(ํŠน๊ถŒ ๋ช…๋ น์ด ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ kernel mode์™€ ๋ฐ˜๋Œ€์ธ user mode๋Š” CPU ๋ ˆ์ง€์Šคํ„ฐ์— ๋ชจ๋“œ๋ฅผ ๋‚˜ํƒœ๋Š” ํ”Œ๋ž˜๊ทธ๋ฅผ ํ†ตํ•ด ๊ตฌ๋ถ„ํ•œ๋‹ค.)

 

๊ทธ๋ฆผ 1์€ ๊ฒŒ์ž„์—์„œ ๋””์Šคํฌ์— ์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ ์ €์žฅ์ด ํ•„์š”ํ•œ ์ƒํ™ฉ์ด๋‹ค. ํŠน๊ถŒ ๋ช…๋ น์€ Kernel mode์—์„œ๋งŒ ์‹คํ–‰๋  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ์ฒ˜๋ฆฌํ•œ๋‹ค.

  1. a์˜ ๊ฒฝ์šฐ๋Š” ๋””์Šคํฌ์— ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•œ ํŠน๊ถŒ ๋ช…๋ น์ด ํ•„์š”ํ•˜๋ฏ€๋กœ ์ธํ„ฐ๋ŸฝํŠธ๋ฅผ ๋ฐœ์ƒ์‹œ์ผœ kernel mode๋กœ ๋ณ€๊ฒฝํ•˜๊ณ  kernel์— ์ง„์ž…ํ•œ๋‹ค.

  2. b์˜ ๊ฒฝ์šฐ kernel mode์ด๋ฏ€๋กœ  ๋””์Šคํฌ์— ๊ฒŒ์ž„์œผ๋กœ ๋ถ€ํ„ฐ ์š”์ฒญ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•œ๋‹ค.

  3. kernel์˜ ์ž‘์—…์ด ๋๋‚˜๋ฉด, ๋‹ค์‹œ user mode๋กœ ๋Œ์•„์™€ ์ž‘์—…์„ ์ง„ํ–‰ํ•œ๋‹ค.

์ด์™€ ๊ฐ™์ด ํŠน๊ถŒ ๋ช…๋ น์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์•ž์˜ 1-3๊ณผ ๊ฐ™์€ ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•˜๋ฉฐ kernel ↔ user mode๋ฅผ ๋ณ€๊ฒฝํ•˜๊ฒŒ ๋œ๋‹ค.

 

H/W Protection

๋‹ค์ˆ˜์˜ ์‚ฌ์šฉ์ž๊ฐ€ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ƒํ™ฉ์—์„œ ๋™์‹œ์— ํ•˜๋“œ์›จ์–ด๋ฅผ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜, ํ˜ผ์„ ์ด ๋ฐœ์ƒํ•  ๊ฒฝ์šฐ ๋ฐ์ดํ„ฐ ์†์‹ค์ด ๋ฐœ์ƒํ•˜๊ฑฐ๋‚˜ ์น˜๋ช…์ ์ธ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด์— ์šด์˜์ฒด์ œ๋Š” ์ž…์ถœ๋ ฅ์žฅ์น˜, ๋ฉ”๋ชจ๋ฆฌ, CPU์— ๋Œ€ํ•ด ์‚ฌ์šฉ์ž๋“ค ๊ฐ„์˜ ๊ฐ„์„ญ์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š๋„๋ก ํ•œ๋‹ค.


์ž…์ถœ๋ ฅ ์žฅ์น˜ ๋ณดํ˜ธ

์ž…์ถœ๋ ฅ์€ ํŠน๊ถŒ๋ช…๋ น์œผ๋กœ ๋ถ„๋ฅ˜ํ•˜์—ฌ, ๊ฐ ํ”„๋กœ๊ทธ๋žจ ๋ณ„๋กœ ์ž…์ถœ๋ ฅ ์š”์ฒญ์„ ์ง„ํ–‰ํ•  ์ˆ˜ ์—†๋‹ค.
๋”ฐ๋ผ์„œ, ์ธํ„ฐ๋ŸฝํŠธ๋ฅผ ๋ฐœ์ƒ์‹œ์ผœ ์šด์˜์ฒด์ œ์—์„œ ์ฒ˜๋ฆฌํ•˜๊ฒŒ ํ•˜๋ฏ€๋กœ ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž์˜ ์˜์—ญ์„ ์นจ๋ฒ”ํ•  ์ˆ˜ ์—†๋‹ค.

 

๋ฉ”๋ชจ๋ฆฌ ๋ณดํ˜ธ

ํ”„๋กœ๊ทธ๋žจ์— ํ• ๋‹น๋œ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ ์™ธ์— ๋‹ค๋ฅธ ์˜์—ญ (๋‹ค๋ฅธ ์‚ฌ์šฉ์ž ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ, ์šด์˜์ฒด์ œ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ)์„ ์ ‘๊ทผํ•˜๋Š” ๊ฒƒ์„ ๋ง‰๋Š”๋‹ค. ์ด๋Š” MMU(Memory Management Unit)์„ ํ†ตํ•ด ๊ด€๋ฆฌํ•œ๋‹ค.


CPU ๋ณดํ˜ธ

ํ•œ ์‚ฌ์šฉ์ž๋กœ ๋ถ€ํ„ฐ ์‹คํ–‰๋œ ํŠน์ • ํ”„๋กœ๊ทธ๋žจ CPU๋ฅผ ๋…์ ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ๋‹ค.
๋”ฐ๋ผ์„œ ํƒ€์ด๋จธ ์ธํ„ฐ๋ŸฝํŠธ๋ฅผ ํ†ตํ•ด, ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰๋  ์ˆ˜ ์žˆ๋„๋ก ๋ณด์žฅํ•œ๋‹ค.

728x90
๋ฐ˜์‘ํ˜•
๋Œ“๊ธ€
๊ธ€ ๋ณด๊ด€ํ•จ
์ตœ๊ทผ์— ์˜ฌ๋ผ์˜จ ๊ธ€
์ตœ๊ทผ์— ๋‹ฌ๋ฆฐ ๋Œ“๊ธ€