๋์คํฌ์ ๊ตฌ์กฐ
๋์คํฌ ์ค์ผ์ฅด๋ง์ ์์๋ณด๊ธฐ ์ ์ ๋์คํฌ์ ๊ตฌ์กฐ์ ๋ํด ์์ธํ ์์๋ณด์.
๋์คํฌ๋ ์๋์ ๊ฐ์ด ๊ตฌ์ฑ๋๋ค.
๋์คํฌ๋ ํฌ๊ฒ track๊ณผ sector๋ก ๊ตฌ์ฑ๋๋ค.
๋จผ์ track์ ํ ๋ฉด์ ์กด์ฌํ๋ ๊ฒ์ผ๋ก ์ ๊ทธ๋ฆผ์์ ์์ ์์ชฝ์ผ๋ก ๋ค์ด๊ฐ์๋ก ํธ๋ ๋ฒํธ๊ฐ ์ปค์ง๋ค.
์ฝ๊ฐ ๋ฌ๋ฆฌ๊ธฐ ๊ฒฝ์ฃผํ ๋ track์ผ๋ก ์๊ฐํ๋ฉด ์ฝ๋ค.
sector๋ ๊ฐ ํธ๋์ ์กด์ฌํ๋ ๋ถ๋ถ์ผ๋ก ํ sector๋ฅผ ์ฝ์์ผ๋ก์จ ๋ณดํต ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ฌ ์ ์๋ค.
cylinder๋ ๊ฐ์ ์์น์ ์๋ ํธ๋๋ค์ ์๋ฏธํ๊ณ , surface๋ ๋์คํฌ์ ํ ๋ฉด์ ์๋ฏธํ๋ค.
๋์คํฌ๋ฅผ ์ฝ๊ธฐ ์ํด์๋ ๋์คํฌ ์์ ํตํด์ ์ฝ์ด์ผ ํ๋ค. ์ด๋, ๋์คํฌ์ head์์ sector ๊ฐ์ ์ง์ ์ ์ผ๋ก ์ฝ๋๋ค.
sector์ sector ์ฌ์ด์๋ ๋ณด์ด์ง ์๋ ์ฑ ์ ์ด ์กด์ฌํ๋ค. ์ด๋ฌํ ์ฑ ์ ์์ ๋ณดํต ๋ฐ์ดํฐ๊ฐ ์ค๋ฅ๊ฐ ์๋์ง ์๋์ง ๊ฒ์ฆํ๋ ์ค๋ฅ ๊ฒ์ฌ๋ฅผ ์งํํ๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ๋๋ฌด ๋ง์ ๋ฐ์ดํฐ๋ฅผ ๋ด๋๋ก sector๋ฅผ ๋์ง๋ ์๋๋ค.
๋์คํฌ๋ ๋ณดํต ๋ค์๊ณผ ๊ฐ์ ๊ตฌ์กฐ๋ก ๊ฐ ์์๋ค์ ๋๋ค.
- 1๊ฐ์ disk pack = 1๊ฐ ์ด์์ disk
- 1๊ฐ์ disk = 1~2๊ฐ์ surface
- 1๊ฐ์ surface = 20 ~ 1500 tracks
- 1 track = 4 ~ 20๊ฐ์ sectors
- 1 sectors = 32 ~ 4096๊ฐ์ blocks
- 1 block = ํ๋ ์ด์์ sectors
- Rotation ์๋ = 3600 ~ 7200 rpm(3600 rpm์ 1์ด์ 60๋ฒ ํ์ ํ๋ค.)
๋์คํฌ๋ฅผ ์ฝ๋ ์์๋ ํ๋์ ํธ๋์ ์๋ ์นํฐ(๋ธ๋ก)๋ฅผ ์ ๋ถ ๋ ํ์ ๊ทธ๋ค์ cylinder๋ฅผ ๋๋ค. ์ดํ ๋ค์ ์์ชฝ ํธ๋์ผ๋ก ๋ค์ด๊ฐ๋ค.
์ด๋ฌํ ๋ฐฉ์ ๋๋ถ์ ์ฐ์์ ์ธ ๋ธ๋ก ๋ฐฐ์ด์ ํํํ ์ ์๋ ๊ฒ์ด๋ค.
๋์คํฌ I/O ์ ์ก ์๊ฐ
_Wait for Device_๋ ๋์คํฌ๊ฐ ์ถฉ๋ถํ 1์ด์ 60๋ฒ ๋์๊ฐ ๋๊น์ง ๊ฑธ๋ฆฌ๋ ์๊ฐ์ ์๋ฏธํ๋ค.
_Seek Time_์ ์ํ๋ ํธ๋์ผ๋ก ์ด๋ํ๊ธฐ๊น์ง ๊ฑธ๋ฆฌ๋ ์๊ฐ์ ๋งํ๋ฉฐ,
_Rotational Delay_๋ ์์ด ์ํ๋ Sector๊น์ง ์ด๋ํ๋ ๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ ๋งํ๋ค.
_Data Transfer_๋ Sector์์ ๋ฐ์ดํฐ๋ฅผ ์ค์ ๋ก ์ฝ๋ ๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ด๋ค.
_Access Time_์ _Seek Time_๊ณผ _Rotational Delay_๋ฅผ ํฉํ ๊ฒ์ ๋งํ๋ค.
CPU์ ์ฅ์์๋ ์ค์ ๋ก _Seek Time_๋ฅผ ์ค์ด๋ ๊ฒ์ด ์ฑ๋ฅ์ ํฅ์ํ ์ ์๋ ์์์ด๊ธฐ ๋๋ฌธ์ ์ด๋ฅผ ์ค์ด๋ ๊ฒ์ด ์ค์ํ๋ค.
๋ฐ๋ผ์ ๋์คํฌ ์ค์ผ์ฅด๋ง์ ํตํด _Seek Time_์ ์ค์ผ ์ ์๋๋ก ํด์ผ ํ๋ค.
๋์คํฌ ์ค์ผ์ฅด๋ง : FIFO
ํธ๋์ด ์จ ์์๋๋ก ์ฒ๋ฆฌํ๋ ๊ฒ์ด๋ค.
ํ์ง๋ง, ํธ๋์ ์ฒ๋ฆฌํ๊ธฐ ์ํด ๋๋ฌด๋ ๋ง์ ๊ฑฐ๋ฆฌ๋ฅผ ๊ฑฐ์ณ์ผ ํ๋ค. _Access Time_์ด ์ปค์ ธ ์ฑ๋ฅ์ด ์ ์ข์์ง๋ ๊ฒ์ด๋ค.
์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๋์จ ๊ฒ์ด SSTF(Shortest Seek Time First)์ด๋ค.
๋์คํฌ ์ค์ผ์ฅด๋ง : SSTF
์ด ๋ฐฉ์์ ์ ์ผ ๊ฐ๊น์ด ํธ๋์ ์ฐพ์๊ฐ๋ ๋ฐฉ์์ด๋ค.
ํ์ง๋ง, ์ฐ์ ์์์ ๊ธฐ๋ฐํ ๋ฐฉ์์ด๊ธฐ ๋๋ฌธ์ ๋ง์ฝ ํธ๋ ๋๋ฒ๊ฐ ์น์ฐ์ณ์ง ํธ๋๋ค์ด ๋ง๋ค๋ฉด, ๋ค์ ์๋ ํธ๋๋ค์ Starvation์ผ๋ก ์ธํด ์ ๊ทผํ์ง ๋ชปํ๋ ์ํฉ์ด ๋ฐ์ํ๋ค.
์ด๋ฐ ๋ฌธ์ ์ ์ ํด๊ฒฐํ๊ธฐ ์ํด SCAN์ด๋ผ๋ ๋ฐฉ์์ ์ฌ์ฉํ๋ค.
๋์คํฌ ์ค์ผ์ฅด๋ง : SCAN
SCAN์ Elevator Algorithm ๋๋ Look Policy๋ผ๊ณ ๋ ๋ถ๋ฆฐ๋ค.
ํ ๋ฐฉํฅ์ผ๋ก ์์ง์ด๋ ๊ฒ์ด ํน์ง์ธ๋ฐ, ์ด๋ ๊ฒ ํ๋ฉด Starvation ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋ค.
'๐ Knowledge > ์ด์์ฒด์ (OS)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์ด์์ฒด์ ] I/O Control : Polling, Interrupt Driven I/O, DMA๋ฐฉ๋ฒ์ด๋? (0) | 2024.05.13 |
---|---|
[์ด์์ฒด์ ] ์ธํฐ๋ฝํธ๋ ๋ฌด์์ด๊ณ , ์ด๋ป๊ฒ ๋ฐ์ํ ๊น (0) | 2024.05.12 |
[์ด์์ฒด์ ] ์ /์ถ๋ ฅ ๊ด๋ฆฌ(I/O Management) (0) | 2024.05.06 |
[์ด์์ฒด์ ] ํ์ผ ์์คํ ์ฌ๋ก(Linux) (0) | 2024.05.05 |
[์ด์์ฒด์ ] ๋ฐ์ดํฐ ๋ธ๋ก(Data Block)์ ๊ด๋ฆฌ (0) | 2024.05.05 |