Interrupt-based IO
CPU๋ ๋ ๊ฐ์ง์ ์ํ, ํ๋๋ ์ผ๋ฐ์ ์ธ device๋ฅผ ์คํํ๋ ์ํ์ ๋ ๋ฒ์จฐ๋ Handler๋ฅผ ์คํํ๋ ์ํ์ด๋ค. IO๋ Idle ์ํ๋ก ์๋ฌด๊ฒ๋ ์ํ๊ณ transferring์ ๋ฌด์ธ๊ฐ ์ํํ๋ ์ํ์ด๋ค. IO๊ฐ request๋ฅผ ๋ณด๋ด๋ฉด CPU๋ ๋ค๋ฅธ ํ๋ก๊ทธ๋จ ์๋ฌด๊ฑฐ๋(์ค์ผ์ค๋ฌ๊ฐ ์ ํํ ํ๋ก๊ทธ๋จ) ์คํ์ํจ๋ค. IO device๊ฐ ์ผ์ ๋ค ํ๋ฉด CPU๋ interrupt๋ฅผ ๋ฐ๊ณ Handler๋ก ์ ํ๋ฅผ ํ๊ฒ ๋๋ค. Handler๋ฅผ ์คํํ๊ณ ๋ค์ ์๋ ์ํํ๋ ๊ฒ์ผ๋ก ๋์์จ๋ค. CPU์์ IO device๋ก Interrupt๋ฅผ ๋ณด๋ด๊ธฐ๋ ํ๋ค. (์ด๋ฐ ๋ถ๋ถ)
Instruction Execution Cycle
๋ฉ๋ชจ๋ฆฌ ์์ ์๋ Instruction sequence๋ฅผ ์ฝ์ด์ ์คํํ๋ ๊ฒ์ ๋งํ๋ค. ๊ทธ ์คํ๋ ๊ฒฐ๊ณผ๋ฅผ ๋ค์ ๋ฉ๋ชจ๋ฆฌ์ ์ง์ด๋ฃ๋๋ค.
Main Memory
๊ฐ ๋ฉ๋ชจ๋ฆฌ์ ์ซ์๊ฐ ์๋๋ฐ ์ฃผ์๋ฅผ ์๋ฏธํ๋ค. ๋์ง์คํฐ๋ ์๊ณ ๋น์ธ๋ค. CPU ์์ ์์ผ๋ฏ๋ก ์์ฒญ๋๊ฒ ๋น ๋ฅด๋ค. load์ store ๋ ๊ฐ๋ง ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋ด๋นํ๋ค. load๋ ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋์ง์คํฐ๋ก ์ฎ๊ธฐ๋ ๊ฒ์ ๋งํ๊ณ store๋ ๋์ง์คํฐ์ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ๋ก ์ฎ๊ธฐ๋ ๊ฒ์ ์๋ฏธํ๋ค.
Storage Structure
์ ์ผ ๋น ๋ฅด๊ณ ๋น์ผ ๊ฒ์ ๋์ง์คํฐ์ด๋ค. Cache๊น์ง๋ CPU์์ ์์ด์ ๋งค์ฐ ๋น ๋ฅด๋ค. ์ ์ ์ ์ ์์ ๋๋ฉด ์ง์์ง๋ ๊ฐ์ ์ฐจ์ด๋ก ๋๋๊ณ ์๋ค. nonvolatile์ SSD, flash memory, NVRAM๋ฑ์ด ์๋ค. Optical disk๋ CD์ ๊ฐ์ ๊ฒ์ ๋งํ๋ค.
Size and Speed of Storage
๋์ง์คํฐ๋ 1KB๋ฏธ๋ง์ด๋ค. ๋น์ธ์ ๋ง์ด ๋ชป๋ฃ๋๋ค. cache๊ฐ ์๊ฐ๋ณด๋ค CPU์์ ์ฐจ์งํ๋ ๋น์ค์ด ํฌ๋ค. ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ์ ๋์ง์คํฐ์ ์๋๋ฅผ ๋น๊ตํด๋ณด๋ฉด ๊ฑฐ์ 320๋ฐฐ ์ ๋ ๋๋ค. SSD์ ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ์ ์๋ ์ฐจ์ด๋ ๋ง์ด ๋๋ค.
IO Device Access
Modern ๋ฐฉ์์์๋ Interrupt๋ฅผ ์ฌ์ฉํ๋ค. IO Operation์ด๋ผ๋ ๊ฒ์ device์์ ๋ฉ๋ชจ๋ฆฌ๊น์ง์ ๋ฐ์ดํฐ ์ด๋์ ์๋ฏธํ๋ค.
IO Device Access
Interrupt๊ฐ ์์๋. CPU๊ฐ IO deviceํํ ์์ฒญ์ ํ๋ค.(local buffer๊น์ง) ์์ง ์๋์๋ค๊ณ ํ๋ฉด ๋ค์ ๋์์์ ๊ธฐ๋ค๋ฆฐ๋ค. CPU๋ IO Device์ ์ํ๋ฅผ ๊ณ์์ ์ผ๋ก ๋ชจ๋ํฐ๋ง ํด์ผ ํ๋ค.
Interrupt driven IO Cycle
IO controllerํํ IO operation์ ์์ฒญ์ ํ๋ฉด CPU๋ ์ณ๋ค๋ณผ ํ์๊ฐ ๋์ด์ ์๋ค. Interrupt๊ฐ ์๊ธฐ ๋๋ฌธ์ด๋ค. IO Operation์ ์ข ๋ฃํ๋ฉด ์ ํธ(Interrupt)๊ฐ ์ค๊ณ Interrupt Handling์ ํ๊ฒ ๋๋ค. ๋ค ๋๋๋ฉด ์๋์ Task๋ก ๋์์์ ํ๋ ์ผ์ ๋ค์ ํ๊ฒ ๋๋ค.
๋ง์ฐ์ค๊ฐ ํด๋ฆญ์ ํ๋ฉด Device Controller๊น์ง ๋ค์ด์ค๊ฒ ๋๋๋ฐ, SSD ๋ Hard Disk๋ฅผ ์ฌ์ฉํ๋ค๊ณ ๊ฐ์ ํด๋ณด์. ์ด์ ๊ฒฝ์ฐ 512Byte ์ ๊ฒฝ์ฐ ํ ์ฝ์ด์ค๊ฒ ๋๋ ๊ฒฝ์ฐ๊ฐ ์กด์ฌํ๋ค. ๊ทธ ๊ฒฝ์ฐ CPU๊ฐ ์ฎ๊ฒจ์ผ ํ๋๋ฐ 512 ๋ฒ ์ฎ๊ฒจ์ผ ํ๋ค. ๋ถํธํด์ง ๊ฒฝ์ฐ๊ฐ ๋๋ค. ๋ฌผ๋ก IO Device์์ ์ค๋ ๊ฒ์ ๊ฐ๋ฅํ์ง๋ง CPU๊ฐ ํผ์ ๋ ๋ผ์ผ ํ๋ ๊ฒฝ์ฐ, ํด์ ๋ฐฉ๋ฒ์ด ์์ด์ผ ํ๋ค. ๊ทธ๋์ DMA ๋ผ๋ ๊ฒ์ด CPU๊ฐ Device controller์๊ฒ ๋ถํ์ ํ๊ณ Device์์ ๋ฉ๋ชจ๋ฆฌ๋ก ์ง์ ์ ๋ฌํ๊ฒ ๋๋ค. Local buffer๊ฐ ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ๊น์ง ์ด๋ํ๋ค๋ ๊ฒ์ด๋ค.
๋ชจ๋ Device์ ๋ํด์ DMA๋ฅผ ์ฐ๋ฉด ์ข์ง๋ ์๋ค. ์๋ํ๋ฉด ๊ตฌํํ๋๋ฐ ๋น์ธ๊ณ ๋ณต์กํด์ง๋ค. ๋ง์ฐ์ค๋ฅผ ๋ฐ์ ธ๋ณด๋ฉด ๋ฐ์ดํฐ๊ฐ ํ ์ค๋ ๊ฒ์ด ์๋๋ผ ์กฐ๊ธ์ฉ ์ค๊ธฐ ๋๋ฌธ์ CPU ๊ฐ ์ฎ๊ธฐ๋ฉด ๋๋ ๊ฒ์ DMA๋ฅผ ๋ชจ๋ ์ค์นํด ๋ฒ๋ฆฌ๋ฉด ๋น์ฉ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค. DMA๋ Block device์ ์ฃผ๋ก ์ฌ์ฉ๋๋ค.
Computer System Architecture
Single Processor system
์ ๋ ดํ๊ณ , ๊ฐ๋จํ๋ค?
Multi Processor System,
ํ๋์ ์ปดํจํฐ์ CPU๊ฐ ์ฌ๋ฌ๊ฐ๋ฅผ ์๋ฏธํ๋ค. CPU์ ํจํค์ง์ ํ๋์ง๋ง ๋ช ๋ น์ ์คํํ ์ ์๋ ์ ๋์ด ์ฌ๋ฌ๊ฐ ๋ค์ด๊ฐ ์๋ ๊ฒ์ด๋ค. ์ฌ๋ฌ ๊ฐ์ core ๊ฐ ์์ด์ ์ฌ๋ฌ ๊ฐ์ ๋ช ๋ น์ ์คํํ ์ ์๋ ๊ฒ์ด๋ค. ์ค๋ฅธ์ชฝ ์ฌ์ง์ ๊ฒฝ์ฐ Multi Core Processor System์ด๋ผ๊ณ ๋ถ๋ฅด๋๊ฒ ์ข๋ค. ์ปดํจํฐ์ CPU๊ฐ ๋ ๋์ธ ๊ฒ๊ณผ ์ปดํจํฐ๊ฐ 2๋ ์ธ๊ฒ์ ๋ฌด์์ด ๋ค๋ฅผ๊น. Tightly coupled system์ด๋ฉด ๋ ๊ฐ์ CPU๋ฅผ ๊ฐ์ง๊ณ ์๋ค๊ณ ํํํ๋ค. Shared bus๊ฐ ๋ณ๋๋ก ์๊ฒ ๋๋ฉด ์ปดํจํฐ๊ฐ ๋ ๊ฐ์ธ ๊ฒ์ด๋ค. Clock, ๋ชจ๋ CPU์ ๋ช ๋ น์ clock์ ๋๊ธฐํ๋์ด์ ์คํํ๊ฒ ๋๋ค. ์ด๋ค ์๋ฏธ๋ก๋ ์ฌ์ฅ์ ๋ฐ๋๊ณผ ๋น์ทํ ๊ฒ์ด๋ค.
Multi Processor System,
Symmetric, ๋์นญ์ ์์คํ . ๊ฐ ํ๋ก์ธ์์ ์ญํ ์ด ๋ฌด์์ธ๊ฐ๊ฐ ํ๋จ ๊ธฐ์ค์ด๋ค.
Assymmetric์ ํ๋๊ฐ Master๊ฐ ๋๊ณ ๋๋จธ์ง๋ Slave๊ฐ ๋๋ค. ๋ํ์ ์ธ ์) ํด๋ํฐ์ Multi-Processor ๋ฐฉ์์ผ๋ก ๋์๊ฐ๋ค. ๊ทธ ๊ด๊ณ๋ Master Slave ํ์์ผ๋ก ๋์๊ฐ๋ค.
NUMA System
CPU๊ฐ ์์ ์ ๋ฉ๋ชจ๋ฆฌ์ ์ ๊ทผํ๋ ์๋๋ ๊ต์ฅํ ๋น ๋ฅด๋ค. ๊ทธ๋ ๋ค๋ฉด CPU3๊ฐ ๋ฉ๋ชจ๋ฆฌ2์ ์ ๊ทผํ ์ ์๋๊ฐ? CPU2๋ฅผ ํตํด์ ์ ๊ทผํ ์ ์๋ค. CPU ์ ์ฅ์์ ๋ฉ๋ชจ๋ฆฌ Access ์๋๊ฐ ๋๊ฐ์ง ์๊ณ ๋ค๋ฅด๊ฒ ๋๋ค.
Multi Processor System
์ฅ์ , ํ ๋ฒ์ ์ฌ๋ฌ๊ฐ์ง ์ผ์ ํ ์ ์๋ค. ๋์ผ ์๊ฐ์ ๋ ๋ง์ ์ผ์ ํ ์ ์๋๋ฐ ๊ทธ๊ฒ์ throughput์ด ๋์์ง๋ค๊ณ ํํํ๋ค. ๋ณ๋ ฌ ์ฒ๋ฆฌ๋ฅผ ๊ณ ๋ คํ์ง ์๊ณ ๊ตฌ์ฑํ๊ฒ ๋๋ฉด single์ด๋ mutie ๋ ๊ฐ์ ์๋ ์ฐจ์ด๊ฐ ๋ณ๋ก ์์ด์ง๋ค. ์ฆ ํ๋ก๊ทธ๋จ ํ๋๊ฐ ๋์๊ฐ๋ ์๋๊ฐ ๋นจ๋ผ์ง๋ ๊ฒ์ ์๋๋ค. ํ๋์ ํ๋ก๊ทธ๋จ์ 4๊ฐ์ง ๊ฐ๋๋ก ๋๋ ์ ์คํํด๋ณด๋ฉด ์ค์ ๋ก 4๋ฐฐ๊ฐ ๋นจ๋ผ์ง๋ค. ์ปดํจํฐ๋ฅผ ์ฌ๋ฌ ๊ฐ ์ฌ๋ ๊ฒ๋ณด๋ค ์ ๋ ดํ์ง๋ง Single๋ณด๋ค๋ Performance๊ฐ ์ข๋ค๊ณ ์ ๋ฆฌํ ์ ์๋ค
Clustered System
Loosely coupled system, ๋ฒ์ค clock์ด ์ฐ๊ฒฐ๋ ๊ฒ์ ์๋๋ค. ์ด ๋ป์ ์ฒซ ๋ฒ์งธ๋ก ์ปดํจํฐ๊ฐ ๋คํธ์ํฌ๋ก ์ฐ๊ฒฐ๋์ด์๋ค๋ ๊ฒ์ด๋ค. High speed Network๋ก ์ฐ๊ฒฐ๋์ด์๋ค. ๋ ๋ฒ์งธ๋ก Storage๋ก ์ฐ๊ฒฐ๋์ด์๋ค. ๊ณต์ ํ๋ Storage๋ Secondary Storage๋ฅผ ์๋ฏธํ๋ค. SAN์ด๋ผ๋ ๊ฒ์ด ์๋๋ฐ, ๋ฌผ๋ฆฌ์ ์ผ๋ก ๋ณด๋ฉด Disk๊ฐ ์ฌ๋ฌ๊ฐ ์๋ ๊ฒ์ด์ง๋ง ๋คํธ์ํฌ๋ก ์ ์ฐ๊ฒฐํ๋ฉด ํ๋์ ๊ฑฐ๋ํ Storage๋ก ๋ณผ ์ ์๊ฒ ๋๋ค. Storage area network๋ ์ฌ๋ฌ ๊ฐ์ ์๋ฒ์ ๋ฐ์ดํฐ๊ฐ ๋คํธ์ํฌ๋ก ์ฐ๊ฒฐ๋์ด์๋ค๋ ๊ฒ์ด๋ค. Lock manager๋ผ๋ ๊ฒ์ด ํ์ํ๋ค. ํ์ผ์ด ์ฌ๋ฌ๊ฐ์ ์ ์ฅ์์ ๋ถ์ฐ๋์ด์๊ณ ๋ถ๋ถ์ ์ผ๋ก lock์ ํ์ด์ฃผ๊ฑฐ๋ ๊ฑธ๊ฑฐ๋ ํด์ผํ๋๋ฐ ๊ทธ๊ฒ์ ๊ด๋ฆฌํด์ฃผ๋ ๊ฒ์ DLM์ด๋ผ๊ณ ๋ถ๋ฅธ๋ค.
Purpose of Clustered System
์ด์ ๋ ๋๊ฐ์ง. ํ๋๋ ์์ ์ฑ ํ๋๋ ์๋์ด๋ค. Assymetric clustering, 1๋ฒ ์๋ฒ๊ฐ ํ ๋ 2๋ฒ ์๋ฒ๋ ์๋ฌด๊ฒ๋ ์ํ๋ค. 1๋ฒ ์๋น์ค์ ์ํ๋ฅผ ๊ณ์ ๋ฏธ๋ฌ๋ง์ ํ๋ค. ๋ํ 1๋ฒ ์๋ฒ๋ฅผ ๊ณ์ ์ณ๋ค๋ณด๋๋ฐ ์๋ฒ๊ฐ ์ฃฝ๊ฒ๋๋ฉด 2๋ฒ์ด ๋ฐฑ์ ์ ํ๊ฒ ๋๋ค. Hot standby model ์ด๋ผ๊ณ ๋ถ๋ฅธ๋ค. Symmetric, ์๋น์ค๋ฅผ ๋ ๋ค ์ ๊ทผํ๋๋ก ๋ง๋ค์ด์ค๋ค. ์ฌ๊ธฐ์ ์๋ก๊ฐ ์๋ก๋ฅผ ์ณ๋ค๋ณด๊ฒ ํด์ค๋ค. Realiability, ํ๋๋ Graceful degradation, ์ฃฝ์ ๋งํผ๋ง ๋ชป๋์๊ฐ๊ณ ๋๋จธ์ง๋ ๊ณ์ ๋๊ณ ์๋๋ก ๋ง๋ค์ด์ค๋ค. ๋ํ Fault tolerant๋ ๋น์ทํ ๊ฐ๋ ์ด๊ธด ํ์ง๋ง, ์์คํ ์ ์ผ๋ถ๊ฐ ์ฃฝ์๋ค๊ณ ํ๋๋ผ๋ ์์คํ ์ ์ ์งํ ์ ์๊ฒ ํ๋ ์ฑ์ง์ ์๋ฏธํ๋ค. ์ถ๊ฐ์ ์ธ ๋ถ๋ถ์ ์๊ตฌํ๋ค. ๋ํ high-performace๋ฅผ ๋ง๋ค๊ธฐ ์ํด์ ์ฌ๋ฌ ๊ฐ์ ์ปดํจํฐ๋ฅผ ๋ฌถ๋ ๋ฐฉ๋ฒ์ด ๋ ์ฌ์ธ ์ ์๋ค. ํ์ง๋ง ๋น ๋ฅธ ์๋๋ก ๋ง๋ค๊ธฐ ์ํด์๋ Applicaiton์ด ๋ณ๋ ฌ์ฒ๋ฆฌ๊ฐ ๊ฐ๋ฅํด์ผ ํ๋ค.
Operation System Structure
CPU์์ ํ๋ก๊ทธ๋จ์ ์คํํ๋ค๊ฐ IO Operation์ด ํ์ํ๊ฒ ๋์ Request๋ฅผ ๋ณด๋ด์ ๋์ํ๊ฒ ๋๋๋ฐ, ๊ทธ ์๊ฐ์ CPU๊ฐ ๋๊ณ ์๋ ๊ทธ๋ํ๋ฅผ ๋ณผ ์ ์๋ค. ๊ฐ๋งํ ๋๊ณ ์๋๋ฐ ์ด๊ฒ์ ํด๊ฒฐํ๊ณ ์ ํ๋ค. ํ๋ก๊ทธ๋จ์ ๋ ๊ฐ ์ด์ ๋๊ณ ๊ฐ์๋ ๊ฒ์ด๋ค. ๊ทธ ๋ ธ๋ ์๊ฐ ์ด๋ก์ ํ๋ก๊ทธ๋จ์ ๋๋ฆฌ๊ฒ ํ๋ ๋ฐฉ์์ด๋ค. Multiprogramming์ด๋ผ๋ ๊ฒ์ ๋ชจํฐ๋ธ์ด๋ค. ๋์์ ์ฌ๋ฌ๊ฐ์ ํ๋ก๊ทธ๋จ์ ๋๋ฆฌ๋ ์ด์ ๋ ์์์ ์ต๋ํ ํ์ฉํ๊ธฐ ์ํจ์ด๋ค. CPU๋ Disk๋ฅผ ์ง์ ์ฝ์ ์ ์๋ค. ํ๋ก๊ทธ๋จ์ด ๋ฌด์กฐ๊ฑด ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ์์์ด์ผ ํ๋ค. Multiprogramming ์ switching์ด ์์ฃผ ์ด๋ฃจ์ด์ง์ง๋ ์๋๋ค. ์ด๊ฒ๋ณด๋ค ๊ฐ์ ๋ ๋ฐฉ์์ด multitasking ๋ฐฉ๋ฒ์ด๋ค.
Timesharing