System Structure

  • CPU

    • ๋ฉ”๋ชจ๋ฆฌ๋กœ๋ถ€ํ„ฐ ๋งค ํด๋Ÿญ ์‚ฌ์ดํด๋งˆ๋‹ค ๋ช…๋ น(instruction)์„ ํ•œ ์ค„์”ฉ ์ฝ์–ด ์‹คํ–‰

    • register

      • CPU์•ˆ์— ๋ฉ”๋ชจ๋ฆฌ๋ณด๋‹ค ๋” ๋น ๋ฅด๋ฉด์„œ, ์ •๋ณด๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ๊ณต๊ฐ„.

      • ๋Œ€ํ‘œ register : Program Counter(pc)

    • mode bit

      • ์šด์˜์ฒด์ œ์ธ์ง€, ์‚ฌ์šฉ์žํ”„๋กœ๊ทธ๋žจ์ธ์ง€ ๊ตฌ๋ถ„์„ ํ•ด์ฃผ๋Š” bit

      • ์‚ฌ์šฉ์ž ํ”„๋กœ๊ทธ๋žจ์˜ ์ž˜๋ชป๋œ ์ˆ˜ํ–‰์œผ๋กœ, ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋žจ ๋ฐ ์šด์˜์ฒด์ œ์— ํ”ผํ•ด๊ฐ€ ๊ฐ€์ง€ ์•Š๋„๋ก ํ•˜๊ธฐ ์œ„ํ•œ ๋ณดํ˜ธ์žฅ์น˜.

      • ํ•˜๋“œ์›จ์–ด(HW, ์ดํ•˜ HW) ์ ์œผ๋กœ ๋‘๊ฐ€์ง€ ๋ชจ๋“œ์˜ operation์ง€์›

        • 1: ์‚ฌ์šฉ์ž๋ชจ๋“œ

          • ์‚ฌ์šฉ์ž ํ”„๋กœ๊ทธ๋žจ ์ˆ˜ํ–‰

          • ์ œํ•œ๋œ instruction๋งŒ ์ˆ˜ํ–‰. (๋ณด์•ˆ์— ๋”ฐ๋ผ)

          • ์ปค๋„๋ชจ๋“œ๋ฅผ ์ˆ˜ํ–‰์ค‘์ด๋‹ค๊ฐ€, ์‚ฌ์šฉ์ž ํ”„๋กœ๊ทธ๋žจ์—๊ฒŒ CPU๋ฅผ ๋„˜๊ธฐ๊ธฐ ์ „์— mode bit๋ฅผ 0์œผ๋กœ ๋ณ€๊ฒฝ.

        • 0: ์ปค๋„๋ชจ๋“œ (=๋ชจ๋‹ˆํ„ฐ๋ชจ๋“œ, ์‹œ์Šคํ…œ๋ชจ๋“œ)

          • OS ์ฝ”๋“œ ์ˆ˜ํ–‰

          • ๋ณด์•ˆ์„ ํ•ด์น  ์ˆ˜ ์žˆ๋Š” ์ค‘์š”ํ•œ ๋ช…๋ น์–ด๋Š” ์ปค๋„ ๋ชจ๋“œ์—์„œ๋งŒ ์ˆ˜ํ–‰์ด ๊ฐ€๋Šฅํ•œ 'ํŠน๊ถŒ ๋ช…๋ น'์œผ๋กœ ๊ทœ์ •ํ•œ๋‹ค.

          • ๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผ ๋ฟ๋งŒ์ด ์•„๋‹ˆ๋ผ, I/O ๋””๋ฐ”์ด์Šค ์ ‘๊ทผ ํ˜น์€ ๋ชจ๋“  instruction์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.

          • ์ธํ„ฐ๋ŸฝํŠธ๋‚˜ ์˜ˆ์™ธ์ƒํ™ฉ์—์„œ ํ•˜๋“œ์›จ์–ด๊ฐ€ mode bit๋ฅผ 0์œผ๋กœ ๋ณ€๊ฒฝ.

    • interrupt line (interrupt request line)

      • I/O ๋””๋ฐ”์ด์Šค์—์„œ ๋ฐœ์ƒํ•œ ์ด๋ฒคํŠธ(์ธํ„ฐ๋ŸฝํŠธ)๋ฅผ ์•Œ๋ ค์ค„ ๋•Œ ์‚ฌ์šฉ๋˜๋Š” ์žฅ์น˜.

        • ์˜ˆ: ํ‚ค๋ณด๋“œ ์ž…๋ ฅ์ด ๋๋‚ฌ๊ฑฐ๋‚˜, ๋””์Šคํฌ์—์„œ ์ฝ์–ด์˜ค๋Š” ์ž‘์—…์ด ๋๋‚ฌ์Œ์„ ์•Œ๋ฆด๋•Œ ๋“ฑ

      • CPU๋Š” ํ•˜๋‚˜์˜ insturction์„ ์ˆ˜ํ–‰ํ•œ ํ›„, interrupt line์„ ํ™•์ธํ•˜์—ฌ interrupt๊ฐ€ ๋ฐœ์ƒ๋Š”์ง€ ํ™•์ธํ•˜๊ณ , ๋ฐœ์ƒ ์‹œ, ํ˜„์žฌ pc ์ฃผ์†Œ๋ฅผ ์ฝ์–ด๋“ค์ด๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ์ž ์‹œ ํ•˜๋˜ ์ž‘์—…์„ ๋ฉˆ์ถ”๊ณ  cpu๋ฅผ ๋ˆ„๊ฐ€ ์“ฐ๊ณ ์žˆ์—ˆ๋“  ์ƒ๊ด€์—†์ด ์ œ์–ด๊ถŒ์„ OS๋กœ ๋„˜๊ธด๋‹ค.

      • OS๋Š” interrupt๋งˆ๋‹ค ์ƒํ™ฉ์— ๋งž๊ฒŒ ์ฒ˜๋ฆฌํ•ด์•ผํ•˜๋Š” ์ปค๋„ ํ•จ์ˆ˜๋กœ ์ •์˜๋œ ์ธํ„ฐ๋ŸฝํŠธ ๋ฒกํ„ฐ๋ฅผ ์ฐธ์กฐํ•˜์—ฌ ์ธํ„ฐ๋ŸฝํŠธ ์ฒ˜๋ฆฌํ•˜๋Š” ์ปค๋„ ํ•จ์ˆ˜๋ฅผ ์ˆ˜ํ–‰ํ•œ๋‹ค.

        • ์ธํ„ฐ๋ŸฝํŠธ ๋ฒกํ„ฐ = [์ธํ„ฐ๋ŸฝํŠธ ๋ฒˆํ˜ธ: ์ธํ„ฐ๋ŸฝํŠธ ์ฒ˜๋ฆฌ์ฃผ์†Œ(์ฒ˜๋ฆฌ๋ฃจํ‹ด, ํ•ธ๋“ค๋Ÿฌ)]

  • MEMORY

    • CPU์˜ ์ž‘์—…๊ณต๊ฐ„

  • DISK

    • ํŒŒ์ผ์— ์ €์žฅ, ์ฝ์–ด๋“ค์ด๋Š” I/O์ธก๋ฉด

  • device controller

    • ๊ฐ I/O ๋””๋ฐ”์ด์Šค๋“ค์€ ๋””๋ฐ”์ด์Šค๋ฅผ ์ „๋‹ดํ•˜๋Š” ์ž‘์€ cpu๊ฐ™์€ ๊ฒƒ๋“ค์ด ๋ถ™์–ด์žˆ๋Š”๋ฐ ์ด๋ฅผ device controller๋ผ๊ณ  ํ•œ๋‹ค. (disk controller, usb controller, graphic controller,...)

    • I/O ๋””๋ฐ”์ด์Šค๋Š” ์„ฑ๋Šฅ (์ฒ˜๋ฆฌํ•˜๋Š” ์†๋„) ์ด ๋งŽ์ด ์ฐจ์ด๊ฐ€ ๋‚œ๋‹ค.

      • ์˜ˆ: Disk๋Š” CPU์— ๋น„ํ•ด 100๋งŒ๋ฐฐ ๊ฐ€๋Ÿ‰ ๋Š๋ฆผ.

        ๋”ฐ๋ผ์„œ, CPU๊ฐ€ ์ง์ ‘ Disk๋ฅผ ๊ด€์žฅํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, disk controller๊ฐ€ ๋‹ด๋‹น

  • local Buffer:

    • ๋ฉ”์ธ CPU์˜ ์ž‘์—…๊ณต๊ฐ„์ธ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์žˆ๋“ฏ, ๊ฐ device controller์˜ ์ž‘์—…๊ณต๊ฐ„.

  • timer

    • ํŠน์ • ํ”„๋กœ๊ทธ๋žจ์ด CPU๋ฅผ ๋…์ ํ•˜๋Š” ๊ฒƒ์„ ๋ง‰๊ธฐ ์œ„ํ•œ ํ•˜๋“œ์›จ์–ด ์žฅ์น˜

    • ์ปดํ“จํ„ฐ๊ฐ€ ์ผœ์ง€๋ฉด, OS๊ฐ€ CPU๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๊ฐ€ ์‚ฌ์šฉ์ž ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰์‹œ timer์— ๊ฐ’์„ ์„ธํŒ…ํ•œ ํ›„ CPU๋ฅผ ์‚ฌ์šฉ์ž ํ”„๋กœ๊ทธ๋žจ์—๊ฒŒ ๋„˜๊ฒจ์ค€๋‹ค. ์ด ๋•Œ, ์‚ฌ์šฉ์ž ํ”„๋กœ๊ทธ๋žจ์€ timer์— ์„ธํŒ…ํ•œ ์‹œ๊ฐ„์ด ๋‹ค ๋˜๋ฉด, CPU๋กœ interrupt๋ฅผ ๊ฑธ์–ด์ค€๋‹ค. (๋งค ํด๋Ÿญ ์‚ฌ์ดํด๋งˆ๋‹ค 1์”ฉ ๊ฐ์†Œํ•˜๋ฉด์„œ ํƒ€์ด๋จธ ๊ฐ’์ด 0์ด ๋˜๋ฉด ํƒ€์ด๋จธ ์ธํ„ฐ๋ŸฝํŠธ ๋ฐœ์ƒ)

    • time sharing(์‹œ๋ถ„ํ• )์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ๋„๋ฆฌ ์‚ฌ์šฉ๋จ.

  • DMA (Direct Memory Access)

    • ์›๋ž˜๋Š” CPU๋งŒ ๋ฉ”๋ชจ๋ฆฌ์— ์ ‘๊ทผํ–ˆ์—ˆ๋Š”๋ฐ, CPU์— ๋…๋ฆฝ์ ์œผ๋กœ ์ง์ ‘ ๋ฉ”๋ชจ๋ฆฌ์— ์ ‘๊ทผํ• ์ˆ˜ ์žˆ๊ฒŒ ๋จ.

    • ์ง์ ‘ ๋ฉ”๋ชจ๋ฆฌ์— ์ ‘๊ทผํ•˜๋Š” ์ปจํŠธ๋กค๋Ÿฌ.

    • I/O์žฅ์น˜์˜ ๋ฐ์ดํ„ฐ๋Š” device controller์— ์˜ํ•ด local buffer๋กœ ์ด๋™ํ•œ๋‹ค.

      ์ด ๋•Œ ์ „์†กํ•  ๋ฐ์ดํ„ฐ๊ฐ€ ๋งŽ์€ ๊ฒฝ์šฐ, ๋งŽ์€ ์–‘์˜ ๋ฐ์ดํ„ฐ๋ฅผ memory๋กœ copyํ•˜๋Š” ์ž‘์—…์„ cpu๊ฐ€ ํ•˜๊ฒŒ ๋˜๋ฉด ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ํฌ๋‹ค. ์ด๋ฅผ ๋ณด์™„ํ•˜๊ธฐ ์œ„ํ•ด ์ƒ๊ฒผ๋‹ค. DMA๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ชจ๋‘ copy(์ „์†ก)ํ•œ ํ›„์— ์ „์†ก ์™„๋ฃŒ๋œ ์ธํ„ฐ๋ŸฝํŠธ๋ฅผ ๋‹จ ํ•œ๋ฒˆ๋งŒ ๊ฑธ๋ฉด ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ๊ฐ์†Œํ•œ๋‹ค.

    • local buffer์˜ ํŠน์ • ํฌ๊ธฐ (๋ธ”๋Ÿญ or page์ •๋„์˜ ๋ฐ์ดํ„ฐ)๊ฐ€ ์Œ“์ด๋ฉด, ๊ทธ ๋•Œ cpu์— ํ•œ๋ฒˆ interrupt๋ฅผ ๊ฑธ์–ด์คŒ.

      (DMA๊ฐ€ Memory์— ๋‚ด์šฉ์„ copyํ•ด์ฃผ๊ณ , ๋ธ”๋Ÿญ ๋‹จ์œ„์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์Œ“์€ ๊ฒฝ์šฐ์—๋งŒcpu์— ์•Œ๋ ค์ฃผ์–ด interrupt๋‹นํ•˜๋Š” ๋นˆ๋„๋ฅผ ์ค„์—ฌ์คŒ)

    • cpu์˜ ์ค‘์žฌ ์—†์ด device controller๊ฐ€ device์˜ buffer storage๋‚ด์šฉ์„ ๋ฉ”๋ชจ๋ฆฌ์— block ๋‹จ์œ„๋กœ ์ง์ ‘ ์ „์†ก

    • byte๋‹จ์œ„๊ฐ€ ์•„๋‹Œ block(ํ˜น์€ page) ๋‹จ์œ„๋กœ ์ธํ„ฐ๋ŸฝํŠธ ๋ฐœ์ƒ.

  • Memory Controller

    • CPU์™€ DMA๊ฐ€ ๋™์‹œ์— ์ ‘๊ทผํ•˜์ง€ ๋ชปํ•˜๋„๋ก ๊ตํ†ต์ •๋ฆฌํ•˜๋Š” ์—ญํ•  ์ˆ˜ํ–‰.

Last updated