ํ์ผ ์์คํ ์ ๋ฆฌ
๊ฐ์
์ค๋ ๊ธฐ๊ฐ ๋์ ์ ์ฅ๋์ด์ผํ๋ ์ ๋ณด์ ์ ์ฅ์๋ ๋ช๊ฐ์ง ์กฐ๊ฑด์ด ์๋ค.
-
ํ๋ก์ธ์ค๊ฐ ์ข ๋ฃ๋ ํ์๋ ์ ๋ณด๊ฐ ์ ์ง๋๋ ๋นํ๋ฐ์ฑ
-
๋ง์ ์ ๋ณด๋ฅผ ์ ์ฅํ ์ ์๋ ํฐ ์ฉ๋
-
๋ค์์ ํ๋ก์ธ์ค๊ฐ ๋์์ ์ ๊ทผ ๊ฐ๋ฅํ ์ ๊ทผ์ฑ
์ค๋ ๊ธฐ๊ฐ๋์ ํฐ ์ ๋ณด๋ฅผ ์ ์ฅํ๋ ์ฅ์น ์ค ํ๋์ธ Disk๋ ๊ณ ์ ๋ ํฌ๊ธฐ์ block๋ค๋ก ๊ตฌ์ฑ๋์ด์๋๋ฐ, ๋ค์๊ณผ ๊ฐ์ ์ง๋ฌธ๋ค์ ๋ถ๋ฌ์ผ์ผํฌ ์ ์๋ค.
-
Disk์ ์ ์ฅํ ์ ๋ณด๋ฅผ ์ด๋ป๊ฒ ์ฐพ์ ๊ฒ์ธ๊ฐ?
์ ๋ณด์ ์์ด ๋ฐฉ๋ํด์ ์ ๋ณด๋ฅผ ์ฐพ๊ธฐ๊ฐ ์ฝ์ง ์๋ค.
-
๋น ๊ณต๊ฐ์ ์ด๋ป๊ฒ ๊ด๋ฆฌํ ๊ฒ์ธ๊ฐ?
์๋ก์ด ์ ๋ณด๋ฅผ ์ ์ฅํ ๋ ๋น ๊ณต๊ฐ์ ์ฐพ์์ ์ฌ์ฉํด์ผํ๋ค.
-
์ฌ์ฉ์ ๋ณ ๊ถํ์ ์ด๋ป๊ฒ ๊ด๋ฆฌํ ๊ฒ์ธ๊ฐ?
๋ฐ์ดํฐ๋ฅผ ๋ณดํธํด์ผํ๋ค.
์ด ํด๋ต์ ํ์ผ ๊ณผ ํ์ผ์์คํ ์์ ์ฐพ์ ์ ์๋ค.
ํ์ผ
ํ์ผ์ ์ ์ฅ ์ฅ์น์ ์ ๋ณด๋ฅผ ์ ์ฅํ๋ ๊ธฐ๋ณธ ๋จ์์ด๋ค. byte ์ ๋ณด๋ค์ ์ฐ์์ผ๋ก ์ด๋ฃจ์ด์ ธ์์ผ๋ฉฐ, ์ฌ์ฉ์๋ ํ๋์ ๋จ์๋ก ํ์ผ์ ์ฌ์ฉํ๋ค. ํ์ผ์ uniqueํ path name์ด ์์ผ๋ฉฐ, ์ด๋ ํ์ผ์ ์ด๋ฆ์ ๊ฐ์ ์ ์์ผ๋ ์ ์ฅ๋ ๋๋ ํ ๋ฆฌ๊น์ง ๊ฐ์ ์๋ ์๋ค๋ ์๋ฏธ์ด๋ค. ๋ํ ํ์ผ์ ์ฌ์ฉ์๋ณ๋ก r,w,x ๊ถํ์ ์ ์ดํ ์ ์๋ค.
์ด๋ฌํ ํ์ผ์ ํน์ง์ผ๋ก ๋ดค์ ๋, ํฐ ์ ์ฅ์ฅ์น์์ ์ ์ฅ๋จ์๋ก ํ์ผ์ ์ด์ฉํ ์ ์๋ค.
ํ์ผ ์์คํ
ํ์ผ ์์คํ ์ ํ์ผ ์ฌ์ฉ๊ณผ ๊ด๋ จ๋ ์๋น์ค๋ฅผ ์ ๊ณตํด์ฃผ๋ ์์คํ ์ํํธ์จ์ด์ set์ด๋ค.
ํ์ผ
์ด๋ฆ ์ง๊ธฐ
ํ์ผ์ด๋ฆ.ํ์ฅ์
๋ก ์ด๋ฆ์ด ๊ตฌ์ฑ๋์ด์์ผ๋ฉฐ ํ์ฅ์๋ 3๊ฐ๊น์ง ์ธ์ํ์ง๋ง ์ฌ๋ฌ ๊ธ์๋ฅผ ์ ์ด๋ ์๊ด์๋ค. ์ ํต์ ์ผ๋ก ๋ช๋ช ํ์ผ์ ์ ์ํ๋ ํ์ฅ์๊ฐ ์์ผ๋ ์ฌ๋งํ๋ฉด ์งํค๋ ๊ฒ์ด ์ข๋ค.
ํ์ผ ๊ตฌ์กฐ
ํ์ผ์ ์์์ ์ค๋ช ํ๋ฏ์ด byte๋ค์ ์ฐ์์ด๋ฏ๋ก ์ด๋ค ๋ฐ์ดํฐ๊ฐ ๋ค์ด๊ฐ๋์ง, ์ด๋ค ๊ตฌ์กฐ๋ก ๋ค์ด๊ฐ๋์ง์ ๋ํ ์ ํ์ด ์๋ค. ๋ฐ์ดํฐ์ ๊ตฌ์กฐ๋ ํ์ผ์ ์ฌ์ฉํ๋ ์์ฉํ๋ก๊ทธ๋จ์ด ๊ฒฐ์ ํ๋ค. ์๋ฅผ ๋ค์ด 'ํ๊ธ๊ณผ ์ปดํจํฐ' ์์ฉํ๋ก๊ทธ๋จ์์๋ 'hwp'์ ํํ๋ก ํ์ผ์ ๊ตฌ์ฑํ๋ ๊ฒ์ด๋ค.
ํ์ง๋ง ์คํํ์ผ๋งํผ์ ์ด๋ค ํํ์ ๋ฐ์ดํฐ๊ฐ ํ์ํ ์ง๋ฅผ OS์์ ์ ์ํ๊ณ ์๋ค. ์์นด์ด๋ธ ํ์ผ (๋ผ์ด๋ธ๋ฌ๋ฆฌ ํ์ผ) ๋ํ ๊ทธ๋ ๋ค.
ํ์ผ์ root ๋๋ ํ ๋ฆฌ๋ถํฐ sub ๋๋ ํ ๋ฆฌ๋ก ์ด์ด์ง๋ ํธ๋ฆฌ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๊ณ ์๋ค.
ํ์ผ ์์ฑ
ํ์ผ์ ์ด๋ฆ + ์์ฑ + ๋ฐ์ดํฐ ๋ก ๊ตฌ์ฑ๋์ด์๋ค. ๊ทธ ์ค ์์ฑ์๋ Protection, Password, Creator, Owner ๋ฑ์ ์ ๋ณด๊ฐ ์ ์ฅ๋์ด์๋ค. ์ฝ๊ฒ ๋งํด์ ์ด๋ฆ๊ณผ ๋ฐ์ดํฐ๋ฅผ ์ ์ธํ ํ์ผ์ ๋ชจ๋ ์ ๋ณด๊ฐ ์์ฑ์ ๋ค์ด์๋ค. ํ์ผ ์์คํ ๋ง๋ค ์ฌ์ฉํ๋ ํ์ผ์ ์์ฑ์ด ๋ค๋ฅด๋ค.
ํ์ผ ์ ๊ทผ
ํ์ผ์ ์ ๊ทผํ๋ ๋ฐฉ๋ฒ์ ๋ ๊ฐ์ง๊ฐ ์๋ค.
-
Sequential access
Tape์ ํ์ผ์ ์์ฐจ์ ์ผ๋ก ์ ๊ทผํด์ผํ๋ค.
-
Random access
Disk์ ํ์ผ์ Randomํ๊ฒ ์ ๊ทผํ ์ ์๋ค.
์์ ์ ๊ทผ์๋ ๋ ๋๊ฐ์ง ๋ฐฉ์์ด ์๋ค.
-
read(id, &buf, from, rwbytes)
์ด์ ๊ฐ์ ํํ์ ๋ช ๋ น์ด๋ from ์์น๋ฅผ ๋ฐ์์ ํด๋น ์์น์์ ๋ถํฐ ๋ฐ์ดํฐ๋ฅผ ์ ๊ทผํ๋ค. ์ฆ, offset์ ์์น๋ฅผ ๋งค๊ฐ๋ณ์๋ก ๋ฐ๋๋ค.
-
read(id, &buf, rwbytes)
์ด์ ๊ฐ์ ํํ์ ๋ช ๋ น์ด๋ ๋์ ๋ณด์ด์ง ์๋ offset์ด ํ์ผ๋ง๋ค ์กด์ฌํด์ ํด๋น offset๋ถํฐ ๋ฐ์ดํฐ๋ฅผ ์ ๊ทผํ๋ค. ๋ฐ์ดํฐ๋ฅผ ์ ๊ทผํ๋ฉด์ offset๋ ์๋ ์ฆ๊ฐํ๋ค. offset์ ์์น๋ฅผ ๋ฐ๊พธ๋ ค๋ฉด lseek์ ๊ฐ์ ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํด์ผํ๋ค.
-
๋ง์ ํ๋ก์ธ์ค๋ค์ด ํ์ผ์ ์์ฐจ์ ์ผ๋ก ์ ๊ทผํ๋๊น 2๋ฒ ๋ฐฉ๋ฒ์ด ๋ง์ด ์ฌ์ฉ๋๋ค. ํ์ง๋ง ๋ค์ค ์ค๋ ๋ ํ๋ก๊ทธ๋๋ฐ์์ ์ค๋ ๋๊ฐ ๋ณ๋ ฌ๋ก ๋์ํ๋ ๊ฒฝ์ฐ์๋ 1๋ฒ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ค.
ํ์ผ ๊ณต์
ํ์ผ์ ๋ค์์ ํ๋ก๊ทธ๋จ์ด ๋์์ ์ฝ๊ณ ์ธ ์ ์์๊น?
๊ฐ๋ฅํ๋ค. ๊ทธ๋ ๋ค๋ฉด ํ ํ๋ก๊ทธ๋จ์ด ์์ ํ ํ์ผ์ ๋ด์ฉ์ ๋ค๋ฅธ ํ๋ก๊ทธ๋จ๋ค์ ์ธ์ ๋ถํฐ ์์ ๋ ๋ด์ฉ์ผ๋ก ์ฝ์ ์ ์์๊น?
๋๋ถ๋ถ์ OS์์๋ ํ์ผ์ ๋ด์ฉ์ ์์ ํ์๋ง์ ๋ค๋ฅธ ํ๋ก๊ทธ๋จ๋ค์ด ๋ณผ ์ ์๋ค. ์์ ๋ถ์ฐ ํ์ผ์์คํ (Andrew file system)์์๋ ์๊ฒฉ ์๋ฒ์ ํ์ผ์ ์ ์ฅํด์ผํ๊ธฐ ๋๋ฌธ์ ์์ ํด๋ ๋ค๋ฅธ ํ๋ก๊ทธ๋จ์ด ๋ฐ๋ก ๋ณผ ์ ์์๊ณ , ์์ ์ด๋ผ๋ ๋จ์ด์ semantic์ file์ closeํ๋ ๊ฒ๊น์ง ํฌํจํด์ ์ ์ํ์๋ค.
ํ์ผ ์ฐ์ฐ
ํ์ผ๊ณผ ๊ด๋ จ๋ ์ฐ์ฐ๋ค์ ํ๋ก์ธ์ค๊ฐ OS์๊ฒ ์์คํ ์ฝ์ ์์ฒญํด์ ์ฌ์ฉํ ์ ์๋ค. ์ฐ์ฐ์๋ create, delete, open, close, read, write, append, seek, get attribute, set attribute, rename ๋ฑ์ด ์๋ค.
๋๋ ํ ๋ฆฌ (ํด๋)
์ ๋์ค์์๋ ๋๋ ํ ๋ฆฌ, ์๋์ฐ์์๋ ํด๋๋ผ๊ณ ๋ถ๋ฅด๋ ์๋ฃ์ ๋จ์์ด๋ค. ๋จ์ํ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํด๋๋ ํ์ผ๊ณผ ํํ๋ ๋๊ฐ์ง๋ง ์์ ๋ ๋ด์ฉ์ ๋ค๋ฅด๋ค. ๋๋ ํ ๋ฆฌ ํ์ผ์ ํ ์ด๋ธ์ ํํ๋ก ๋ด๊ณ ์๋ ํ์ผ๊ณผ ์๋ธ ๋๋ ํ ๋ฆฌ์ ๋ด์ฉ์ด ๋ค์ด๊ฐ ์๋ค. ๋๋ ํ ๋ฆฌ์ ๋ชฉ์ ์ _ํ์ผ์ ์ด๋ฆ์ ์์ฑ๊ณผ ๋ฐ์ดํฐ ๊ฐ์ ์ ๋ณด๋ก mapping ํด์ฃผ๋ ๊ฒ_์ด๋ค.
ํ์ผ์ ์ด๋ฆ + ์์ฑ + ๋ฐ์ดํฐ๋ก ๊ตฌ์ฑ๋์ด ์๋ค๊ณ ์ด์ ์ ์ธ๊ธํ ๋ฐ ์๋๋ฐ, ํ์ผ์ ์ด๋ฆ์ผ๋ก ์ ์ฅ๋์ด ํด๋น ํ์ผ์ ์ค์ ์ ๋ณด๋ฅผ ์ป๊ธฐ ์ํด์๋ ์ด๋ฆ์ผ๋ก ์ ๋ณด๋ฅผ ์ฐพ์์ผํ๋ค. ์ด๋ฌํ ์ญํ ์ ๋๋ ํ ๋ฆฌ๊ฐ ํด์ฃผ๋ ๊ฒ์ด๋ค.
๊ณ์ธต ๋๋ ํ ๋ฆฌ ์์คํ
ํธ๋ฆฌ ๊ตฌ์กฐ๋ก Root ๋๋ ํ ๋ฆฌ๋ถํฐ Sub ๋๋ ํ ๋ฆฌ๊ฐ ์ด์ด์ ธ์๋ ๊ฒ์ด ์ผ๋ฐ์ ์ด๋ค. ์๋๋ Single ๋๋ ํ ๋ฆฌ๋ง ์์ด์ ๋ชจ๋๊ฐ Root ๋๋ ํ ๋ฆฌ์ด๊ณ ํ ํ์ผ๋ง์ ์๋ฏธํ๋ ๊ฒ์ด๋ผ '๋๋ ํ ๋ฆฌ'๋ผ๋ ์ฉ์ด๋ ์กด์ฌํ์ง ์์๋ค. ํ์ง๋ง ์ดํ ํ์ผ๋ค์ ์ฐพ๊ธฐ ํ๋ค์ด์ง์ ๋๋ ํ ๋ฆฌ๋ผ๋ ํธ๋ฆฌ ๊ตฌ์กฐ๋ก ํ์ผ์ ๋ฌถ๊ธฐ ์์ํ ๊ฒ์ด๋ค.
Path name (๊ฒฝ๋ก ์ด๋ฆ)
ํ์ผ์ path name์ uniqueํ๋ค๊ณ ํ๋ค. ๋ฆฌ๋ ์ค์ ํ์ผ ๊ตฌ์กฐ๋ฅผ ๋ณด๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.
์ด๋ ๊ฒ root ๋๋ ํ ๋ฆฌ๋ถํฐ ํด๋น ํ์ผ๊น์ง์ ๊ฒฝ๋ก๋ฅผ path name์ด๋ผ๊ณ ํ๊ณ ์ ๊ทธ๋ฆผ์ '/usr/jim'์ด ์์์ด๋ค. ์ด๋ฌํ path name์ uniqueํด์ผํ๋ฉฐ ์ด๋ฆ์ด ๊ฐ์๋ ๋๋ ํ ๋ฆฌ๋ง ๋ค๋ฅด๋ค๋ฉด path name์ด ๋ค๋ฅด๋ค.
์ ๋ path
root ๋๋ ํ ๋ฆฌ๋ก๋ถํฐ์ path๋ฅผ ์๋ฏธํ๋ค.
ex_) C:\Document (์๋์ฐ์ฆ) \usr (์ ๋์ค)
์๋ path
ํ์ฌ ์์ ๋๋ ํ ๋ฆฌ(Current Working Directory)๋ก๋ถํฐ์ path๋ฅผ ์๋ฏธํ๋ค.
ex_) ./Work ์์ '.'๋ ํ์ฌ ๋๋ ํ ๋ฆฌ๋ฅผ ์๋ฏธํ๋ค. '..'๋ ๋ถ๋ชจ ๋๋ ํ ๋ฆฌ๋ฅผ ์๋ฏธํ๋ค.
๋๋ ํ ๋ฆฌ ์ฐ์ฐ
create, delete, opendir, closedir, readdir, rename, link, unlink ๋ฑ์ ์ฐ์ฐ์ด ์กด์ฌํ๋ค. link ์ฐ์ฐ์ ํ์ผ์ด๋ ๋๋ ํ ๋ฆฌ์ ์ด๋ฆ์ ํ๋ ๋ ๋ถ์ฌํ๋ ์ฐ์ฐ์ผ๋ก, ํ์ผ์ ์ ๋ณด๋ ํ๋์ธ๋ฐ ์ด๋ฆ์ ์ฌ๋ฌ ๊ฐ ์์ฑํ๋ ๊ฒฝ์ฐ์ด๋ค. Unlink ์ฐ์ฐ์ ๋ฐ๋๋ก ์ด๋ฆ์ ํ๋์ฉ ์ง์ฐ๋ ์ฐ์ฐ์ด๋ค. Unlink ์ฐ์ฐ ์ ํ์ผ์ ๋ง์ง๋ง ์ด๋ฆ์ด unlink๋๋ฉด ํ์ผ์ ์ ๋ณด ์์ฒด๊ฐ ์ฌ๋ผ์ง๋ค.
๋ ์ด์์
ํ๋๋์คํฌ๋ ์ํ์ ํธ๋๋จ์๋ก ์ชผ๊ฐ์ ๊ด๋ฆฌํ๋ค. ๊ทธ๋ฆผ์์ A๋ก ํ์๋ ๋ถ๋ถ์ด ํธ๋์ด๋ค. ํธ๋์ ๋ฐ๊นฅ์ชฝ๋ถํฐ ์์ชฝ์ผ๋ก ๋ค์ด๊ฐ๋ฉด์ ์ฌ์ฉ๋๊ณ ํธ๋ ์์ฒด๋ 512byte์ ์นํฐ๋จ์๋ก ์ด๋ฃจ์ด์ ธ์๋ค. ๊ทธ๋ฆผ์์ C๋ก ํ์๋ ๋ถ๋ถ์ด ์นํฐ์ด๋ค. ํ์ผ์์คํ ์ ์ด ์นํฐ๋ฅผ ์ฌ๋ฌ ๊ฐ ๋ชจ์์ ๋ธ๋ก์ด๋ผ๋ ๋จ์๋ก ์ฌ์ฉํ๋ค.
ํ๋๋์คํฌ์ ํธ๋์ ์ด๋ฃจ๋ ๋จ์๊ฐ ์นํฐ์ด๊ณ ํ์ผ์์คํ ์ ์ฌ๋ฌ ๊ฐ์ ์นํฐ๋ก ๋ ๋ธ๋ก์ ์ฌ์ฉํ๋ค.
์ํ ๋ชจ์์ ํ๋๋์คํฌ๋ฅผ ์ผ์๋ก ํผ์ณ๋ณด๋ฉด ๋ค์๊ณผ ๊ฐ์ ํํ๊ฐ ๋์จ๋ค.
๋๋์ด์ง ๋จ์๋ฅผ ์นํฐ๋ผ๊ณ ๋ณด๋ฉด, ์ฒซ๋ฒ์งธ ์นํฐ์๋ MBR(master boot record)์ด๋ผ๋ ์ฝ๋๊ฐ ์๊ณ , ๋ถํธ ์นํฐ๋ผ๊ณ ๋ถ๋ฆฐ๋ค. ์ปดํจํฐ์ ์ ์์ ์ผ๋ฉด ROM BIOS (OS ์ค ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ์ปดํจํฐ์ IO๋ฅผ ์ฒ๋ฆฌํ๋ Software) ๊ฐ ์ด๊ธฐํํ๊ณ , ํ๋๋์คํฌ ์ฒซ๋ฒ์งธ ์นํฐ์ ์๋ MBR ์ฝ๋๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฌํ ํ ์คํํ๋ค. MBR ์ฝ๋(๋ถํธ ์ฝ๋)๋ ํํฐ์ ํ ์ด๋ธ์์ ๋ถํธ ํํฐ์ ์ ์ฐพ์์ OS์ ๋ถํธ ๋ธ๋ก ์ฝ๋๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฌํ ์ ์๋๋ก ํ๋ค. ์ดํ OS์ ๋ถํธ ์ฝ๋๊ฐ ์คํ๋๋ค.
์ฆ, ์ฒ์์๋ MBR ์ฝ๋๋ก ๋ถํ ์ ํ๊ณ ๋์คํฌ์ ํํฐ์ ์ค OS ๋ถํธ ํํฐ์ ์ ์ฐพ์์ OS ๋ถํ ์ ํ๋ค.
MBR์๋ ํํฐ์ ์ ๊ฐฏ์์ ์์ ์์น, ์ฌ์ด์ฆ ๋ฑ์ด ๊ธฐ๋ก๋์ด์๋ค.
ํํฐ์ ํ ์ด๋ธ์๋ ์ต๋ 4๊ฐ์ ์ํธ๋ฆฌ๊ฐ ์กด์ฌํ ์ ์๊ณ , ์ด๋ ํ๋๋์คํฌ๋ฅผ ์ต๋ 4๋ฑ๋ถํ์ฌ ์ฌ์ฉํ ์ ์๋ค๋ ๋ง์ด๋ค. ์ด ์ค ํ๋๋ OS์ ๋ถํธ ํํฐ์ ์ด์ฌ์ผํ๋ค. ํํฐ์ ๋ง๋ค ์๋ก์ด ํ์ผ์์คํ ๊ณผ ์ด์์ฒด์ ๊ฐ ์ฌ์ฉ๋ ์ ์๋ค.
์์ ํ์๋ ๊ทธ๋ฆผ ์์ ํํฐ์ ๊ตฌ์กฐ๋ ์ ๋์ค ํ์ผ์์คํ ์ ๊ฒฝ์ฐ์ด๋ค.
ํ์ผ ์์คํ ์ค๊ณ
ํ์ผ ์์คํ ์ ์ค๊ณํ ๋ ๊ณ ๋ คํด์ผํ ์ฌํญ๋ค์ ์์ ๊ฐ์์์ ๋ค๋ค์๋ค. ๊ทธ ์ค ๋ ๊ฐ๋ฅผ ๊ฐ์ ธ์๋ณด์.
-
ํ์ผ์ ๋ํ ๋ฐ์ดํฐ๋ธ๋ก์ ํ ๋น / ๊ด๋ฆฌ (์ ๋ณด ์ฐพ๊ธฐ)
ํ๋๋์คํฌ์ 512byte ์นํฐ๋ ๋๋ฌด ์์์ ํ์ผ์์คํ ์ ์นํฐ๋ฅผ ๋ชจ์ ๋ธ๋ก๋จ์๋ก ์ฌ์ฉํ๋ค.
์ ๋์ค : block, ์๋์ฐ์ฆ : cluster
-
๋น ๊ณต๊ฐ ๊ด๋ฆฌ
ํ์ผ ํ ๋น ๋ฐฉ๋ฒ
-
Contiguous allocation
์ฐ์์ ์ผ๋ก ๋ธ๋ก์ ํ ๋นํ๋ ๋ฐฉ๋ฒ์ด๋ค.
ํด๋น ํ์ผ์ด ์ด๋ค ๋ธ๋ก์ ์๋ ์ง ์ฝ๊ฒ ์ฐพ์ ์ ์๊ฒ ํ๊ธฐ ์ํด ๋๋ ํ ๋ฆฌ ํ ์ด๋ธ์ ์ฌ์ฉํ์. ์ด ํ ์ด๋ธ์ ์ํธ๋ฆฌ๋ (ํ์ผ์ด๋ฆ, ์์ ๋ธ๋ก์์น, ์ฌ์ด์ฆ)๋ก ๊ตฌ์ฑ๋์ด์๋ค. ์์ ๋ธ๋ก์์น๋ถํฐ ์ฐ์์ ์ผ๋ก ์ฌ์ด์ฆ๋งํผ ์ฝ์ผ๋ฉด ํด๋น ํ์ผ์ด๋ผ๋ ์ ๋ณด๊ฐ ๋๋ค.
์ด๋ฌํ ์ฐ์์ ๋ธ๋ก ํ ๋น ๋ฐฉ์์ ์ฅ์ ์ ์ฝ๊ณ ์ฐ๊ธฐ ์ข๋ค๋ ๊ฒ์ด๋ค. ๋จ์ ์ external fragmentation ๋ฌธ์ ๋ฅผ ์ผ๊ธฐํ์ฌ ์ ์ฅ๊ณต๊ฐ ํจ์จ์ด ๋ฎ์์ง ์ ์๋ค๋ ๊ฒ์ด๋ค. ์ด ๋ฐฉ๋ฒ์ ํ๋๋์คํฌ์์๋ ์ฌ์ฉํ๊ธฐ ์ด๋ ต๊ณ , ํ ๋ฒ ๊ตฌ์ฐ๋ฉด ์์ ์ด ๋ถ๊ฐ๋ฅํ CD-ROM๊ณผ ๊ฐ์ ์ ์ฅ๋งค์ฒด์์ ์ฃผ๋ก ์ฌ์ฉ๋๋ค.
-
Chained allocation (=LinkedList allocation)
์ฐ์์ ์ด์ง ์๊ณ , ๋์ ์ธ ํ ๋น ๋ฐฉ๋ฒ์ด๋ค.
๋๋ ํ ๋ฆฌ ํ ์ด๋ธ์ ์ํธ๋ฆฌ๋ (ํ์ผ์ด๋ฆ, ์์ ๋ธ๋ก์์น, ์ฌ์ด์ฆ)๋ก Contiguous allocation๊ณผ ๊ฐ๋ค. ํ์ง๋ง ์ค์ ๋ธ๋ก์ ๋ด๊ฒจ์๋ ์ ๋ณด์ ์ฐจ์ด๊ฐ ์๋ค. Contiguous allocation์์๋ ๋ธ๋ก์ file data๋ง์ด ์กด์ฌํ๋ค๋ฉด, Chained allocation์์๋ ๋ธ๋ก์ file data์ meta data๊ฐ ํจ๊ป ์กด์ฌํ๋ค.
๋ฐ๋ผ์ ํด๋น ํ์ผ์ด ์ ์ฅ๋งค์ฒด์ ์ด๋์ ์ ์ฅ๋์ด์๋์ง๋ฅผ ํ์ธํ ๋, ์์ ๋ธ๋ก์์น์ ์๋ ๋ธ๋ก์์ file data๋ฅผ ์ฝ๊ณ , ๋ค์ ๋ธ๋ก์ ์ ๋ณด๋ฅผ meta data์์ ์ฝ์ด์ ๋ธ๋ก์ ์ฌ์ด์ฆ๋งํผ ๋ฐ๋ผ๊ฐ๋ฉด์ ์ฝ๋๋ค.
์ด๋ฌํ ๋ฐฉ์์ external fragmentation ๋ฌธ์ ๋ฅผ ํด๊ฒฐํด์ฃผ๊ฒ ์ง๋ง, ํ ๋ธ๋ก์ file data์ meta data๋ฅผ ํจ๊ป ๊ธฐ๋กํ๋ ๊ฒ์ ์ข์ง ์๋ค. ํ์ผ ์์ ์ meta data๊ฐ ์์๋์ด ์ดํ ๋ธ๋ก๋ค์ด ๋ชจ๋ ์์๋ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค. ๋ํ linked-list ๋ฐฉ์์ผ๋ก ๊ตฌํํ์ฌ ์์ฐจ์ ๊ทผ๋ง์ด ๊ฐ๋ฅํ๋ค๋ ๊ฒ๋ ๋จ์ ์ด๋ค.
-
FAT (File Allocation Table)
๊ทธ๋ ๋ค๋ฉด Chained allocation ๋ฐฉ์์์ meta data๋ง ๋ค๋ฅธ ๊ณณ์ ๋ชจ์๋ณด์. meta data(ํด๋น ๋ธ๋ก ๋ค์์๋ ์ด๋ค ๋ธ๋ก์ด ์ค๋์ง)๋ง ๋ชจ์๋ ์๋ฃ๊ตฌ์กฐ๊ฐ ์๊ณ , file data๋ ๋ฐ๋ก ์๋ค๋ฉด ํ๋์ ๋จ์ ์ ์ปค๋ฒํ ์ ์๋ค.
์ค์ ๋ก MS์ฌ์ FAT ํ์ผ ์์คํ ์ ์ด๋ฌํ ๋ฐฉ์์ ์ด์ฉํ์ฌ ๊ฐ๋ฐ๋์๋ค. ์ฒ์์๋ Master Boot Block์ผ๋ก ๋ถํ ํ๊ณ ํํฐ์ ์ค Partition Boot Block์ ์ฝ๋๋ฅผ ์คํํ๋ฉด OS ๋ถํ ์ด ๋๋ค. ์ฌ๊ธฐ์ ํน์ง์ ์ผ๋ก FAT Block table์ด ์๋๋ฐ, ์ด ํ ์ด๋ธ์ ๋ชจ๋ ๋ฌผ๋ฆฌ์ ๋ธ๋ก๋ค์ด ๋์๋์ด 'FF=-1'์ ๋ค์ ๋ธ๋ก์ด ์์์ '์ซ์'๋ ๋ค์ ๋ธ๋ก์ ๋ฒํธ๋ฅผ '0'์ ๋น์ด์๋ ํ๋ฆฌ ๋ธ๋ก์ ์๋ฏธํ๋ค. meta data๋ฅผ ๋ชจ์๋๋ Fat block table์ ๋ฐ๋ก ๋ง๋ ๊ฒ์ด๋ค.
FAT ํ์ผ์์คํ ์ ์ ๋์ค ํ์ผ์์คํ ๊ณผ ๋ฌ๋ฆฌ ๋ฃจํธ๋๋ ํ ๋ฆฌ๊ฐ
.
์..
์ ๊ฐ์ง์ง ์๋๋ค. ๋ ์ ๋์ค ํ์ผ์์คํ ๊ณผ ๊ตฌ๋ถ๋๋ ์ ์ ๋ชจ๋ ํ์ผ์ ์ ๋ณด(์ด๋ฆ, ์์ฑ, ๋ฐ์ดํฐ)๋ฅผ ํ์ผ ์ํธ๋ฆฌ์ ๊ธฐ๋กํ๋ค๋ ๊ฒ์ด๋ค.FAT ํ์ผ์์คํ ์ ์์ ์ MS์์ ์์ฉ๋ ํ๋ฌํผ ๋์คํฌ / ํ๋๋์คํฌ ์ฉ์ผ๋ก ์ฌ์ฉํ ํ์ผ์์คํ ์ด๋ค. ํธํ์ฑ์ด ์ข์์ USB ๋๋ผ์ด๋ธ ์ฉ๋๋ก๋ ์ฌ์ฉ๋์ง๋ง ์ฑ๋ฅ์ ๊ทธ๋ค์ง ์ข์ง ์๋ค.
์ ์ฅ์ฉ๋์ด ์ปค์ง๋ฉด FAT block table์ ํฌ๊ธฐ๋ ์ปค์ ธ์ ๋ฉ๋ชจ๋ฆฌ ๋ญ๋น
ํ์ผ์ ํฌ๊ธฐ๊ฐ ์ปค์ง๋ฉด linked-list ํ์์ ์์ฐจํ์ ๋ฐฉ๋ฒ์ด ์๊ฐ ๋ญ๋น
-
Indexed allocation
๋๋ ํ ๋ฆฌ ํ ์ด๋ธ์ ์ํธ๋ฆฌ๋ (ํ์ผ์ด๋ฆ, ์ธ๋ฑ์ค ๋ธ๋ก)์ผ๋ก๋ง ์ด๋ฃจ์ด์ ธ์๋ค. ์ธ๋ฑ์ค ๋ธ๋ก์ ํ์ผ ์ ๋ณด๊ฐ ๊ธฐ๋ก๋์ด์๋ ๋ธ๋ก์ผ๋ก array ๊ตฌ์กฐ๋ก ๋์ด๋์ด์์ง๋ง, ์ฉ๋์ด ๋ถ์กฑํ๋ฉด linked-list๋ tree ํํ๋ก ๋ง๋ค์ด์ง๊ธฐ๋ ํ๋ค. ๋ฐ์ดํฐ๊ฐ ๊ธฐ๋ก๋๋ ๋ฐ์ดํฐ ๋ธ๋ก์ ์ฐ์๋๊ฒ ๋ฐฐ์นํ ํ์๋ ์์ง๋ง ํ๋๋์คํฌ์ ํน์ฑ์ ๊ณ ๋ คํ๋ค๋ฉด ๊ฐ๋ฅํ ์ฐ์์ ์ผ๋ก ๋ฐฐ์นํ๋ ๊ฒ์ด ์ข๋ค.
ํ๋๋์คํฌ์ ํค๋ ์ด๋ ์๊ฐ์ด ๋ง์ด ๋ค๊ธฐ ๋๋ฌธ
=> ์ ๋์ค V7 FS ๋ณด๊ธฐ
-
inode
inode๊ฐ ๊ฐ์ง๊ณ ์๋ ์ ๋ณด๋ ํ์ผ์ ์ด๋ฆ๊ณผ ๋ฐ์ดํฐ๋ฅผ ์ ์ธํ ์์ฑ์ด๋ฉฐ, ์ด๋ฆ๊ณผ ๋ฐ์ดํฐ๋ ๋ฐ์ดํฐ๋ธ๋ก์ ์ ์ฅ๋์ด์๋ค.
-
์ด๋ฌํ indexed ๋ฐฉ์์ ํจ์จ์ ์ผ๋ก ๋์ํ๋ฉฐ ์์ ์ ๊ทผ์ ํ ์ ์์ด์ ์ฑ๋ฅ๋ ์ข๋ค. ํ์ง๋ง ๋ฐ์ดํฐ๋ธ๋ก์ ๊ฐฏ์๊ฐ ๋ง์ ๊ฒฝ์ฐ์๋ indirect block์ด ๋ง๋ค์ด์ ธ ์์ฐจ์ ๊ทผ์ ํด์ผํ๋ ๊ฒฝ์ฐ๋ ์๋ค.
- ์ ๋์ค ํ์ผ์์คํ ์์ indexed allocation ๋ฐฉ์์ ์ฝ๊ฐ ๋ณํํด์ ์ฌ์ฉํ์๋๋ฐ, ์ฌ๊ธฐ์๋ ์ธ๋ฑ์ค ๋ธ๋ก์ inode๋ผ๊ณ ๋ถ๋ฅธ๋ค.
ํ์ผ ๊ณต์
์ด๋ ๊ฒ ์ฌ๋ฌ ๊ฐ์ ๋๋ ํ ๋ฆฌ์์ ๊ณต์ ํ๋ ํ์ผ์ด ์์ ์ ์์๊น? ๊ฐ๋ฅํ๋ค. Unix ํ์ผ์์คํ ์์ ์ด๋ link๋ผ๋ ๊ธฐ๋ฅ์ผ๋ก ๊ตฌํ๋๋ค. ๋๋ ํ ๋ฆฌ๋ ์ด์ฐจํผ ํ์ผ์ด๋ฆ์ inode๋ก ๋ณํํ๋ ๋ชฉ์ ์ผ๋ก ๋ง๋ค์ด์ง ๊ฒ์ด๋ฏ๋ก ์๋ง์ inode๋ก ๋ณํํด์ฃผ๊ธฐ๋ง ํ๋ค๋ฉด ๋ฌธ์ ์๋ค.
๋ฐ๋ผ์ ํ์ผ์ ๋ฐ์ดํฐ์ ์์ฑ์ ํ๋์ธ๋ฐ, ์ด๋ฆ์ด ๋ ๊ฐ์ ๋๋ ํ ๋ฆฌ์ ์์ ์ ์๋ค. Unix ํ์ผ์์คํ ์์๋ ์ด๋ฌํ ์ด๋ฆ์ link๋ผ๊ณ ํ๋ฉฐ ์ด๋ฆ์ ๊ฐฏ์๋ฅผ link-count๋ผ๋ ํํ๋ก ์ ์งํ๋ค. link-count๊ฐ 0์ด๋๋ฉด ์ค์ ์ ์ฅํ๊ณ ์๋ ํ์ผ์ ์ ๋ณด(inode)๊ฐ ์ฌ๋ผ์ง๋ค.
์ด๋ ๊ฒ ์ฌ๋ฌ ๊ฐ์ ์ด๋ฆ์ด ์๋ ๊ฒ์ด ํต๊ณํ๋ก๊ทธ๋จ์์์ ์ค๋ณต๊ฐ๋ฅ์ฑ, ์ญ์ ๊ฐ ์๋๋ ๊ฒฝ์ฐ, 2๋ฒ ๋ฐฑ์ ๋๋ ๊ฒฝ์ฐ, ๋๋ ํ ๋ฆฌ ๋งํฌ ๋๋ฌธ์ ๋ฌดํ๋ฃจํ๋ฅผ ๋๋ ๊ฒฝ์ฐ ๋ฑ์ ๋ฌธ์ ๋ฅผ ์ผ๊ธฐํ ์ ์์ง๋ง ์ด๋ ๋ฐ๋ก๊ฐ๊ธฐ ํ์ผ(Symbolic link)์ผ๋ก ํด๊ฒฐํ ์ ์๋ค. ๋ฐ๋ก๊ฐ๊ธฐ ํ์ผ์ ์๋ณธ๊ณผ ๋ค๋ฅธ ๋ณ๋์ ํ์ผ๋ก์จ ์๋ณธ ํ์ผ์ path name์ ์ ์ฅํ๋ ํ์ผ์ด๋ค. ๋ฐ๋ก๊ฐ๊ธฐ ํ์ผ์ ์ด๊ณ ์ํ ๋, ํด๋น path name์ผ๋ก ๊ฐ์ ๋ค์ ์๋ณธ ํ์ผ์ ์ด์ด์ผํ์ง๋ง ์ด์ ๋ overhead๋ ๊ด์ฐฎ๋ค๊ณ ๋ณธ๋ค.
Log-structured ํ์ผ์์คํ (LFS)
๋ช๋ช ์ฐ๊ตฌ์๋ค์ด ํ๋๋์คํฌ์ write ์ seek time์ ์ค์ฌ ์๋๋ฅผ ๋์ด๊ธฐ ์ํ ๋ฐฉ์์ผ๋ก ๋ฐ์ดํฐ๋ธ๋ก๋ค์ ์์น๋ฅผ ๊ฐ๋ณ์ผ๋ก ํ๋ ๋ฐฉ์์ ์ฐ๊ตฌํ๋ค. ์์์ ๋ฐฐ์ด FAT, UNIX ํ์ผ์์คํ ์ ๊ฒฝ์ฐ ํ๋ฒ ํ์ผ ๋ฐ์ดํฐ๋ธ๋ก๋ค์ ์์น๊ฐ ๋ฑ๋ก๋๋ฉด ๋ณํํ์ง ์๋๋ค.
๊ธฐ๋ณธ์ ์ธ ์์ด๋์ด๋ log ํ์์ผ๋ก disk์ ๊ณ์ ์ ์ด๋๊ฐ๋ ๊ฒ์ด๋ค. ํ๋๋์คํฌ ๊ณต๊ฐ์ ํ์ฌ writingํ point์์ segment ๋จ์๋ก log๋ฅผ ๊ธฐ๋กํ ๊ฒ์ด๋ค. ๋ฐ์ดํฐ๋ฅผ ๊ธฐ๋กํ ๋ ์ด์ ํ์ผ์์คํ ๋ค์ ํด๋น ํ์ผ์ ๋ฐ์ดํฐ๋ธ๋ก์ ์ฐพ์๊ฐ์ ์์ ํ๋ ๋ฐฉ์์ผ๋ก ์งํํ๋๋ฐ, LFS์ ๊ฒฝ์ฐ ํ์ฌ writing point์์ ์์ฐจ์ ์ผ๋ก ์ ์ฒด ๋ฐ์ดํฐ๋ฅผ writeํ๋ค. ๊ทธ๋ฆฌ๊ณ ํด๋น ์์น์ ๋ณ๊ฒฝ๋ inode๊น์ง ์์ฑํ๋ค. ๊ทธ๋ฌ๋ ์์ค LFS๋ผ๊ณ ๋ถ๋ฆฌ๋ GC๋ cleaning point๋ฅผ ์ฆ๊ฐ์ํค๋ฉด์ ๋ณ๊ฒฝ๋์ง ์์ ๋ฐ์ดํฐ๋ง copyํ๋ ๋ฐฉ์์ผ๋ก ๋น๊ณต๊ฐ(segment)์ ๋ง๋ค์ด์ค๋ค.
์ด์ Unix ํ์ผ์์คํ ์์๋ inode์ ์์น๊ฐ ๊ณ ์ ๋์ด์์ด inode ๋ฒํธ๋ง ์๋ฉด ๋ฐ์ดํฐ๋ธ๋ก์ ์ฐพ์ ์ ์์๋๋ฐ, LFS์์๋ inode๋ ์๋ก ๊ธฐ๋กํ๋ฏ๋ก(๊ฐ๋ณ ์์น์ด๋ฏ๋ก) inode์ ์์น๋ ๊ธฐ๋กํด๋์ด์ผํ๋ค. ์ด ๋ ํ์ผ์ ๋ฐ๊พธ๊ณ , inode๋ฅผ ๋ฐ๊พธ๊ณ , ์ํผ ๋ธ๋ก์ ๋ฐ๊พธ๋ ์์ผ๋ก log๋ฅผ ๊ธฐ๋กํ๊ธฐ ๋๋ฌธ์ read์์๋ ๋ฐ๋๋ก ํค๋๋ฅผ ์์ง์ด๋ฉฐ ์ฝ์ด์ฃผ์ด์ผํ๋ค๋ ์ ์์ ์ฑ๋ฅ์ด ์ฝ๊ฐ ์ ํ๋๋ค. ์ผ์ ์ฃผ๊ธฐ๋ง๋ค ์์ฐจ์ ์ผ๋ก ๊ธฐ๋กํ๋ฉด์ ํ๋๋์คํฌ์ ๊ณ ์ ๋ ์์น์ ์๋ inode map์ inode๋ค์ ์์น๋ฅผ ๊ธฐ๋กํ๋ ์์ผ๋ก ์งํํ๋ค.
์ด ์ผ์ ์ฃผ๊ธฐ๋ฅผ check point๋ผ๊ณ ํ๋ฉฐ check pointing์ ํ์ฌ ๋ง์ง๋ง ์ฒดํฌํฌ์ธํธ ์์น์์๋ถํฐ ๋ณ๊ฒฝ๋ ํ์ผ๋ค์ ๋ชจ๋ inode map์ ๊ธฐ๋กํ๋ค.
=> write ์ธก๋ฉด์๋ ์ฝ๊ฐ์ ์ด๋์ด ์์ง๋ง GC๋ ์ฌ์ฉํ๊ณ inode๋ map์ ์ด์ฉํ๊ธฐ ๋๋ฌธ์ ์ฑ๋ฅ์ด ์ฉ ์ข์ง ์๋ค. ํ์ง๋ง SSD์ ๊ฐ์ ํ๋์ ๋ฉ๋ชจ๋ฆฌ๋ ํฐ ๋จ์๋ก ์ง์ฐ๊ณ ์ฌ์ฉํ๋ ํน์ฑ์ด ์๊ธฐ ๋๋ฌธ์ LFS ๊ตฌ์กฐ์ ์ ๋ง์์ LFS๋ ํ๋์ ๋ฉ๋ชจ๋ฆฌ ์ ์ฅ์ฅ์น์ ๋ง์ด ์ฐ์ธ๋ค.
์ผ์ฑ์ F2FS๋ LFS๋ฅผ ์์ฉํด์ ๋ง๋ ํ์ผ์์คํ ์ด๋ค.
Journaling ํ์ผ์์คํ
FFS์์๋ ํ์ผ์ ๋ง๋ค๊ณ ์ํ๋ฉด inode๋ฅผ ํ ๋นํ๊ณ ํ์ผ์ ์์ฑ์ ๊ธฐ๋กํ๊ณ ๋ฐ์ดํฐ๋ธ๋ก์ ํ ๋นํ๊ณ ๋ฐ์ดํฐ๋ธ๋ก์ ๋ฐ์ดํฐ๋ฅผ ๊ธฐ๋กํ๊ณ ๋๋ ํ ๋ฆฌ์ ์ด๋ฆ๊ณผ inode๋ฅผ ๊ธฐ๋กํ๊ณ ๋นํธ๋งต์ ์ธํ ํด์ฃผ์ด์ผํ๋ค.
์ด ๋ ์ฌ๋ฌ ๊ฐ์ ๋ธ๋ก์ ๊ฑฐ์น๋๋ฐ ํ์ผ์์คํ ์ ํด๋น ๋ธ๋ก๋ค์ ์ผ๊ด์ฑ์ด ์๋ฒฝํ๊ฒ ํด๊ฒฐ๋ ์ํ์์๋ง ๋์ํด์ผํ๋ค. ์ผ๊ด์ฑ์ ๋ง์ถ๋ ๊ฒ์ ์๊ฐ์ด ๋๋ฌด ์ค๋๊ฑธ๋ฆฌ์ Journaling ๊ธฐ๋ฒ์ด ๋์๋ค.
Journaling๊ธฐ๋ฒ์ ํ์ผ์์คํ ์ ๊ตฌ์กฐ๋ฅผ ๋ณ๊ฒฝํ ๋ Log Area์ log๋ฅผ ๋ง๋ค๊ณ ๋์์ ํ๋ค. ํด๋น ๋์์ด ์๋ฃ๋๋ฉด log๋ฅผ ์ญ์ ํ์ง๋ง ์๋ฃ๋์ง ์์ ์ํ์์ ๋ฆฌ๋ถํ ์ log๋ฅผ ๋ณด๊ณ roll back์ด๋ roll forwardํด์ ์ผ๊ด์ฑ์ ํ๋ณตํ๋ค. ์ ์ฒด ํ์ผ์์คํ ์ ๋ง์ถฐ๋ณด๋ฉด์ ์ผ๊ด์ฑ์ ์ฒดํฌํ๋ ๊ฒ๋ณด๋ค log ๊ธฐ๋ก๋ง ๋ณด๋ฉด ๋๋๊น ์๋๊ฐ ๊ต์ฅํ ๋นจ๋ผ์ง๋ค.
๊ฐ์ ํ์ผ์์คํ (VFS)
์์ ์๋ OS๋ง๋ค ํ๋์ ํ์ผ์์คํ ๋ง ์ง์ํ์๋ค. ํ์ฌ๋ ๋ค์ํ ํ์ผ์์คํ ์ ์ง์ํ๊ณ ์๋ค. Unix Sun Micro Systems๋ผ๋ ํ์ฌ์์ Unix OS์์ ์ฌ๋ฌ ํ์ผ์์คํ ์ ์ฌ์ฉํ๊ธฐ ์ํด VFSlayer๋ฅผ ๊ฐ๋ฐํ๋ค. VFSlayer๋ ์ฌ์ฉํ๋ ํ์ผ์์คํ ์ ๊ณตํต๋ ๋ถ๋ถ์ VFSlayer๋ก ๋ง๋ค๊ณ , ๊ฐ๊ฐ์ FS๋ง๋ค ๋ค๋ฅธ ๋ถ๋ถ๋ค๋ง ์๋์ ๋ถ์ฌ์ ๊ตฌํํ ๊ตฌ์กฐ์ด๋ค. ํ์ฌ๋ ๋ง์ ์ปดํจํฐ ์์คํ ์์ ํด๋น ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํ๊ณ ์๋ค.
Linux์ VFS์ ๊ฑฐ์ณ์ ๊ฐ FS์ ๋ฉ์๋๋ฅผ ๋ถ๋ฌ์ ๋์์ํจ๋ค. ๋ฐ๋ผ์ OS ์์์ ์ฌ๋ฌ ๊ฐ์ FS๋ฅผ ๊ตฌ๋ํ๋ฉด์ ๊ฐ FS์ ํนํ๋ ๋ฉ์๋๋ฅผ ๋์์ํฌ ์ ์๋ค.
๋ธ๋ก ์ฌ์ด์ฆ ๊ฒฐ์
-
Large ๋ธ๋ก ์ฌ์ด์ฆ (8KB ๋ธ๋ก => 16๊ฐ์ ์นํฐ)
์ฑ๋ฅ๋ฉด์์๋ ์ข์ง๋ง ๊ณต๊ฐ ํจ์จ๋ฉด์์๋ ์ข์ง ์๋ค. ๋ธ๋ก์ ๊ด๋ฆฌํ๋ table์ ์ํธ๋ฆฌ๊ฐ ์ ์ผ๋ฏ๋ก ๊ด๋ฆฌํ๊ธฐ ์ข๋ค.
FAT์์๋ FAT table ์ํธ๋ฆฌ๊ฐ ์ ๊ณ , FFS์์๋ inode์ ๊ธฐ๋ก๋๋ ๋ฐ์ดํฐ๋ธ๋ก ๊ฐฏ์๊ฐ ์ ๋ค.
-
Small ๋ธ๋ก ์ฌ์ด์ฆ (1KB ๋ธ๋ก => 2๊ฐ์ ์นํฐ)
๊ณต๊ฐ ํจ์จ๋ฉด์์๋ ์ข์ง๋ง ํฐ ํ์ผ์ ๊ฒฝ์ฐ ๋ธ๋ก์ด ํฉ์ด์ ธ์์ ์ ์๊ธฐ ๋๋ฌธ์ ์ฑ๋ฅ๋ฉด์์๋ ์ข์ง ์๋ค. ๋ธ๋ก ์ํธ๋ฆฌ ๊ฐ์๊ฐ ๋ง์์ง๋ฏ๋ก ๊ด๋ฆฌํ๊ธฐ ์ด๋ ต๋ค.
์๊ฐ์ด ์ง๋ ์๋ก ์ ์ ํฌ๊ธฐ๊ฐ ํฐ ํ์ผ์ด ์๊ฒจ๋์ง๋ง ์ฌ์ ํ ์์ ํ์ผ๋ค์ด ๋๋ถ๋ถ์ด๋ค. ๊ทธ๋ํ์ ์ค๋ฅธ์ชฝ์ผ๋ก ๊ฐ์๋ก ๊ณต๊ฐํ์ฉ๋๋ ์ฆ๊ฐํ์ง๋ง ์ฑ๋ฅ์ ์ ํํ๋ค. ์์์ ๋ถ์ํ๋ฏ์ด ์ฑ๋ฅ๊ณผ ๊ณต๊ฐ ํจ์จ์ ๋ฐ๋น๋กํ๋๋ฐ ๊ทธ๋ํ๊ฐ ํฌ๋ก์คํ๋ ์ง์ ์ด ์๋ 2,4KB ์ ๋์์ ๋ธ๋ก์ฌ์ด์ฆ๋ฅผ ๊ฒฐ์ ํ๋ค. ์ฌ๊ธฐ์ ์ฑ๋ฅ์ด ์ค์ํ๋ฉด 8KB๋ฅผ ์ฌ์ฉํ๊ธฐ๋ ํ๋ฉฐ ์์ฃผ ํน์ดํ ๊ฒฝ์ฐ 64KB๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ๋ ์๋ค.
๊ณต๊ฐ ๊ด๋ฆฌ
ํ๋๋์คํฌ ๋ฑ ๊ฑฐ๋ํ ์ ์ฅ์ฅ์น์ ๊ณต๊ฐ์ ์ด๋ป๊ฒ ๊ด๋ฆฌํ ๊น? ์ฌ์ฉํ๊ณ ์์ง ์์ ๋ธ๋ก์ ํ ๋นํด์ฃผ๊ธฐ ์ํด ์ด๋ฅผ ํ์ํ๊ณ ์์ด์ผํ๋ค. ๋ฐฉ๋ฒ์๋ 3๊ฐ์ง๊ฐ ์๋ค.
-
Bit map ( bit vector )
๋์คํฌ์ ์๋ ๋ธ๋ก์ด bit map์ ํ bit์ ๋์ํ์ฌ ์ฌ์ฉ์ค์ธ์ง ์๋์ง๋ฅผ 0๊ณผ 1๋ก ํํํ๋ ๋ฐฉ๋ฒ์ด๋ค. bit๋ก ํํํ๋ฏ๋ก ๋ฉ๋ชจ๋ฆฌ ์ฐจ์ง๊ฐ ์ ์ผ๋ฉฐ ์ฐ์์ ์ผ๋ก ๋น ๋ธ๋ก์ ์ฐพ๊ธฐ๊ฐ ์ข๋ค. ๋ฐ๋ผ์ ๋ง์ ํ์ผ์์คํ ์ด free block ๊ด๋ฆฌ ์ ์ด ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๊ณ ์๋ค.
์๋ฅผ ๋ค์ด ๋ธ๋ก์ฌ์ด์ฆ๊ฐ 2^12byte์ด๊ณ ๋์คํฌ์ฌ์ด์ฆ๊ฐ 2^30byte(1GB)๋ผ๊ณ ํ๋ค๋ฉด ๋ธ๋ก์ 2^18๊ฐ ๋งํผ ์กด์ฌํ๋ค. ๋ฐ๋ผ์ ํ ๋ธ๋ก์ ํ bit๋ก ํํํ๋ฏ๋ก 2^18bit์ธ 32Kbyte๊ฐ ํ์ํ๋ค.
-
Linked List
ํ free block์ด ๋ค์ free block์ ๊ฐ๋ฆฌํค๋๋ก ํ์ฌ chain์ผ๋ก ์ฎ๋๋ค. ํ๋์ free block์ด ์๋ก ์๊ฒผ์ ๋ linked list ํํ๋ก ๋ถ์ฌ์ฃผ์ด์ผํ๊ณ free block์ ํ ๋นํ ๋ ์์ฐจ์ ์ผ๋ก ์ ๊ทผํ๋ฉฐ ์ฝ์ด์ผํ๊ธฐ ๋๋ฌธ์ overhead๊ฐ ํฌ๋ค.
-
Grouping(Indexing)
์ฌ๋ฌ ๊ฐ์ free block์ ์ธ๋ฑ์ค ๋ธ๋ก ํ๋๋ก ๋ฌถ์ด์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ด๋ค. ์ธ๋ฑ์ค ๋ธ๋ก ๋ง์ง๋ง์๋ ๋ค์ ์ธ๋ฑ์ค ๋ธ๋ก์ ๊ฐ๋ฆฌํค๋ ํฌ์ธํฐ๊ฐ ๊ธฐ๋ก๋์ด์๋ค. ๋ฐ๋ผ์ ์ธ๋ฑ์ค ๋ธ๋ก ์์ฒด๋ linked-list ํํ๋ก ๊ตฌ์ฑ๋์ด์๋ค. Linked List ๋ฐฉ๋ฒ๋ณด๋ค overhead๋ ์ค์ด๋ค์์ง๋ง ์ฌ์ ํ ์กด์ฌํ๊ณ ํ๋๋์คํฌ๊ฐ Aging ๋ ํ์๋ ํ์ผ๋ค์ด ๋ถ์ฐ์์ ์ผ๋ก ํ ๋น๋๋ฏ๋ก ํจ์จ์ฑ์ด ๊ฐ์ํ๋ค.
์๋๋ free block์ด ์๊ฒผ์ ๋ ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ์์ ๋ชจ์๊ฐ๋ฉด์ ์ธ๋ฑ์ค ๋ธ๋ก์ ์ค๋นํ๊ณ ์ธ๋ฑ์ค ๋ธ๋ก์ด ๊ฐ๋ ์ฐจ๋ฉด ๋์คํฌ์ ๊ธฐ๋กํ๋ ์์ผ๋ก ๊ตฌํํ๋๋ฐ, ์ด๋ฐ ๋ฐฉ์์ free block์ด ํ์ํ ๋ ๊ณ์ ํ ์ธ๋ฑ์ค ๋ธ๋ก์ ์ฝ๊ณ ์ฐ๋ ์์ ์ด ๋ฐ๋ณต๋๋ฏ๋ก ์ฑ๋ฅ์ด ํ๋ฝํ ์ ์๋ค. ๋ฐ๋ผ์ ์ธ๋ฑ์ค ๋ธ๋ก์ ๋ฐ๋ง ์ฑ์ฐ๊ณ ๋์คํฌ์ ๊ธฐ๋กํ์๋ ์๊ฒฌ๋ ๋์์ผ๋ ์ด์ฐจํผ ํ์ฌ๋ ๋ง์ ํ์ผ์์คํ ์ด bitmap์ ์ฌ์ฉํ๊ณ ์๋ค
Disk Quotas
์์ ์๋ ์ปดํจํฐ๋ฅผ ์ฌ๋ฌ ๋ช ์ด ํจ๊ป ์ฌ์ฉํ๋ฏ๋ก ๊ฐ ์ฌ์ฉ์๋ง๋ค ์ ํด์ง ์์์ ์ ์ฝ์ด ์์๋ค. ์ด๋ฅผ Quota๋ผ๊ณ ํ๋๋ฐ, Quota table์ ์ ์ฝ๋ค์ ๊ธฐ๋กํด๋ ์ผ๋ก์จ ์ฌ์ฉ์๊ฐ ํ ๋น๋ ์ฉ๋์ ๋์ด์ ์ฌ์ฉํ๋ฉด ์ฒ์์๋ Soft Block Limit์์ ๊ฒฝ๊ณ ๊ฐ ์ค๊ณ Hard Block Limit์์๋ ๋์ด์ ํ๋๋์คํฌ ๊ณต๊ฐ์ ์ฌ์ฉํ ์ ์์๋ค.
ํ์ผ ์์คํ ๋ฐฑ์
ํ์ผ ์์คํ ์ ์ฃผ๊ธฐ์ ์ผ๋ก ์ ํด์ง ๊ท์น์ ๋ฐ๋ผ ๋ฐฑ์ ํด์ผํ๋ฉฐ, ๋ฐฑ์ ์ ๋ณดํต ๊ฐ๊ฒฉ์ด ์ ๋ ดํ tape ์ ์ฅ๋งค์ฒด์ ํ๋ ํธ์ด๋ค.
<tape ๋ฐฑ์ ๋ฐฉ๋ฒ>
- Physical dump : ์์ฐจ์ ๋ฐฑ์
- Logical Dump : ํ์ผ์์คํ
๊ตฌ์กฐ๋๋ก ๋ฐฑ์
- Complete Dump : ํ์ผ์์คํ ๊ตฌ์กฐ์์ฒด๋ถํฐ ๋ชจ๋ ํ์ผ์ ๋ฐฑ์ (์ฃผ๊ธฐ์ ์ผ๋ก)
- Incremental Dump : ๋ง์ง๋ง ๋ณ๊ฒฝ ์ดํ ํ์ผ๋ง ๋ฐฑ์ (์ฃผ๊ธฐ ์ฌ์ด์)
Incremental Dump
ํ์ผ ๋ฐฑ์ ์ด์ ์ ๋๋ ํ ๋ฆฌ ํธ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ๋จผ์ ๋ฐฑ์ ํ๋ค. ์ด ๋, ๋ฐ๋ ํ์ผ์ ๊ด๋ จ๋ ๊ตฌ์กฐ๋ง ๋ฐฑ์ ํ๋ฉด ๋๋ค.๋๋ ํ ๋ฆฌ์ ๋ผ๋๋ฅผ ๋ง๋ ํ์ ํ์ผ์ ์์น์ ๋ฐ๋ผ ๋ฐฑ์ ํ๋ค.
<dump ์ ์ฐจ>
- ๋ชจ๋ ํ์ผ / ๋๋ ํ ๋ฆฌ ๋ง๋ค 1 bit ์ฉ ๋์๋๋ bitmap์ ๋ง๋ ๋ค.
- ๋๋ ํ ๋ฆฌ๋ ๋ชจ๋ 1๋ก ์ธํ ํ์ฌ ์ฐ์ dumpํ ๊ฒ์ด๋ผ๊ณ ํ์ํ๋ค.
- ํ์ผ์ ๋ณ๊ฒฝ๋ ํ์ผ๋ง 1๋ก ์ธํ ํ์ฌ dumpํ ๊ฒ์ด๋ผ๊ณ ํ์ํ๋ค.
- ๋ณ๊ฒฝ๋ ํ์ผ์ด ์กด์ฌํ์ง ์๋ ๋๋ ํ ๋ฆฌ๋ฅผ 0์ผ๋ก clearํ์ฌ dumpํ์ง ์์ ๊ฒ์ด๋ผ๊ณ ํ์ํ๋ค.
- ๋ฌด์์ dumpํด์ผํ๋ ์ง ๊ฒฐ์ ๋์์ผ๋ฏ๋ก ๋๋ ํ ๋ฆฌ๋ฅผ ๋จผ์ ๋ณด๋ฉด์ bitmap ์ 1๋ก ํ์๋ ๋๋ ํ ๋ฆฌ๋ฅผ dumpํ๋ค.
- ๋ณ๊ฒฝ๋ ํ์ผ๋ค์ dumpํ๋ค.
๋ค๋ฅธ ๊ณ ๋ ค์ฌํญ
-
๋ฐฑ์ ์ผ๋ก๋ถํฐ์ ํ๋ณต
๋ฐฑ์ ์ complete dump => incremental dump ํ๋ฏ๋ก complete dump๋ฅผ ํ๋ณตํ ํ incremental dump๋ฅผ ์ ์ฉํ๋ค.
-
logical dump ๋ฌธ์
ํ์ผ์ด link๋์ด์์ด ์ด๋ฆ์ด 2๊ฐ ์กด์ฌํ๋ ๊ฒฝ์ฐ์๋ inode์ link-count๋ฅผ ๋ณด๊ณ ๊ฒฐ์ ํด์ผํ๋ฏ๋ก dump๊ฐ ์ด๋ ค์์ง๋ค.
FFS์ ํ์ผ์์ ์ค๊ฐ์๋ ๊ธฐ๋ก์ด ์๊ณ ์ ๋ค๋ถ๋ถ๋ง ๊ธฐ๋ก๋์ด์๋ ํฐ ํ์ผ์ Hole์ด๋ผ๊ณ ํ๋ค. ์ด ํ์ผ์ ๋ฐฑ์ ์ ๋ง์ ์ฉ๋์ ์ฐจ์งํ๋ฏ๋ก ๋ฐ๋ก ์ฒ๋ฆฌํด์ฃผ์ด์ผํ๋ค.
๊ธฐ๋ก๋์ด์์ง ์์ ๋ถ๋ถ์ OS์์ ๋๋ถ๋ถ 0์ผ๋ก ์ฑ์์ ์ ๋ฌํ๊ธฐ ๋๋ฌธ์ด๋ค.
์ค๊ฐ์ ๊ธฐ๋ก์ด ์๋ ๊ฒฝ์ฐ๋ seek๋ก r/w offset์ ์ด๋ํ์๊ฑฐ๋ sparse matrix์ธ ๊ฒฝ์ฐ์ด๋ค.
- dev ๋๋ ํ ๋ฆฌ ์๋์ ์๋ ๋๋ฐ์ด์ค ํ์ผ์ด๋ ํ์ดํ ํ์ผ์ dumpํ๋ฉด ์๋๋ค.
ํ์ผ ์์คํ ์ผ๊ด์ฑ
์์ ์ธ๊ธํ Journaling ํ์ผ์์คํ ์ฒ๋ผ ํ์ผ ์์คํ ์ ์ผ๊ด์ฑ์ ์ ์งํ๊ณ ์์ด์ผํ๋ค. ํ์ผ์ด๋ ๋๋ ํ ๋ฆฌ๋ฅผ ์์ ํ๊ฒ ๋๋ฉด ๊ทธ ์ ๋ณด๋ฅผ ์ ์ฅํ๊ณ ์๋ ์ฌ๋ฌ ๊ฐ์ ๋ธ๋ก(inode, ๋ฐ์ดํฐ ๋ธ๋ก, bitmap, ๋๋ ํ ๋ฆฌ ์ํธ๋ฆฌ ๋ฑ)์ด ๋ชจ๋ ์์ ๋์ด์ผํ๋๋ฐ ๊ทธ๋ ์ง ์๋ค๋ฉด ์ผ๊ด์ฑ์ด ๊นจ์ง ์ํ(inconsistent state)๊ฐ ๋๋ค. ์ด๋ฐ ์ผ๊ด์ฑ์ด ๊นจ์ง ์ํ๋ ์์คํ ์ด ๊ฐ์๊ธฐ ๋ค์ด๋ ๋ ๋ง์ด ๋ฐ์ํ๋ค.
์ผ๊ด์ฑ์ ์ ์งํ๊ธฐ ์ํด ํ์ผ์์คํ ์๋ ํ๋ณตํ๋ ํ๋ก๊ทธ๋จ์ด ์๋๋ฐ UNIX ํ์ผ์์คํ ์ ๊ฒฝ์ฐ fsck, ์๋์ฐ ํ์ผ์์คํ ์ ๊ฒฝ์ฐ scandisk๊ฐ ํด๋นํ๋ค. ๋ง์ ํ์ผ์์คํ ์ด ํ๋ณต์ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ ์ค์ด๊ธฐ ์ํด journaling ๊ธฐ๋ฒ์ ์ฌ์ฉํ๋ค.
์ฌ์ฉํ๊ณ ์๋ ๋ธ๋ก์ ๊ธฐ๋กํด๋๋ bit map๊ณผ ์ธ๋ฑ์ค ๋ธ๋ก ์์ ๊ธฐ๋ก๋์ด์๋ free block ๋ฒํธ๋ค์ ๋งค์น์์ผ์ ์ผ๊ด์ ์ธ์ง ํ์ธํ๋ค. ๊ฐ๋ ์ผ๊ด์ ์ด์ง ์์ ๊ฒฝ์ฐ๊ฐ ๋ฐ์ํ๋ค.
-
ํ์ผ ์์ฑ ์ free block์ ํ ๋นํด์ inode์ ๋ฑ๋กํด์ผํ๋๋ฐ, ํ ๋น ์ง์ ์ ๋ฌธ์ ๊ฐ ์๊ธด ๊ฒฝ์ฐ
์ด ๊ฒฝ์ฐ์๋ free block์ ๋ค์ ํ ๋นํด์ฃผ๊ธฐ๋ง ํ๋ฉด ๋๋ค.
-
ํ์ผ ์ญ์ ์ ์๊ธด free block์ ๊ธฐ๋กํ๋ คํ๋๋ฐ ๋ฌธ์ ๊ฐ ์๊ฒจ์ ๋ค์ ๋ฑ๋ก๋๋ ๊ฒฝ์ฐ
free block์ด 2๋ก ๋์ด์์ผ๋ฏ๋ก 1๋ก ๋ณ๊ฒฝ์์ผ์ฃผ๊ธฐ๋ง ํ๋ฉด ๋๋ค. ์ผ๊ด์ฑ์ ํ๋ณตํ์ง ์์ผ๋ฉด ๊ฐ์ ๋ธ๋ก์ 2๋ฒ ํ์ผ์ด ํ ๋น๋์ด ํฐ ๋ฌธ์ ๊ฐ ์๊ธด๋ค.
-
๋ฐ์ดํฐ ๋ธ๋ก์ด 2๊ฐ์ ํ์ผ์ ํ ๋น๋์ด์๋ ๊ฒฝ์ฐ
์ฌ๊ฐํ ๋ฌธ์ ๋ฅผ ์ด๋ํ๋ค.
๋ฐ๋ผ์ ํ์ผ์์คํ ์ ๋ฐ๋์ ์ผ๊ด์ฑ์ด ํ๋ณต๋ ์ํ์์ ๋์ํด์ผํ๋ค.
ํ์ผ ์์คํ ์ฑ๋ฅ ํฅ์
ํ์ผ ์์คํ ์ฑ๋ฅ์ ๋ณ๋ชฉ์ ์ ํ๋๋์คํฌ์ ๊ฐ์ ๋ฌผ๋ฆฌ์ ์ฅ์น์ด๋ค. ๋ฐ๋ผ์ ์ฑ๋ฅ์ ํฅ์ ์ํค๋ ค๋ฉด ๋ฌผ๋ฆฌ์ ์ฅ์น์ ๊ธฐ๋ฅ์ ๊ฐ์ ํ ํ์๊ฐ ์๋ค.
-
Caching
ํ๋๋์คํฌ์์ data๋ฅผ ์ฝ์ด์ค๋ ํ์๋ฅผ ์ค์ด์. ์บ์๋ disk์บ์, buffer์บ์, block์บ์๋ผ๊ณ ๋ถ๋ฆฐ๋ค. ์ด๋ CPU์ DRAM ์ฌ์ด์ ์บ์์๋ ๋ค๋ฅด๋ค. ๋ฐ์ดํฐ๋ฅผ ์ฝ์ด์ฌ ๋ ํ๋๋์คํฌ ์ ๊ทผ ์ DRAM์ ์๋ ํด๋น ์บ์๋ฅผ ๋จผ์ ์ดํด๋ณธ๋ค. ์ด๋ฌํ ๋์คํฌ์บ์์๋ ์ฉ๋ ์ ํ์ด ์์ผ๋ฏ๋ก ๊ต์ฒด์ ์ฑ ์ด ํ์ํ๋ฐ ์ญ์๋ LRU๊ฐ ๊ฐ์ฅ ์ ์ ํ๋ฏ๋ก ์ฝ๊ฐ์ ์์ ์ ํตํด ์ฌ์ฉํ๋ค.
๋์คํฌ ๋ธ๋ก๋ค์ double linked-list ํ์์ผ๋ก ์ ์ฅํ ํ front๋ LRU์ด๊ณ rear๋ MRU๊ฐ ๋๋๋ก ์ ์งํ๋ค. ์ด ๋ ๊ฐ ์์๋ค์ ์์๋ก ์ฐพ๊ธฐ ์ํด ํด์ํ ์ด๋ธ์ ์ด์ฉํด์ ์ฐพ๋ ์๊ฐ์ ์ค์ฌ์ค๋ค. ํด์ ๊ฐ์ด ๊ฐ์ ๋ฐ์ดํฐ ๋ธ๋ก๋ค์ double linked-list์ ๋ณ๊ฐ๋ก ์ฐ๊ฒฐ๋์ด์์ผ๋ฏ๋ก ๋น ๋ฅด๊ฒ ํด๋น ๋ธ๋ก์ ์ฐพ์ ์ ์๋ค.
๋ธ๋ก๋ค์ LRU์์น์ ๋ฃ์ด๋ ๊ฒ์ธ์ง MRU์์น์ ๋ฃ์ด๋ ๊ฒ์ธ์ง๋ ํด๋น ๋ธ๋ก์ ํน์ฑ(์์ฐจ์ ์ธ์ง ์๋์ง)์ ๋ฐ๋ผ ๊ฒฐ์ ๋ ์ ์๋ค. ๋ํ ์ผ๊ด์ฑ๊ณผ ๊ด๋ จ๋ ๋ธ๋ก์ ๋น ๋ฅด๊ฒ write-throughํด์ฃผ๋ ๊ฒ์ด ์ข๋ค.
-
meta data ๊ฐ์ ์ค์ํ ์ ๋ณด์ ๊ฒฝ์ฐ ์์ ์ฆ์ ํ๋๋์คํฌ์ ์ ์ด์ฃผ๋ Write-Through ๋ฐฉ์์ ์ฌ์ฉํ๊ณ ๋๋จธ์ง ์ ๋ณด๋ MS-DOS์์๋ Write-Through ๋ฐฉ์์ผ๋ก Unix์์๋ Write-back ๋ฐฉ์์ผ๋ก ๊ธฐ๋กํ๋ค. ๋ง์ ํ์ผ์์คํ ์ด ์ฑ๋ฅ๋๋ฌธ์ Write-back ๋ฐฉ์์ ์ฌ์ฉํ๋ ๋์ ์ผ์ ์ฃผ๊ธฐ(Unix์ ๊ฒฝ์ฐ 30์ด)์ ํ๋ฒ์ฉ syncํ๋ ๋ฐฉ์์ผ๋ก ์ผ๊ด์ฑ์ ์ ์งํ๋ค.
-
Read-ahead
์ค์ ๋ฆฌ๋ ์ค์์๋ ์ฌ์ฉ๋๋ ๋ฐฉ์์ผ๋ก ํ์ผ ํ๋๋ฅผ ์ฝ์ ๋, ๋ท๋ถ๋ถ๋ ๋ฏธ๋ฆฌ ์ฝ์ด์ disk์บ์์ ๋ฃ์ด๋๋ ๋ฐฉ์์ด๋ค. ์บ์์ ๋ฃ์ด๋ ๋ถ๋ถ์ด ํ์์๋ ๋ถ๋ถ์ด๋ฉด ์ํด์ด๊ธฐ ๋๋ฌธ์ ์ ์ read-ahead ๊ฐ๊ฒฉ์ ๋๋ ค๊ฐ๋ ์์ผ๋ก ๋์ํด์ผํ๋ค. ์์ฐจ์ ์ผ๋ก ํ์ผ์ ์ ๊ทผํ ๋๋ง ์ฑ๋ฅ์ด ์ข๋ค.
-
๋์คํฌ ์ ์์ง์ ์ถ์
ํ๋ ๋์คํฌ๋ ํค๋๊ฐ ์ํ ์์์ ์์ง์ด๋ฉด์ ์ฝ๋๋ฐ, ์์ง์ด๋ ์๊ฐ ๋๋ฌธ์ ์ฑ๋ฅ์ด ๋๋น ์ง๋ค. ๋ฐ๋ผ์ ํ์ผ ์์คํ ์ ๊ตฌ์กฐ๋ฅผ ๋ฐ๊พผ๋ค.
๊ธฐ์กด์๋ ํ๋๋์คํฌ๋ฅผ ์ผ๋ ฌํํด๋ณด์์ ๋ super block => block bitmap => inode bitmap => inode list => data block ์์ผ๋ก ๊ธฐ์ฌ๋์ด์๊ธฐ ๋๋ฌธ์ ์ด ์์ผ๋ก ๋ฐ๊นฅ์ชฝ ํค๋๋ถํฐ ์์ชฝ ํค๋๋ก ๋ค์ด๊ฐ๋ฉด์ ๋์คํฌ๋ฅผ ์ฌ์ฉํ์๋ค. ํ ํ์ผ์ ์ฝ์ผ๋ ค๋ฉด inodelist์ data block์ ๊ณ์ ๋ฒ๊ฐ์๊ฐ๋ฉด์ ์๋ค๊ฐ๋ค ํด์ผํ๋ฏ๋ก ํค๋์ ์์ง์์ด ๋ง์์ ํ์ผ์์คํ ์ ์ฑ๋ฅ์ด ๋๋นด๋ค. ๋ํ ํธ๋์ ๋ฐ๊นฅ ๋ถ๋ถ์ ์ค์ํ ์ ๋ณด๊ฐ ์ ์ฅ๋์ด์๊ธฐ ๋๋ฌธ์ ํ๋๋์คํฌ์ ์ ๋ขฐ์ฑ์ด ๋ฎ์๋ค.
๋ฐ๋ผ์ Unix ํ์ผ์์คํ ์์๋ FastFileSystem์ด๋ผ๋ FFS๋ฐฉ์์ ๋์ ํ์๋ค. ์ด๋ ์ค๋ฆฐ๋ ๊ทธ๋ฃน์ด๋ผ๋ ๊ฐ๋ ์ ์ฌ์ฉํ ๊ธฐ๋ฒ์ธ๋ฐ, ์ค๋ฆฐ๋๋ ์ฌ๋ฌ ๊ฐ์ ์ํ์ ๋์ผํ ํธ๋๋ค์ ๋ชจ์ ๊ฒ์ด๊ณ ์ด๋ฌํ ์ค๋ฆฐ๋๋ฅผ ๋ชจ์ ๊ฒ์ด ์ค๋ฆฐ๋ ๊ทธ๋ฃน์ด๋ค. ์ด๋ ๊ฒ ๊ตฌ์ฑํ๊ฒ ๋๋ฉด ํ์ผ์์คํ ์ ์ ์ฒด๊ณต๊ฐ์ ๋ช ๊ฐ์ ์ค๋ฆฐ๋ ๊ทธ๋ฃน์ผ๋ก ๋๋๋ ์๋ก์ด ๋ถํ ๋ฐฉ์์ ์ฌ์ฉํ๊ฒ ๋๋ฉฐ, ์ค๋ฆฐ๋ ๊ทธ๋ฃน์ ํน์ฑ ์ ํค๋๊ฐ ํ ๋ฒ ์๋ฆฌ ์ก์ผ๋ฉด ๊ฑฐ์ ์์ง์ด์ง ์๊ณ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃฐ ์ ์๋ค.
FFS์์ ๋๋ ํ ๋ฆฌ์ ํ์ผ์ ๋ง๋ค๋ฉด ๋์ผํ ์ค๋ฆฐ๋ ๊ทธ๋ฃน์ ํ์ผ์ ํ ๋นํ์ง๋ง, ํ ์ค๋ฆฐ๋ ๊ทธ๋ฃน์์์ ํ์ผ์ด ๋๋ฌด ์ปค์ ์ฉ๋์ด ๋ถ์กฑํ๋ค๋ฉด ์ธ์ ์ค๋ฆฐ๋ ๊ทธ๋ฃน์ ๋ฐ์ดํฐ๋ธ๋ก์ ์๋ชจํ๋๋ก ์ ๋ํ๋ ๋ฑ์ ์ ๊ตํ ํจํด ์ ์ฑ ์ ๊ฐ์ง๊ณ ์๋ค.
๋์คํฌ๊ฐ ์ฌ๋ฌ ๊ฐ์ ์ค๋ฆฐ๋ ๊ทธ๋ฃน์ผ๋ก ๋๋๋ฏ๋ก ์ค๋ฆฐ๋ ๊ทธ๋ฃน๋ง๋ค ํ์ผ์์คํ ๊ตฌ์กฐ๋ฅผ ๋ค๋ฅด๊ฒ ๋ง๋ค ์๋ ์๋ค. ๋ฐ๋ผ์ ํ์ผ์์คํ ์ ์ด๋ฌํ ์ ๋ณด๋ ์ ์งํด์ผํ๋ฏ๋ก Group descriptor๋ฅผ ๋์ ํ์ฌ Super block์๋ ํ์ผ ์์คํ ์ ์ฒด ๊ตฌ์กฐ์ ๋ํ ํ์์ ๋ณด๋ฅผ, Group descriptor์๋ ์ค๋ฆฐ๋ ๊ทธ๋ฃน ๋ด์ ํ์์ ๋ณด๋ฅผ ๊ธฐ๋กํ๋ค.
Linux์ ext ํ์ผ์์คํ ๋ ์ค๋ฆฐ๋ ๊ทธ๋ฃน ๋จ์๋ก ํ์ผ์์คํ ์ ๋ฐ๋ก ๋ง๋ ๋ค.
-
์ด๋ ๊ฒ ์ค๋ฆฐ๋๋ฅผ ์ด์ฉํ ๊ธฐ๋ฒ์ ๊ตฌ์กฐ๊ฐ ํผ์๋๋๋ผ๋ ํ ๊ทธ๋ฃน๋ง ํผํด๋ฅผ ๋ณด๋ ์์ ์ฑ, ํค๋๋ฅผ ๊ฑฐ์ ์์ง์ด์ง ์๊ณ ๋ฐ์ดํฐ์ ์ ๊ทผํ ์ ์๋ ์ฑ๋ฅ ์ธก๋ฉด์์์ ์ฅ์ ์ ๋ณด์ธ๋ค.
-
๋์คํฌ ๋จํธํ ์ถ์
์๋์ฐ์ฆ์์ ์ ๊ณตํ๋ ๋์คํฌ ์กฐ๊ฐ๋ชจ์ (defrag)์ด๋ผ๋ ๊ธฐ๋ฅ์ด ํ ์์ด๋ค. ๋์คํฌ์ ๋จํธํ๋ฅผ ์ถ์ํ๊ธฐ ์ํด ๋น๊ณต๊ฐ์ ํตํฉํ๊ณ ํ ํ์ผ์ ๋ฐ์ดํฐ ๋ธ๋ก๋ค์ ์์ฐจ์ ์ผ๋ก ๋ฐ๊พธ์ด์ค๋ค. ํ์ง๋ง ์ต๊ทผ ์ด๊ฒ์ด ๋ฐ์ด๋ ์ฑ๋ฅํฅ์์ ๊ฐ์ ธ๋ค์ฃผ์ง ๋ชปํ๋ค๊ณ ๋ฐํ์ก๋ค.
The ISO 9660 ํ์ผ ์์คํ
CD-ROM์์ ์ฌ์ฉํ๋ ํ์ผ์์คํ ์ด๋ค. ์ํธ๋ฆฌ๊ฐ MS-DOS์ FAT ํ์ผ์์คํ ์ ์ํธ๋ฆฌ์ ์ ์ฌํ๋ค.
CD-ROM์ ํ ๋ฒ ์ฐ์ด๋ด๋ฉด ๋ณ๊ฒฝ๋์ง ์์ผ๋ฏ๋ก ์ฐ์ํ ๋น๊ธฐ๋ฒ์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข๋ค๊ณ Contiguous allocation ๋ฐฉ์์์ ์ธ๊ธํ์๋ค. ์ํธ๋ฆฌ์๋ (์์์์น, ์ฌ์ด์ฆ, ...)๊ฐ ๊ธฐ๋ก๋๋ฉฐ ๋ฐ์ดํฐ๋ฅผ ๋ณ๊ฒฝํ ๋๋ ๋ฏธ ์ฌ์ฉ ์์ญ์ ํด๋น ๋ฐ์ดํฐ๋ฅผ ์๋ก ์ด๋ค.
ํ์ผ์ ์ด๋ฆ์ 8.3๋ฐ์ ์๋๋ฉฐ Symbolic link๊ฐ ์๊ณ ๋๋ฐ์ด์ค ํ์ผ์ ๊ธฐ๋กํ๋ Major, minor ๋ฒํธ๊ฐ ์์ผ๋ฉฐ ๋๋ ํ ๋ฆฌ depth๊ฐ ์งง๋ค๋ ๋จ์ ์ด ์๋ค. ์ด๋ฌํ ๋จ์ ์ ์ปค๋ฒํ๊ธฐ ์ํด Unix ์ปค๋ฎค๋ํฐ์์ ํ์ฅํ์ธ _'Rock Ridge Extension'_์ _'Joliet Extension'_์ ๊ตฌํํ์๋ค.
ํ์ผ ์ ๊ทผ ์ ์ด
ํ์ผ์์คํ ์๋ ์ฌ๋ฌ ์ฌ์ฉ์์ ํ์ผ์ด ์์ผ๋ฏ๋ก ์ ๊ทผ ์ ์ด ๊ธฐ๋ฒ์ ํตํด ๋ณด์์ฑ์ ๊ฐ์ถ์ด์ผํ๋ค.
-
Access Control matrix
ํ์ด ํ์ผ์, ์ด์ด ์ฌ์ฉ์๋ฅผ ๋ํ๋ด๋ matrix๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ์ฉ์์ ํ์ผ์ฌ์ด์ ๊ด๊ณ๋ฅผ RWED ์ ๊ทผ์ ์ด bit๋ก ๊ธฐ๋กํ๋ ๋ฐฉ์์ด๋ค. ์ด ๋ฐฉ์์ matrix๊ฐ ๋๋ฌด ํฐ ๋จ์ ์ด ์๋ค.
-
Access Control List
ํ์ผ์ ๊ธฐ์ค์ผ๋ก ์ฌ์ฉ์๋ง๋ค ๋ฌด์์ ํ ์ ์๋์ง๋ฅผ ๊ธฐ๋กํ๋ค. ์๋ฌด๊ฒ๋ ํ ์ ์๋ ์ฌ์ฉ์๋ฅผ ๊ธฐํ ์ฌ์ฉ์๋ผ๊ณ ๊ธฐ๋กํ์ฌ ๊ด๋ฆฌํ๋ค. Unix๋ ์ด๋ฅผ ์ฝ๊ฐ ๋ณํํ ํํ๋ก ์ฌ์ฉํ์ฌ ์ฌ์ฉ์๋ฅผ '์์ ์, ๊ทธ๋ฃน์์ ์, ๊ธฐํ์ฌ์ฉ์' 3๋ถ๋ฅ๋ก ๋๋๋ค.
-
Capability List
์ฌ์ฉ์๋ฅผ ๊ธฐ์ค์ผ๋ก ํ์ผ๋ง๋ค ์ด๋ค ์์ ์ ํ ์ ์๋์ง๋ฅผ ๊ธฐ๋กํ๋ค. ์ฆ, ์ฌ์ฉ์์ ๋ฅ๋ ฅ์ ๊ธฐ๋กํ๋ค. ๋ง์ OS๊ฐ ์ฌ์ฉํ๊ณ ์๋ ๋ฐฉ๋ฒ์ด๊ธฐ๋ ํ์ง๋ง ํ์ผ์ด ์๋ ์์คํ ๊ด๋ฆฌ๋ ๋คํธ์ํฌ ํต์ ์ธก๋ฉด์์ ํด๋น ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ค.
ํ์ผ ์์คํ ๊ตฌ์กฐ
ํ๋๋์คํฌ ๊ณต๊ฐ์ ํ์ ํ๋ ์ํ์ด๋ฉฐ ํธ๋ ๋จ์๋ก ๋๋ ์ ์๋ค. ํธ๋์ ์นํฐ ๋จ์๋ก ์ชผ๊ฐ์ด์ ธ์๊ณ ์ด๋ฅผ ์ผ๋ ฌํํ์ฌ ํํํ๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.
๋๋ถ๋ถ์ ๋์คํฌ๋ ์์ ๊ฐ์ ๊ตฌ์กฐ๋ก ๋์ด์๋ค. ๊ฐ์ฅ ์์๋ MBR(Master Boot Record)์ด ์์นํ๋ฉฐ ๋ค์๋ Partition table์ด ์์นํ์ฌ ํํฐ์ ์ ๊ฐฏ์, boot ํํฐ์ ์ ์์น๋ฅผ ์ ์ฅํ๋ค. ๊ฐ ํํฐ์ ์๋ boot block, super block๋ฑ์ ๊ตฌ์กฐ๊ฐ ์๋ค. ํํฐ์ ๋ง๋ค ๋ค๋ฅธ ํ์ผ ์์คํ ๋ฐ ์ด์์ฒด์ ๊ฐ ๋์ํ ์๋ ์๋ค.
PC์ ์ ์์ ๋ฃ์ผ๋ฉด ROM-BIOS๊ฐ MBR์ ๋ถํธ์ฝ๋๋ฅผ ์ ์ฌํ๊ณ ์คํํ๋ค. ๊ทธ ํ boot partition์ ์ฐพ์ OS์ ๋ถํธ ์ฝ๋๋ฅผ ์ ์ฌํ๊ณ ์คํํ๋ฉด OS๊ฐ ๋ถํ ๋๋ค.
MS-DOS FAT ํ์ผ์์คํ
MS ์ฌ์์ PC์ฉ์ผ๋ก ๋ง๋ ํ์ผ์์คํ ์ด๋ค. ํ์ฌ๋ USB ๋๋ผ์ด๋ธ์ฉ์ผ๋ก ์ฌ์ฉํ๊ณ ๋์ฉ๋ ํ๋๋์คํฌ์๋ NTFS๋ฅผ ์ฌ์ฉํ๋ค. FAT ํ์ผ์์คํ ์ ๊ตฌ์กฐ๋ ๋ค์๊ณผ ๊ฐ๋ค.
FAT block์ ์ฌ์ฉํ๋ ๊ฒ์ด ํน์ง์ด๋ฉฐ FAT block table์ ์์ ํ๋ํ๋๋ ์ค์ ๋ฐ์ดํฐ๋ธ๋ก๊ณผ ๋์๋๋ค. FAT block table์ ๋ฐ์ดํฐ๋ธ๋ก์ ๋ค์ ๋ฐ์ดํฐ๋ธ๋ก์ ๋ํ๋ด๋๋ฐ์ ์ฌ์ฉ๋๊ธฐ๋ ํ๊ณ ๋น์ด์๋ free block์ ๋ํ๋ด๋ ์ญํ ๋ ํ๋ค. ์ด๋ ์ด์ ์ ์ค๋ช ํ๋ฏ์ด contiguos allocation ๋ฐฉ์๊ณผ linked-list ๋ฐฉ์์ ์ง๋ meta data๋ฅผ FAT block table์ด๋ผ๋ ์๋ฃ๊ตฌ์กฐ์ ๋ชจ์๋ ์ผ๋ก์จ ๋ง๋ค์ด์ง ๊ตฌ์กฐ์ด๋ค.
ํ์ฌ ๋๋ ํ ๋ฆฌ๋ ๋ฐ์ดํฐ ๋ธ๋ก์ ์ฃผ์๋ก ๊ธฐ์ตํ๋ฉฐ ๋๋ ํ ๋ฆฌ๋ฅผ ๋ง๋ค๋ฉด ํ
์ด๋ธ์ด ๋ง๋ค์ด์ง๊ณ root ๋๋ ํ ๋ฆฌ๋ฅผ ์ ์ธํ ๋๋ ํ ๋ฆฌ์์๋ .
๊ณผ ..
์ด ๊ธฐ๋ณธ์ผ๋ก ์์ฑ๋๋ค. ๋ฐ์ดํฐ ๋ธ๋ก์ ์ฌ์ด์ฆ๋ ๊ธฐ๋ก ์ byte ๋จ์๋ก ๊ธฐ๋ก๋์ง๋ง ๊ทธ๋ฆผ์๋ ํธ์์ block์ ๊ฐฏ์๋ก ํ์ํด๋์๋ค. ๋ฐ์ดํฐ ๋ธ๋ก์ ์์น๋ FAT block table์์ ๊ด๋ฆฌํ๊ณ ์๊ธฐ ๋๋ฌธ์ ์ฐ์์ ์ผ๋ก ํ ๋น๋์ด์์ง ์์ ์๋ ์๋ค.
ํ์ผ์ ์ฐพ๊ณ ์ ํ ๋๋ ํ์ผ์์คํ ์ด ์๊ณ ์๋ ๋ฃจํธ ๋๋ ํ ๋ฆฌ๋ฅผ ๊ธฐ์ค์ผ๋ก ์ฐพ์๋๊ฐ๋ฉด ๋๋ค.
๋ฐ์ดํฐ ๋ธ๋ก ์ํธ๋ฆฌ์์ ์ด๋ฆ์ 8๊ธ์ + ํ์ฅ์ 3๊ธ์๋ก ๊ตฌ์ฑ๋๊ณ ์์ฑ์ '๋๋ ํ ๋ฆฌ','ํ์ผ','์์คํ ํ์ผ'์ ๊ตฌ๋ถํ๊ธฐ ์ํด 1bit๋ฅผ ์ฌ์ฉํ์ฌ ๋ํ๋์๋ค. ํ์ฌ reserved ์์ญ์ ์์ด์ก์ผ๋ฉฐ ํ์ผ ์ด๋ฆ์ ํ์ฅํ ์ ์๋๋ก ๊ฐ๋ณ๊ธธ์ด ์ํธ๋ฆฌ๋ฅผ ์ฌ์ฉํ๊ณ ์๋ค.
๋ฐ์ดํฐ ๋ธ๋ก ์ํธ๋ฆฌ์ ํฌ๊ธฐ๋ฅผ ๊ธฐ์ค์ผ๋ก FAT-12(12bit), FAT-16, FAT-32 ์์ผ๋ก ๋ฐ์ ํ๋ค๊ฐ ํ์ฌ๋ NTFS๋ฅผ ์ฌ์ฉํ๋ค.
UNIX V7 FS
์ด๊ธฐ์ ์ ๋์ค ํ์ผ์์คํ ์ด๋ค. inode๋ฅผ ์ฌ์ฉํ ๊ฒ์ด ํน์ง์ด๊ณ Super block์๋ ์ ์ฒด ํ์ผ์์คํ ์ ํ์๊ตฌ์กฐ๊ฐ ๋ด๊ฒจ์๋ค. ์ค์ ๋ก๋ Super block๊ณผ inode ์ฌ์ด์ inode bitmap๊ณผ block bitmap์ด ์กด์ฌํ๋ค.
inode์ ํฌ๊ธฐ๋ ๋ฒ์ ๋ง๋ค ๋ค๋ฅด๊ณ ext-4 ํ์ผ์์คํ ์์๋ 256byte์ด๋ค. inode๋ ์์น๊ฐ ์ ํด์ ธ์์ด ๋ฒํธ๋ง ์๋ฉด ๋ฐ๋ก ์ ๊ทผํ ์ ์๋ ๊ฒ์ด ํน์ง์ด๋ค. 0,1๋ฒ inode๋ ์ ํต์ ์ผ๋ก ์ฌ์ฉํ์ง ์๊ณ 2๋ฒ inode block๋ถํฐ root ๋๋ ํ ๋ฆฌ๋ฅผ ๊ธฐ๋กํ๋ฉด์ ์ฌ์ฉ๋๋ค. inode์๋ ์ด๋ฆ์ ์ ์ธํ ํ์ผ์ ๋ชจ๋ ์ ๋ณด๊ฐ ๋ด๊ฒจ์๋ค. inode์ ์๋ ๋ฐ์ดํฐ๋ธ๋ก์ ์ด 13๊ฐ์ด๋ฉฐ 10๊ฐ์ directed ๋ฐ์ดํฐ๋ธ๋ก๊ณผ 3๊ฐ์ indirected ๋ฐ์ดํฐ๋ธ๋ก์ผ๋ก ๊ตฌ์ฑ๋์ด์๋ค. indirected ๋ฐ์ดํฐ๋ธ๋ก์ ์ฑ๊ธ, ๋๋ธ, ํธ๋ฆฌํ๋ก ๊ตฌ์ฑ๋์ด์์ผ๋ฉฐ ํฌ์ธํฐ๋ฅผ ํตํด index block์ ์ ๊ทผํ๋ค.
๋ชจ๋ ๋๋ ํ ๋ฆฌ ์ํธ๋ฆฌ์๋ .
๊ณผ ..
์ด ์์ผ๋ฉฐ ๋ฃจํธ ๋๋ ํ ๋ฆฌ์์๋ง ๋ ๊ฐ์ inode๊ฐ ๊ฐ๋ค. ๋๋ ํ ๋ฆฌ๋ table ํํ๋ก ๋์ด์์ผ๋ฉฐ ์ด๋ฆ๊ณผ inode๋ฅผ ๋งคํํด์ฃผ๋ ์ญํ ์ ํ๋ค. ํ์ฌ ์์
๋๋ ํ ๋ฆฌ(CWD)๋ inode ๋ฒํธ๋ก ๊ธฐ์ตํ๋ค. ํ์ฌ๋ ์ด๋ฆ์ ๊ธธ์ด๋ฅผ ๊ธธ๊ฒ ํ ์ ์๋๋ก ๊ฐ๋ณ ์ํธ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ค.
ํ์ผ ์ ๊ทผ ์ ์ด์์ ๋ค๋ค๋ฏ์ด Unix FS๋ ํ์ผ์ ๊ถํ์ Access Control List(๊ฐ ํ์ผ์ ๋ฐ๋ฅธ ์ฌ์ฉ์์ ๊ถํ์ ๋ํ๋ด๋ list)๋ก ํํํ๋ค. ์ฌ์ฉ์๋ ์์ ์, ๊ทธ๋ฃน์ฌ์ฉ์, ๊ธฐํ์ฌ์ฉ์๋ก ๋๋์ด์ง๋ฉฐ ๊ฐ bit๋ inode์ ์์ฑ์ผ๋ก ์ ์ฅ๋์ด์๋ค. ์ด๋ ๊ฒ ๊ฐ ์ฌ์ฉ์์ ๊ถํ์ ๋ํด ๋ํ๋ธ bit๋ inode ์์ ์ ์ฅ๋์ด์๋ค. ํด๋น ํ์ผ์ ๋ํ ์ ๊ทผ์ ํ์ผ์ ์ด ๋ ๊ฒ์ฌํ๊ฒ ๋๋ค. ๋ฐ๋ผ์ ํ์ผ์ ์ฐ ํ ๋ค๋ฅธ ์ฌ์ฉ์๊ฐ ์ ๊ทผ ๊ถํ์ ๋ฐ๊ฟ๋ ํ์ผ์ ์ด๊ณ ์๋ ๋์์ ์ด์ ๊ถํ์ด ์ ์ง๋๋ค.
<์ ๋์ค ํ์ผ์์คํ >
๋ธ๋ก์ ์ฒ์์๋ ์ญ์ Boot ๋ธ๋ก์ด ์กด์ฌํ๊ณ Super ๋ธ๋ก์ด๋ผ๋ ์ ์ฒด ํ์ผ์์คํ ์ ๋ํ ํ์์ ๋ณด๋ฅผ ๋ด์๋๊ณ ์๋ ๋ธ๋ก๋ ์๋ค. i-node ๋ธ๋ก์ ์์น, ๋ฐ์ดํฐ ๋ธ๋ก์ ์์น, ๋นํธ๋งต์ ์์น ๋ฑ์ด ๋ด๊ฒจ์๋ค.
๊ทธ ํ ๋์ค๋ i-node list๋ ๋ฆฌ๋ ์ค์์ 256byte์ ๋๋ก ๊ตฌ์ฑ๋์ด์์ผ๋ฉฐ, ๊ณ ์ ๋ ์์น์ ์๊ธฐ ๋๋ฌธ์ ์์์ ๊ทผํ์ฌ ์ฝ์ ์ ์๋ค. ์ ํต์ ์ผ๋ก 0๋ฒ๊ณผ 1๋ฒ inode๋ ์ฌ์ฉํ์ง ์๊ณ 2๋ฒ inode๋ฅผ root ๋๋ ํ ๋ฆฌ์ฉ์ผ๋ก ์ฌ์ฉํ๋ค. 2๋ฒ inode๋ถํฐ root ๋๋ ํ ๋ฆฌ์ ์ ๋ณด๋ฅผ ๊ธฐ๋กํ๊ณ ์๋ธ ๋๋ ํ ๋ฆฌ์ ๋๋ ํ ๋ฆฌ ๋ด์ ํ์ผ ์ ๋ณด๋ฅผ ๋ฐ์ดํฐ๋ธ๋ก์ ๊ธฐ๋กํ๋ค. ํ์ผ์ ๋ฐ์ดํฐ ๋ธ๋ก ์ ๋ณด๋ inode์ ๊ธฐ๋กํ์ฌ ์ ํด์ง ์์น์ ์๋ inode์ ์ ๊ทผํ๋ฉด ํด๋น ํ์ผ์ ๋ฐ์ดํฐ๋ธ๋ก์ ์ฐพ์ ์ ์๋๋ก ํ๋ค.
๋ฐ๋ผ์ ๋์์ ๊ฐ๋จํ 'ํ์ผ์ด๋ฆ'์ผ๋ก ์ฌ์ฉ์๊ฐ ์ ๊ทผํ๊ณ ์ ํ๋ฉด ๋ฐ์ดํฐ ๋ธ๋ก(๋๋ ํ ๋ฆฌ)์์ ํด๋น ์ด๋ฆ์ inode ๋ฒํธ๋ก ๋งคํํด์ฃผ๊ณ , ํด๋น inode๋ก ์ด๋ํ์ฌ ํ์ผ์ ์ ๋ณด๊ฐ ์ ์ฅ๋ ๋ฐ์ดํฐ ๋ธ๋ก ์์น๋ฅผ ์ฝ๋๋ค.
๋๋ ํ ๋ฆฌ๋ ์ด๋ฆ๊ณผ ํ์ผ์ ์ ๋ณด(inode)๋ฅผ ์ฐ๊ฒฐํด์ฃผ๋ ์ญํ ์ ํ๋ค.
inode ๋ธ๋ก์๋ ๋ฐ์ดํฐ๋ธ๋ก์ 13๊ฐ๋ฐ์ ๊ธฐ๋กํ์ง ๋ชปํ๋๋ฐ, ์ด๋ฅผ ๊ฐ์ ํ๊ธฐ ์ํด index๋ธ๋ก์ ๊ฐ๋ฆฌํค๋ ํฌ์ธํฐ๋ฅผ ์ถ๊ฐํด์ tree ํํ๋ก ์ฌ์ฉํ๋ค. ๋ฐ๋ผ์ 10๊ฐ์ด ๋ฐ์ดํฐ๋ธ๋ก์ direct block์ด๊ณ ๋๋จธ์ง 3๊ฐ๋ ์์ฐจ์ ์ผ๋ก single indirect block, double indirect block, triple indirect block์ด๋ค. ์ค์ ๋ก ์ฌ๋งํ ํฌ๊ธฐ๋ double์์ ์ปค๋ฒ ๊ฐ๋ฅํ๋ค.
FAT vs UNIX
์์์ ์ค๋ช ํ FAT ๋ฐฉ์๊ณผ Indexed allocation ๋ฐฉ์์ ์ฐจ์ด์ ์ ๋ณด๊ธฐ ์ํด FAT๊ณผ Unix ํ์ผ์์คํ ์ ๋น๊ตํด๋ณด์
OS | FAT | UNIX |
ํ์ผ ์ด๋ฆ | ๋ฐ์ดํฐ ๋ธ๋ก | ๋ฐ์ดํฐ ๋ธ๋ก |
ํ์ผ ์์ฑ | ๋ฐ์ดํฐ ๋ธ๋ก | inode |
ํ์ผ ๋ฐ์ดํฐ | ๋ฐ์ดํฐ ๋ธ๋ก | ๋ฐ์ดํฐ ๋ธ๋ก |
๋ ํ์ผ์์คํ ๋ชจ๋ ์ด๋ฆ์ ๋ฐ์ดํฐ๋ธ๋ก์ ์ ์ฅํ๋๋ฐ, ์ฒ์์๋ ๊ณ ์ ๊ธธ์ด๋ฅผ ์ฌ์ฉํ๋ค๊ฐ ์ด๋ฆ์ด ๊ธธ์ด์ง์ ๋ฐ๋ผ์ ๊ฐ๋ณ ์ํธ๋ฆฌ๋ฅผ ์ฌ์ฉํ๊ธฐ ์์ํ๋ค.
๊ฐ๋ณ ์ํธ๋ฆฌ ๊ตฌ์กฐ
a์ ๊ฐ์ด ์ํธ๋ฆฌ๋ง๋ค ํ์ผ์ด๋ฆ์ ๋ ํ์ฅํ ์ ์๋ ๊ฐ๋ณ๊ธธ์ด ์ํธ๋ฆฌ๋ฅผ ์ฌ์ฉํ๊ธฐ๋ ํ๊ณ , b์ ๊ฐ์ด heap์ ํ์ผ์ด๋ฆ์ ๋ชจ์๋๊ณ ํด๋น ์์น๋ฅผ ํฌ์ธํฐ๊ฐ ๊ฐ๋ฆฌํค๊ฒ ํ๊ธฐ๋ ํ๋ค. b ๋ฐฉ๋ฒ์ ๊ฑฐ์ ์ฌ์ฉํ๊ณ ์์ง ์์ผ๋ฉฐ FAT๊ณผ UNIX ํ์ผ์์คํ ๋ชจ๋ a์ ๊ฐ์ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๊ณ ์๋ค.
FAT ํ์ผ์์คํ ์ํธ๋ฆฌ
FAT ํ์ผ์์คํ ์ ๋ฐ์ดํฐ๋ธ๋ก ์ํธ๋ฆฌ์ธ๋ฐ, ์์์ ์ธ๊ธํ๋๋ก ํ์ผ์ ๋ชจ๋ ์ ๋ณด๊ฐ ๋ค์ด์๋ค. ์ฌ์ด์ Reserved ๋ถ๋ถ์ ์ฒ์์ ๋น๊ณต๊ฐ์ผ๋ก ๋๋์์ง๋ง ํ์ฌ๋ ์ด ์์ญ์ ๋ชจ๋ ์ฌ์ฉํ๊ณ ์ํธ๋ฆฌ๋ ๊ฐ๋ณ์ผ๋ก ํด์ ํ์ผ ์ด๋ฆ์ ๊ธธ๊ฒ ์ ์ฅํ ์ ์๊ฒ๋ ๋ง๋ค์๋ค.
FFS (Fast File System)
FFS๋ UNIX ํ์ผ ์์คํ ์ ํ์ฌ ๋ฒ์ ์ด๋ค. ์ด์ ์ ์ค๋ช ํ๋ฏ์ด FFS๋ ์ค๋ฆฐ๋ ๊ทธ๋ฃน์ ๋ง๋ค์ด ํค๋ arm์ ์์ง์์ ์ต์ํํ์ฌ rotational delay(=seek time)์ ์ค์ด๊ณ ์ ๊ณ ์ํ ํ์ผ์์คํ ์ด๋ค. ์ค๋ฆฐ๋ ๊ทธ๋ฃน์ ํค๋๊ฐ ์ ์ฐฉํ๋ฉด ๋ ์ด์ ์์ง์ด์ง ์๊ณ ๋ฐ์ดํฐ์ ์ ๊ทผํ ์ ์์ผ๋ฉฐ ์ธ์ ์ค๋ฆฐ๋ ๊ทธ๋ฃน์ผ๋ก ๊ฐ๊ธฐ์ ์ฉ์ดํ๋ค.
Linux EXT 2,3,4 FS
http://esos.hanyang.ac.kr/tc/2015gradproject8/i/entry/3
-
Ext 2
๋์คํฌ ๊ณต๊ฐ์ ์ค๋ฆฐ๋ ๊ทธ๋ฃน ๋จ์๋ก ์ชผ๊ฐ ํ์ผ์์คํ
Journaling์ ์ฌ์ฉํ์ง ์๋๋ค.
-
Ext 3
Ext 2์์ Journaling ๋ฐฉ์์ ์ด์ฉํ fsck ํ๋ก๊ทธ๋จ์ ๋์ ํด์ ํ๋ณต์๊ฐ์ ์ค์ธ ํ์ผ์์คํ
-
Ext 4
Ext2, Ext3๊ฐ indirected ํฌ์ธํฐ ๋งคํ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ ๊ฒ๊ณผ ๋ฌ๋ฆฌ Ext4๋ extent๋ผ๋ ์๋ก์ด ์๋ฃ๊ตฌ์กฐ๋ฅผ ๋ง๋ค์ด์ ์ฌ์ฉํ๋ค. indirected ๋ฐฉ์์ด ๊ฒฐ๊ตญ์๋ ๋ชจ๋ ๋ธ๋ก์ ๋ํ ํฌ์ธํฐ๊ฐ ํ์ํ์ง๋ง, extent ๋ฐฉ์์ ์ฌ๋ฌ ๊ฐ์ ๋ธ๋ก์ ์ฐ์์ ์ผ๋ก ๋ฌถ์ด๋ ์ผ๋ก์จ meta data์ ํฌ๊ธฐ๋ฅผ ์ค์๋ค.
๋ธ๋ก์ ์ฐ์์ ์ผ๋ก ๊ธฐ๋ก, ํ ๋นํ ์ ์์ผ๋ฏ๋ก ๋ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ ์ ์๋ค.
Comment