OS์ ์ญํ ์ ํฌ๊ฒ 3๊ฐ์ง๋ก ๋๋ ์ ์๋ค.
1. ํ๋ก์ธ์ค ๊ด๋ฆฌ 2. ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ 3. ํ์ผ๊ณผ I/O
File
ํ์ผ์ ํ ๋ง๋๋ก ์ ์ํ๋ฉด, ๋ฐ์ดํฐ๋ ํ๋ก๊ทธ๋จ์ ๋ด๋ ๊ทธ๋ฆ์ด๋ผ ์๊ฐํ ์ ์๋ค.
๊ทธ๋ฆฌ๊ณ ๊ทธ ๊ทธ๋ฆ๋ค์ ๊ด๋ฆฌํ๋ ์์คํ
์ด ํ์ผ ์์คํ
์ด๋ค.
ํ์ผ์ ๋ฐ์ดํฐ๋ ํ๋ก๊ทธ๋จ์ ๋ด๋๋ฐ, ํ์ผ์ ์ ์ผ ์ ๋ถ๋ถ์ 0๋ฒ์ง๋ผ ์๊ฐํ๊ณ offset์ด ์ปค์ง๋ฉด์ ์ฐ์์ ์ผ๋ก ๋ด๊ธฐ๊ฒ ๋๋ค.
์ฆ, ํ์ผ ํ๋๋ ๊ทธ ์์ฒด๋ก ํ๋์ logicalํ address space์ด๋ค. ๊ทธ ์ฃผ์๊ณต๊ฐ ์์ ๋ฐ์ดํฐ๋ฅผ ์ฐ์์ ์ผ๋ก ์ ์ฅํ๋ค.
File Structure
ํ์ผ์ ๊ตฌ์กฐ๋ 3๊ฐ์ง๊ฐ ์๋ค.
1. None: ๊ตฌ์กฐ๊ฐ ์๋ ํ์ผ๋ก ๋ฐ์ดํธ sequence๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ค.
2. Simple record structure: ํ์ผ์์ ํ ์ค์ด ํ๋์ ์๋ฏธ ๋จ์๋ฅผ ๊ฐ๋๋ค.
3. Complex Structures: hwp, word, ppt ์ฒ๋ผ ์์ฒด์ ์ผ๋ก ๋ด๋ถ์ ์ธ ํ์์ ๊ฐ์ง๊ณ ์๋ ํ์ผ
์ด๋ฌํ ํ์ผ์ ๊ตฌ์กฐ๋ ๋๊ฐ ๊ฒฐ์ ํ๋๋
OS๊ฐ ๊ฒฐ์ ํ๋ ํ์ผ๋ ์๊ณ , ํ๋ก๊ทธ๋จ์ด ๊ฒฐ์ ํ๋ ํ์ผ๋ ์๋ค.
File Attributes ( File Metadata )
ํ์ผ์ ๊ด๋ฆฌํ๊ธฐ ์ํ ์ ๋ณด(๋ฉํ ๋ฐ์ดํฐ)์๋ ํ์ผ์ ์ด๋ฆ, ํ์ฅ์, ์์น, ํฌ๊ธฐ, ๊ถํ ๋ฑ์ด ์๋ค.
ํ์ผ์ ๋ฉํ ๋ฐ์ดํฐ๋ ์ผ๋ฐ์ ์ผ๋ก directory ๋๋ Folder์ ์ ์ฅ๋๋ค. ๊ทธ ํด๋ ์์ ๋ด๊ธด ํ์ผ๋ค์ ๋ํ ์ ๋ณด๊ฐ ํด๋์ ์ ์ฅ๋๊ธฐ ๋๋ฌธ์, ํ์ผ์ ์ ๊ทผํ๋ ค๋ฉด ํด๋์ ๋จผ์ ์ ๊ทผํด์ผ ํ๋ค.
Directories
๋๋ ํ ๋ฆฌ๊ฐ ์กด์ฌํ๋ ์ด์ ๋ ํ์ผ์ ๋์ ๋ถํ๊ฒ ํ๋ ๋์คํฌ์ ํฉ์ด ๋์ผ๋ฉด ์ด๋์ ์ด๋ ํ์ผ์ด ์๋์ง ๊ด๋ฆฌํ๊ธฐ๊ฐ ์ด๋ ต๋ค. ๋๋ ๋น์ทํ ํ์ผ๋ค์ ๊ทธ๋ฃจํ์ ํ๊ณ ์ถ์๋ฐ, ํฉ์ด์ ธ ์์ผ๋ฉด ๊ทธ๊ฒ๋ ์ ๋๋ค.
=> ์ฌ์ฉ์ ์
์ฅ์์ ํ์ผ์ ์ฒด๊ณ์ ์ผ๋ก ๊ด๋ฆฌํ๊ธฐ ์ํด์ ๋๋ ํ ๋ฆฌ๊ฐ ํ์ํ๊ณ ,
=> ํ์ผ์ ๊ด๋ฆฌํ๋ ํ์ผ ์์คํ
์
์ฅ์์๋ ๋๋ ํ ๋ฆฌ๊ฐ ์ด๋ค ํ์ผ์ ์ ์ผํ ์ด๋ฆ์ ๊ฒฐ์ ํ ์ ์๋ ํธ๋ฆฌํ ๋ฐฉ๋ฒ์ ์ ๊ณตํ๋ค.
ํ์ผ์ ์ด๋ฆ์ ์ฌ์ฉ์๊ฐ ์ ํ๋ ๊ฑด๋ฐ, ํ๋ ๋์คํฌ ์์ ๋ค์ด ์๋ ๋ชจ๋ ํ์ผ์ ์ด๋ฆ์ ๋ค ๋ค๋ฅด๊ฒ ์ง์ ํ๊ธฐ๊ฐ ์ด๋ ต๋ค.
๊ทธ๋ฐ๋ฐ ๋๋ ํ ๋ฆฌ ์์ ํ์ผ์ ๋ฃ์ผ๋ฉด ๋๋ ํ ๋ฆฌ ์ด๋ฆ๊น์ง ํฌํจํด์ ํ์ผ์ ์ด๋ฆ์ด ๊ฒฐ์ ๋๊ฒ ๋๋ค.
ํ์ผ์ ์ด๋ฆ์ root๋ถํฐ ์์ํด์ ํ์ผ๊น์ง์ ๊ฒฝ๋ก๊ฐ ํ์ผ ์ด๋ฆ์ด ๋๋ค๊ณ ์๊ฐํ๋ฉด ๋๋ค.
=> ํ์ผ์ ์ด๋ฆ์ด ๊ฐ์๋, ๋ค์ด ์๋ ๋๋ ํ ๋ฆฌ๊ฐ ๋ค๋ฅด๋ฉด ์๋ก ๋ค๋ฅธ ์ด๋ฆ์ ๊ฐ๋๋ค๊ณ ์๊ฐํ๋ฉด ๋๋ค.
ํ์ผ ์์คํ ์ ํ์ผ๋ค์ ํธ๋ฆฌํ๊ฒ ๊ด๋ฆฌํ๊ธฐ ์ํด ๋๋ ํ ๋ฆฌ๋ผ๋ ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํ๊ณ ์๋ค.
A Directory Entry
ํ์ผ์ ๋ฉํ ๋ฐ์ดํฐ๊ฐ ๋๋ ํ ๋ฆฌ์ ์ ์ฅ๋๋ค๊ณ ํ๋ค. ์ด๋ค ์์ผ๋ก ์ ์ฅ๋๋์ง ๋ณด์.
์ด๋ค ๋๋ ํ ๋ฆฌ๋ ๋ด๋ถ์ ์ฌ๋ฌ ๊ฐ์ ํ์ผ์ ๊ฐ๊ณ ์๋ค.
๊ทธ๋ฌ๋ฉด ๊ทธ ๋๋ ํ ๋ฆฌ์ ์ํ ํ์ผ ๊ฐ๊ฐ์ ๋ํ ๋ฉํ ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋๋ ์ฅ์๊ฐ ํ์ผ์ ์๋งํผ ์กด์ฌํ ๊ฒ์ด๋ค.
ํ์ผ์ ๋ฉํ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ธฐ ์ํด ๋ฉํ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ธฐ์ ์ ํฉํ ์๋ฃ๊ตฌ์กฐ๊ฐ ํ์ํ๊ณ ๊ทธ๊ฒ์ Directory entry๋ผ๊ณ ํ๋ค.
=> ํ์ผ์ ๊ฐ์๋งํผ Directory entry๊ฐ ์กด์ฌํ๋ค.
๋๋ ํ ๋ฆฌ์๋ parent directory๋ฅผ ๊ฐ๋ฆฌํค๋ ํฌ์ธํฐ์, child directory๋ฅผ ๊ฐ๋ฆฌํค๋ ํฌ์ธํฐ๊ฐ ์กด์ฌํ๋ค.
์ผ๋ฐ์ ์ผ๋ก UNIX ๊ณ์ด์ OS๋ค์ ๋๋ ํ ๋ฆฌ๋ ํ๋์ ํ์ผ๋ก ์ทจ๊ธํ๋ค.
ํ์ผ์ธ๋ฐ ํ์ผ์ contents๊ฐ ๊ทธ ๋๋ ํ ๋ฆฌ ์์ ํ์ผ๋ค์ ๋ํ ์ ๋ณด๋ฅผ ๋ด๊ณ ์๋ ํ์ผ์ด๋ค.
ํ๋์ ๋๋ ํ ๋ฆฌ๋ ํด๋น ๋๋ ํ ๋ฆฌ ๋ด์ ํ์ผ์ ๋ํ ์ ๋ณด ๋ฟ ์๋๋ผ, ํ์ ๋๋ ํ ๋ฆฌ๋ค์ ๋ฉํ ๋ฐ์ดํฐ๋ ๊ฐ์ด ๊ฐ์ง๊ณ ์๋ค๋ ๊ฒ์ด๋ค.
ํ์ผ์ ์์น๋ ๋ฉํ ๋ฐ์ดํฐ์ ์ ์ฅ๋๋ค.
๊ทธ๋ฌ๋ฉด ๋ฉํ ๋ฐ์ดํฐ์ ์์น๋ ์ด๋์ ์ ์ฅ์ด ๋์ด์ผ ํ ๊น?
์ด๊ฒ ์ญ์ ๋๋ ํ ๋ฆฌ์ ์ ์ฅ์ด ๋๋ฉด, ๋๋ ํ ๋ฆฌ๋ง ์ฐพ์ผ๋ฉด ํ์ผ์ ๋ฉํ ๋ฐ์ดํฐ ์์น๋ฅผ ์ ์ ์๊ณ , ๋ฉํ ๋ฐ์ดํฐ๋ฅผ ํตํด ํ์ผ์ ์์น๋ฅผ ์ ์ ์๋ค.
๊ทธ๋ผ ๋๋ ํ ๋ฆฌ์ ์์น๋ ์ด๋ป๊ฒ ์๊น? ๋๋ ํ ๋ฆฌ๋ ํ์ผ๋ก ์ทจ๊ธ๋๊ธฐ ๋๋ฌธ์ ์์ ๋๋ ํ ๋ฆฌ๊ฐ ํ์ ๋๋ ํ ๋ฆฌ์ ์์น๋ฅผ ์๊ณ ์๋ค.
์ด๋ ๊ฒ ๋ฃจํธ๋ก๋ถํฐ ์ํ๋ ๋๋ ํ ๋ฆฌ๊ฐ ์๋ ์์น๊น์ง ์ฐพ์๊ฐ ์ ์๋ค.
๊ทธ๋ ๊ฒ ์ฒซ ๋ฒ์งธ ๋ฐ์ดํฐ ๋ธ๋ญ์ ์์น๋ฅผ ์ฐพ์๋ธ ๋ค์์ ์ฒซ ๋ฒ์งธ ๋ฐ์ดํธ๋ฅผ ์ฝ์๋ค๊ณ ํ์.
๊ทธ๋ฐ ๋ค์์ ๋ ๋ฒ์งธ ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ณ ์ถ์ผ๋ฉด ๋๊ฐ์ ํ์๋ฅผ ๋ฐ๋ณตํ๊ฒ ๋๋ค.
๋๋ ํ ๋ฆฌ ์ํธ๋ฆฌ๋ก ์ ๊ทผํด์ ๋ฐ์ดํฐ ๋ธ๋ญ์ ์์น๋ฅผ ์ฐพ์๋ด๊ณ , ๋ฐ์ดํฐ์ ์ ๊ทผํ๋ค.
๋ฐ์ดํฐ์ ์ ๊ทผํ ๋๋ง๋ค ๊ทธ ๋ฐ์ดํฐ์ ์์น๋ฅผ ํ์
ํ๊ธฐ ์ํ ๊ณผ์ ์ ๋ฐ๋ณตํ๊ฒ ๋๋ค.
ํ์ผ์ ๋ชจ๋ ํ๋๋์คํฌ์ ์ ์ฅ๋๊ธฐ ๋๋ฌธ์ ๋ฐ์ดํฐ์ ์์น๋ฅผ ํ์
ํ๊ธฐ ์ํด ๋์คํฌ์ ์ ๊ทผํ๋ ์ผ์ด ๋ฐ๋ณต๋๋ค.
=> ๋ฐ์ดํฐ ํ๋์ ์ ๊ทผํ๊ธฐ ์ํด ์ฌ๋ฌ ๋ฒ์ I/O ๋ฐ์ํ๊ฒ ๋๋ ์
์ด๋ค.
ํ์ผ์ ์คํํ๋ค๋ ํ์๋ ์คํํ๋ ํ์ผ์ ๋ฉํ ๋ฐ์ดํฐ๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ ค๋๋ ํ์๋ฅผ ํ๋ค.
์ด๋ ๊ฒ ํ๋ฉด ๋ฐ์ดํฐ์ ์์น๋ฅผ ์ฐพ๊ธฐ ์ํด ๋งค๋ฒ ๋ฐ์ดํฐ์ ์ ๊ทผํ ๋๋ง๋ค ๋์คํฌ์ ์ ๊ทผํ๋ ์ผ์ ํ์ง ์์๋ ๋๋ค.
=> I/O๋ฅผ ์ค์ด๊ธฐ ์ํด ํ์ผ์ ์คํํ๋ ๊ฒ์ด ํ์ํ๋ค.
ํนํ ๋ฉํ ๋ฐ์ดํฐ๊ฐ ์ฒ์ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ์ค๊ธฐ ์ ๊น์ง, ๋ฉํ ๋ฐ์ดํฐ๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ฆฌ๋ ๊ณผ์ ์์ I/O๊ฐ ๋ง์ด ๋ฐ์ํ๋ค. ๋ฃจํธ๋ถํฐ ์ ๊ทผํด์ ์ฐพ์๋๊ฐ์ผ ํ๊ธฐ ๋๋ฌธ์
๊ทธ๋์ ํ ๋ฒ์ด๋ผ๋ ํ์ผ์ด ์ ๊ทผ์ด ๋์ด ๋ฉ๋ชจ๋ฆฌ์ ๋ฉํ๋ฐ์ดํฐ๊ฐ ์ฌ๋ผ์ค๋ฉด ํ์ผ์ closeํด์ ๋ค ์ฌ์ฉํ๋ค๊ณ ํ๋๋ผ๋, ๊ทธ ํ์ผ์ ๋ฉํ ๋ฐ์ดํฐ๋ฅผ ๊ทธ๋ฅ ์ง์๋ฒ๋ฆฌ๋ฉด ๋ค์์ ๊ทธ ํ์ผ์ ๋ ๋ค์ ์ ๊ทผํ์ ๋ ๊ฐ์ ๊ณผ์ ์ ๋ฐ๋ณตํด์ผ ํ๋ค.
=> ๋๋ ํ ๋ฆฌ ์ํธ๋ฆฌ ์บ์๋ฅผ ์ฌ์ฉํ๋ค.
ํ ๋ฒ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ์จ ํ์ผ ๋ฉํ ๋ฐ์ดํฐ๋ close๋์ด๋ ๋ฒ๋ฆฌ์ง ์๊ณ ์บ์์ ๋จ๊ฒจ๋๋ค.
ํ์ผ์ด ๋ณ๊ฒฝ๋๊ฒ ๋๋ฉด, ํ์ผ์ ๋ฉํ ๋ฐ์ดํฐ๋ ๋ณ๊ฒฝ๋๊ฒ ๋๋๋ฐ ๊ทธ๋ฌ๋ฉด ๋จผ์ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ์จ ๋ฉํ ๋ฐ์ดํฐ๊ฐ ์
๋ฐ์ดํธ๊ฐ ๋ ๊ฒ์ด๋ค.
๊ทธ๋ฐ๋ฐ ๋ฉ๋ชจ๋ฆฌ์ ์๋ ์
๋ฐ์ดํธ ๋ ๋ฉํ ๋ฐ์ดํฐ๊ฐ ํ๋ ๋์คํฌ์ ์๋ ์๋ณธ ๋ฉํ ๋ฐ์ดํฐ์๋ ๋ฐ์์ด ๋์ด์ผ ํ๋ค.
์ต์ ์ ๋ฉํ ๋ฐ์ดํฐ ์ ๋ณด๊ฐ ํ๋ ๋์คํฌ์ ๋ฉํ ๋ฐ์ดํฐ ์ ๋ณด์ ์ผ์นํ๋๋ก ํด์ผ ํ๋ค.
=> ์ด ์ญ์ I/O๊ฐ ๋ฐ์ํ๋ค.
์ฑ๋ฅ์ ์ํด ๋ฉ๋ชจ๋ฆฌ์ ๊ณ์ ๋ฐ์ํ๋ค๊ฐ ์ต์ข
์ ์ผ๋ก ํ ๋ฒ ๋์คํฌ์ ์จ์ฃผ๋ ๋ฐฉ์์ ์ฌ์ฉํ ์ ์๋ค.
์ด๋ ๊ฒ ๋๋ฉด ๋ฉ๋ชจ๋ฆฌ์ ์๋ ๋ฉํ ๋ฐ์ดํฐ์ ํ๋ ๋์คํฌ์ ์๋ ๋ฉํ ๋ฐ์ดํฐ ๊ฐ์ ์ฐจ์ด๊ฐ ๋ฐ์ํ๋ค.
์ด๋ฌํ ์ฐจ์ด๋ ํ์ผ ์์คํ
์์ ๊ด๋ฆฌ๋ฅผ ํด์ผ ํ ๊ฒ์ด๋ค.
๋๋ ํ ๋ฆฌ ์ํธ๋ฆฌ๋ฅผ ํ๋์ ์งํฉ์ผ๋ก ๊ทธ๋ฃจํํด์ ์ฐ์์ ์ผ๋ก ์ ์ฅํด๋๊ณ ๊ด๋ฆฌ๋ฅผ ํ ํ์๊ฐ ์๋๋ฐ, ๋๋ ํ ๋ฆฌ ์ํธ๋ฆฌ ํ๋ ํ๋์ ์ฌ์ด์ฆ๊ฐ ํฌ๋ฉด ๋ฌถ์ด์ ๊ด๋ฆฌํด์ผ ํ ์ ๋ณด์ ์์ด ๋ง์์ง๋ค.
=> ์ ๋์ค๋ ๋๋ ํ ๋ฆฌ ์ํธ๋ฆฌ๋ฅผ ๋ถํ ํ๋ค.
์ ๋์ค๋ ๋๋ ํ ๋ฆฌ ์ํธ๋ฆฌ์์ File name๊ณผ ๋๋จธ์ง ๋ฉํ ๋ฐ์ดํฐ๋ค์ ๋ถ๋ฆฌ์ํจ๋ค.
๋๋จธ์ง ๋ฉํ ๋ฐ์ดํฐ๋ค์ ๋ณ๋๋ก ๋ชจ์์ inode๋ผ๋ ์ด๋ฆ์ผ๋ก ๊ด๋ฆฌํ๋ค.
์ด๋ ๊ฒ ํ๋ฉด ๋๋ ํ ๋ฆฌ๊ฐ ๊ด๋ฆฌํ๋ ๋๋ ํ ๋ฆฌ ์ํธ๋ฆฌ๋ค์ ํ์ผ ๋ค์๊ณผ inode๋ฅผ ๊ฐ๋ฆฌํค๋ ํฌ์ธํฐ๋ง ๊ฐ๊ณ ์๊ธฐ ๋๋ฌธ์ ์ํธ๋ฆฌ๋ค์ด ๊ฐ๋ฒผ์์ง๋ค.
๊ฐ๋ฒผ์ด ๋๋ ํ ๋ฆฌ ์ํธ๋ฆฌ๋ค์ ๋ชจ์์ ์ฐ์์ ์ผ๋ก ๊ด๋ฆฌํ๋ฉด ์ฌ์ด์ฆ๊ฐ ์์์ง๋ค.
=> Search๋ฅผ ํ ๋ ๋นจ๋ผ์ง๊ณ , ์ถ๊ฐ์ ์ธ ์ฌ๋ฌ ์ฅ์ ๋ค์ด ์๊ธด๋ค.
inode๋ค์ ํฌ์ธํฐ๋ฅผ ํตํด์ ์ ๊ทผํ๊ธฐ ๋๋ฌธ์ ๋ฌผ๋ฆฌ์ ์ผ๋ก ๋ชจ์์ ๊ด๋ฆฌํ ํ์๊ฐ ์๋ค.
Directory Implementation
๋๋ ํ ๋ฆฌ ์ํธ๋ฆฌ๋ค์ Linear ํ๊ฒ ์ญ ์จ๋๋ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ ์ ์๋ค.
=> ๊ตฌํํ๊ธฐ๊ฐ ์ฝ์ง๋ง, ๋๋ ํ ๋ฆฌ ์์ ํน์ ์ ๋ณด๋ฅผ ์ฐพ๊ธฐ ์ํด์๋ linear list๋ฅผ linear search๋ฅผ ํด์ผ ํ๋ค.
=> ์ค๋ฒํค๋๊ฐ ํฌ๋ค.
search ์๊ฐ์ ์ค์ด๊ธฐ ์ํด์ ๋๋ ํ ๋ฆฌ ์ํธ๋ฆฌ๋ linear list๋ก ๊ตฌํ์ ํ๋, ๋ณ๋๋ก ํด์ ํ
์ด๋ธ์ ๋ง๋ค์.
file name์ input์ผ๋ก ํด์ ํจ์์ ๋ฃ์ด์, output์ linear list์ ํน์ ์์น๋ฅผ ๊ฐ๋ฆฌํค๋ ํฌ์ธํฐ๊ฐ ๋๋๋ก ํด์ ํจ์๋ฅผ ๋ง๋ ๋ค.
Single-Level Directory
ํ๋์ ๋๋ ํ ๋ฆฌ ๋ด์๋ ๊ฐ์ ์ด๋ฆ์ ํ์ผ์ด ์ฌ๋ฌ ๊ฐ ์กด์ฌํ ์ ์๊ธฐ ๋๋ฌธ์ ๋ชจ๋ ๋ค ๋ค๋ฅธ ์ด๋ฆ์ ๊ฐ์ ธ์ผ ํ๋ค.
๋ฌผ๋ก 255๊ฐ์ ๋ฌธ์๋ฅผ ์ฌ์ฉํด์ naming์ ํ ์ ์๊ธฐ ๋๋ฌธ์ ๋ง๋ค ์ ์๋ ์ด๋ฆ์ ์๋ ์ถฉ๋ถํ์ง๋ง ์ฌ์ฉ์๊ฐ ๊ฐ์ ์ด๋ฆ์ ํ์ผ์ ์ฌ๋ฌ ๊ฐ ์์ฑํ๊ฒ ๋๋ฉด, ์ถฉ๋์ด ๋ฐ์ํ๋ค. ๋ชจ๋ ์ฌ์ฉ์๊ฐ ํ์ผ์ ์ด๋ฆ์ ์ ๊ฒน์น๊ฒ ์ง์ด์ผ ํ๋ฏ๋ก ์ฌ์ค์ ๋ถ๊ฐ๋ฅํ๋ค.
๋ํ ์ฐ๊ด์๋ ํ์ผ๋ค๋ผ๋ฆฌ ๊ทธ๋ฃจํ์ ํ ์๊ฐ ์๋ค.
=> ์ฌ์ค ์ด๋ก ๋ง ์กด์ฌํ๊ณ ์ฌ์ฉ๋์ง ์๋๋ค.
Two-Level Directory
์๋ก ๋ค๋ฅธ ์ฌ์ฉ์ ์ฌ์ด์๋ ๊ฐ์ ์ด๋ฆ์ ํ์ผ์ด ์กด์ฌํ ์ ์์ง๋ง, ์ญ์๋ ํ ์ฌ์ฉ์์ ์
์ฅ์์ ๋ณด๋ฉด, ๊ฐ์ ์ด๋ฆ์ ํ์ผ์ ์ฌ๋ฌ ๊ฐ ๋ง๋ค ์๊ฐ ์๋ค.
๋ํ ๊ทธ๋ฃจํ ์ญ์ ํ ์ ์๋ค.
Tree-Structured Directories ( Multi-Level Directory )
Tree-Structured Directories๋ ์๋ธ ๋๋ ํ ๋ฆฌ๋ฅผ ๋ฌดํํ ๋ง๋ค ์ ์๋ ๊ตฌ์กฐ์ด๋ค.
ํ์ฌ ๋๋ ํ ๋ฆฌ๋ฅผ ๊ธฐ์ค์ผ๋ก ํ๋ Relative path์ ๋ฃจํธ๋ฅผ ๊ธฐ์ค์ผ๋ก ํ๋ Absolute path๊ฐ ์๋ค.
ํธ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํ๋ฉด ํ๋์ ํ์ผ์ ์ฐพ๊ธฐ ์ํด์ ๋ชจ๋ ํธ๋ฆฌ๋ฅผ ๋์์ผ ํ๋ค๋ ๋ฌธ์ ๊ฐ ์๋ค.
=> Search path๋ฅผ ๋ฑ๋กํ๋ค.
Search path๋ ์ด๋ค ํ์ผ ๋ค์์ด ์ฃผ์ด์ก์ ๋, ๊ทธ ํ์ผ์ ์ฐพ๊ธฐ ์ํ ์์น๋ฅผ ๋์ดํด๋ ๊ฒ.
์ด๋ค ๋๋ ํ ๋ฆฌ๋ฅผ ์ญ์ ํ๊ฒ ๋๋ฉด, ํด๋น ๋๋ ํ ๋ฆฌ๋ฅผ ํฌํจํด์ ํ์ ๋๋ ํ ๋ฆฌ๊น์ง ๋ชจ๋ ์ญ์ ํด๋ฒ๋ฆฌ๋ ๊ฒ ๋ง์๊น?
๊ทธ๋ ๊ฒ ํ๋ฉด ๋๋ฌด ์ํํ ์ ์๋ค. ๊ทธ๋์ ํ์ ๋๋ ํ ๋ฆฌ๊ฐ ์์ ๋๋ง ์ญ์ ํ ์ ์๊ฒ ํ๋ฉด ์์ ํ๋ค.
๊ทธ๋ฐ๋ฐ ์ด๋ ๊ฒ ํ๋ฉด, ์ค์ ๋ก ๋ชจ๋ ๋๋ ํ ๋ฆฌ๋ฅผ ์ง์์ผ ํ๋ ์ํฉ์๋ ์ตํ์ ๋๋ ํ ๋ฆฌ๋ถํฐ ์์ํด์ ์๋ก ์ฌ๋ผ๊ฐ๋ฉด์ ํ๋์ฉ ์ญ์ ํด์ผ ํ๋ค.
=> ํธ์์ฑ์ด ๋จ์ด์ง๋ค.
ํธ์์ฑ๊ณผ ์์ ์ฑ ์ฌ์ด์ ๊ฒฐ์ ์ ํด์ผ ํ๋ค.
Acyclic-Graph Directories
ํธ๋ฆฌ ๊ตฌ์กฐ์์๋ ํ๋์ ๋
ธ๋๋ ํ๋์ ๋ถ๋ชจ๋ง ๊ฐ์ ธ์ผ ํ๊ธฐ ๋๋ฌธ์, ํ๋์ ํ์ผ์ ํ๋์ ๋๋ ํ ๋ฆฌ์๋ง ํฌํจ๋ ์ ์๋ค.
Graph ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํด์ ํ๋์ ํ์ผ์ด ์ฌ๋ฌ ๊ฐ์ ๋๋ ํ ๋ฆฌ์ ํฌํจ๋ ์ ์๋๋ก ํ์.
์์์์ count๋ผ๋ ํ์ผ์ ๋ ๊ฐ์ ๋๋ ํ ๋ฆฌ์ ํฌํจ๋์ด ์๋ค. count๋ผ๋ ํ์ผ์ ์ฌ๋ฌ ๋๋ ํ ๋ฆฌ๊ฐ ๊ณต์ ํ ์ ์๊ฒ ๋๋ค.
ํ๋์ ํ์ผ์ด ์ฌ๋ฌ ๋๋ ํ ๋ฆฌ์ ๋ค์ด ์๋ค๊ณ ํ์ ๋ 2๊ฐ์ง์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค.
1. ํ์ผ์ traverse ํ ๋, ํ๋์ ๋
ธ๋๊ฐ ๋ ๋ฒ ๋ฐฉ๋ฌธ๋๊ฒ ๋๋ค.
2. ์ญ์ ํ ๋๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค.
์ฒ์์ Kang์ด X๋ผ๋ ํ์ ๋๋ ํ ๋ฆฌ๋ฅผ ๋ง๋ค์๋ค.
๊ทธ ์ํฉ์์ Jung์ด X๋ผ๋ ๋๋ ํ ๋ฆฌ๋ฅผ ๊ณต์ ํ๊ณ ์ถ๋ค๋ฉด, Link๋ผ๋ ๋ช
๋ น์ ์ฌ์ฉํ๋ค.
link์ ๋ฐฉ์์๋ 2๊ฐ์ง๊ฐ ์กด์ฌํ๋ค.
Symbolic Link
: ๋๋ ํ ๋ฆฌ ์์ ์ค์ ๋ก ๋๋ ํ ๋ฆฌ ์ํธ๋ฆฌ๋ฅผ ๋ง๋๋ ๊ฒ์ด ์๋๋ผ, ๋๋ ํ ๋ฆฌ๋ฅผ ์ฐพ์๊ฐ๋ pathname๋ง ๋ฑ๋ก์ ํด๋๋ค.
๋ฉํ ๋ฐ์ดํฐ๋ ํ๋๋ง ์กด์ฌํ๋ค.
์ด๋ Kang์ด ์๊ธฐ๊ฐ ๋ง๋ X๋ผ๋ ๋๋ ํ ๋ฆฌ๋ฅผ ์ญ์ ํ๋ฉด ๋๋ ํ ๋ฆฌ ์ํธ๋ฆฌ๋ ์ญ์ ๋๊ณ , Jung ์
์ฅ์์๋ ์ญ์ ํ ์ ์ด ์๊ธฐ ๋๋ฌธ์ X๋ฅผ ์ฐพ์๊ฐ๋ ค๊ณ ์๋ํ ๊ฒ์ด๋ค. Jung์ ๋๋ ํ ๋ฆฌ ์ํธ๋ฆฌ๋ฅผ ๊ฐ์ง๊ณ ์์ง ์๊ธฐ ๋๋ฌธ์ pathname์ ํตํด ์ ๊ทผํ๊ฒ ๋๋ค. ๊ทธ๋ฐ๋ฐ ๋ฃจํธ๋ถํฐ ์์ํด์ Kang๊น์ง๋ ๊ฐ ์ ์๋๋ฐ Kang์ด X์ ๋ํ ๋๋ ํ ๋ฆฌ ์ํธ๋ฆฌ๋ฅผ ์ญ์ ํ๊ธฐ ๋๋ฌธ์ X๋ฅผ ์ฐพ์๊ฐ ์๊ฐ ์๋ค.
=> illegal directory access ๋ฐ์
Hard Link
: ๋๋ ํ ๋ฆฌ ์ํธ๋ฆฌ๋ฅผ ์นดํผํด์ ๋ง๋ค์ด์ค๋ค.
Jung์ ๋
๋ฆฝ์ ์ผ๋ก X์ ๋ํ ๋๋ ํ ๋ฆฌ ์ํธ๋ฆฌ๋ฅผ ๊ฐ๊ฒ ๋๋ค.
Kang์ด X๋ฅผ ์ญ์ ํ๋ค๊ณ ํด๋, Jung์ ๋
๋ฆฝ์ ์ธ ๋๋ ํ ๋ฆฌ ์ํธ๋ฆฌ๋ฅผ ๊ฐ๊ณ ์๊ธฐ ๋๋ฌธ์ X๋ฅผ ์ฐพ์๊ฐ ์ ์๋ค.
๊ทธ๋ฐ๋ฐ Kang์ด X๋ฅผ ์
๋ฐ์ดํธํ๊ฒ ๋๋ฉด, ์
๋ฐ์ดํธ๋ ์ ๋ณด๋ฅผ ๋๋ ํ ๋ฆฌ ์ํธ๋ฆฌ์ ๋ฐ์์ ํด์ผ ํ๊ธฐ ๋๋ฌธ์ Kang์ ์๊ธฐ๊ฐ ๊ฐ์ง ๋๋ ํ ๋ฆฌ ์ํธ๋ฆฌ์ ๋ฐ์์ ํ ๊ฒ์ด๋ค.
=> ๊ทธ๋ฐ๋ฐ Jung์ ์ด ์ฌ์ค์ ๋ชจ๋ฅด๊ธฐ ๋๋ฌธ์ Consistency ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์๋ค.
๋ ๋ค๋ฅธ ๋ฌธ์ ๋ Kang์ด X ๋๋ ํ ๋ฆฌ ์์ฒด๋ฅผ ์ญ์ ํด๋ฒ๋ฆฌ๋ ค ํ๋๋ฐ Jung์ด ๋๋ ํ ๋ฆฌ ์ํธ๋ฆฌ๋ฅผ ๊ฐ์ง๊ณ ์๊ธฐ ๋๋ฌธ์ ํจ๋ถ๋ก ์ญ์ ํ ์๊ฐ ์๋ค.
OS๋ ํน์ ๋๋ ํ ๋ฆฌ์ ๋ํด ํด๋น ๋๋ ํ ๋ฆฌ๋ฅผ ๊ด๋ฆฌํ๊ณ ์๋ ์์ ๋๋ ํ ๋ฆฌ์ ๋ํ ์ ๋ณด๋ฅผ ๋ชจ๋ ๊ฐ์ง๊ณ ์์ด์ผ ํ๋ค.
=> ์๋ฌด๋ ๊ด๋ฆฌํ๊ณ ์์ง ์์ ๋๋ง ์ค์ ๋ก ์ญ์ ํ ์ ์๋ค.
ํ์ผ์ ๋ํ ๋ฉํ ๋ฐ์ดํฐ๋ฅผ ๊ฐ๊ณ ์๋ ๋๋ ํ ๋ฆฌ๊ฐ ๋ช ๊ฐ์ธ์ง๋ฅผ ์ธ๋ Reference count๋ผ๋ ๊ฐ์ ์ ์งํ๋ค.
Refrence count๊ฐ 0์ด ๋๋ฉด, ๋๋ ํ ๋ฆฌ๋ฅผ ์ญ์ ํ ์ ์๋ค.
General Graph Directory
General Graph Directory๋ ์ฌ์ดํด์ ํ์ฉํ๋ Graph directory ๊ตฌ์กฐ๋ก, ํ์ ๋๋ ํ ๋ฆฌ๊ฐ ์์ ์ ์์ ๋๋ ํ ๋ฆฌ๋ฅผ ํ์ ๋๋ ํ ๋ฆฌ๋ก ๊ฐ์ง ์ ์๋ ๊ฒ์ ํ์ฉํ๊ธฐ ๋๋ฌธ์ ๋งค์ฐ ๋ณต์กํด์ง๋ค.
์์์์ X์ ๋ํ ๋๋ ํ ๋ฆฌ ์ํธ๋ฆฌ๋ฅผ Kang๋ ๊ฐ์ง๊ณ ์๊ณ , Y๋ ๊ฐ๊ณ ์๊ฒ ๋๋ค.
๊ทธ๋ ๊ธฐ ๋๋ฌธ์ X์ ๋ํ Reference count๋ 2๊ฐ ๋๋ค.
์ด๋ Kang์ด X๋ฅผ ์ง์ฐ๋ ค๊ณ ์๋ํ๋ฉด, Reference count๊ฐ 2->1๋ก ๋ฐ๋๊ณ 0์ด ์๋๊ธฐ ๋๋ฌธ์ X๋ ์ญ์ ๋์ง ์๋๋ค.
๊ทธ๋ฐ๋ฐ, ๋ฃจํธ์์ ํ๊ณ ๋ด๋ ค์์ Kang์์ X๋ก ๊ฐ ์ ์๊ธฐ ๋๋ฌธ์ X์๋ ์ ๊ทผ์ ํ ์ ์๊ฒ ๋๋ค.
=> ์ญ์ ๋์ง ์์์ง๋ง ์ ๊ทผํ ์๊ฐ ์๊ฒ ๋๋ ๊ฒ์ด๋ค.
garbage collection์ ํตํด ์ ๊ทผ ๋ถ๊ฐ๋ฅํ ๋ฐ์ดํฐ๋ฅผ ์ง์์ฃผ์ด์ผ ํ๋ค.
=> ์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆฐ๋ค.
์ฌ์ดํด์ ํ์ฉํ๊ฒ ๋๋ฉด ๋ณต์กํด์ง๊ธฐ ๋๋ฌธ์ ๋ณดํต ์ฌ์ดํด์ ํ์ฉํ์ง ์๋๋ค.
๊ทธ๋ฐ๋ฐ ์ฌ์ดํด์ ํ์ฉํ์ง ์๋ ํ์ผ ์์คํ
์ ๋ง๋ค๋ ค๋ฉด ์ฌ์ฉ์๊ฐ ์๋ธ ๋๋ ํ ๋ฆฌ๋ฅผ ๋ง๋ค ๋๋ง๋ค ์ฌ์ดํด์ด ๋ง๋ค์ด์ง๋์ง๋ฅผ Detect ํด์ผ ํ๋ค.
Protection
ํ์ผ์ ๋ํ ๊ถํ์ ๋ถ์ฌํ ์ ์๋ ์ฃผ์ฒด๋ ํ์ผ์ ์์ ์์ด๋ค.
1. ์ฌ์ฉ์๋ง๋ค ํ์ผ์ ๋ํ ์ ๊ทผ ๊ถํ์ ๋ช
์ํ๋ ๋ฐฉ๋ฒ
=> ์ฌ์ฉ์๊ฐ 100๋ช
์ด ์๋ค๊ณ ํ๋ฉด, ํ๋์ ํ์ผ์ ๋ํด์ 100๋ช
์ ์ ๊ทผ ๊ถํ์ ๋ช
์ํด์ผ ํ๋ค.
=> ๋๋ฌด ์ปค์ง๋ค.
2. UNIX๋ user, group, others 3๊ฐ์ง๋ก๋ง ์ฌ์ฉ์๋ฅผ ๊ตฌ๋ถํ๋ค.
user๋ ํ์ผ์ ์์ ์
group์ user์ ๊ฐ์ group์ ์ํ ์ฌ์ฉ์๋ค (๋ณ๊ฒฝํ ์ ์๋ค)
others๋ user์ ๋ค๋ฅธ group์ ์ํ ์ฌ์ฉ์๋ค
์ด 9 bit๋ก ๋ชจ๋ ์ฌ์ฉ์์ ๋ํ ๊ถํ์ ํ์ํ ์ ์๋ค.
UNIX์์๋ change mode(chmod) ๋ช ๋ น์ ํตํด ํ์ผ์ ๋ํ ๊ถํ์ ์ค์ ํ๋ค.
chmod 761 game ์ด๋ผ๊ณ ๋ช ๋ น์ ํ๋ฉด, game์ด๋ผ๋ ํ์ผ์ ๋ํด์ owner๋ R,W,E ๋ชจ๋ ๊ฐ๋ฅํ๊ณ owner์ ๊ฐ์ ๊ทธ๋ฃน์ ์ํ ์ฌ์ฉ์๋ค์ R,W๊ฐ ๊ฐ๋ฅํ๊ณ owner์ ๊ฐ์ ๊ทธ๋ฃน์ ์ํ์ง ์์ ์ฌ์ฉ์๋ค์ E๋ง ๊ฐ๋ฅํ๋ค.
๋ํดํธ๋ก groups๋ owner์ ๊ฐ์ ๊ทธ๋ฃน์ ์ฌ์ฉ์๋ค์ด์ง๋ง, chgrp ๋ช ๋ น์ ํตํด ๋ณ๊ฒฝํ ์ ์๋ค.
File-System Structure
ํ์ผ ์์คํ ์ด ํ์ผ๊ณผ ๋๋ ํ ๋ฆฌ ๊ด๋ฆฌ๋ฅผ ์ํด ํ์๋ก ํ๋ ๋ชจ๋ ์ ๋ณด ์ญ์ ํ์ผ์ด๊ธฐ ๋๋ฌธ์ ๋์คํฌ์ ์ ์ฅ์ด ๋๋ค.
ํ์ผ ์์คํ
์ด๋ผ๋ ํ๋ก๊ทธ๋จ์ ์ฌ์ค ์ปค๋์ ์ฝ๋์ด๋ค.
๊ทธ๋ฐ๋ฐ ๊ทธ๊ฑด ๊ทธ๋ฅ ์ฝ๋์ผ ๋ฟ์ด๊ณ ๊ทธ ์ฝ๋๊ฐ ํ๋ ๋์คํฌ์ ์๋ ์ ๋ณด๋ค์ ์ฝ์ด์ ํ์ผ ๊ด๋ฆฌ๋ฅผ ํด์ฃผ๋ ๊ฒ์ด๋ค.
์์์ ๋ดค๋ฏ์ด ํ์ผ ์์คํ
์ ๋ณต์กํ ๊ณ์ธต ๊ตฌ์กฐ๋ก ๋ง๋ค์ด์ง๋ค.
ํ์ผ์ ํ ๋ฒ ์ ๊ทผํ๋ ค๋ฉด ๊ทธ ๊ณ์ธต ๊ตฌ์กฐ๋ฅผ ์ธต์ธต์ด ํ๊ณ ๊ฐ์ ์ ๊ทผํด์ผ ํ๋ค.
ํจ์๊ฐ ํจ์๋ฅผ ๋ถ๋ฅด๋ฉด์ ๊ณ์ ๋ด๋ ค๊ฐ์ ๊ฒฐ๊ตญ ํ๋ ๋์คํฌ์ ์ ๊ทผํ๊ฒ ๋๋ ๊ฒ์ด๋ค.
=> ๊ทธ ๊ณผ์ ์ด ๋งค์ฐ ๋ฌด๊ฒ๊ธฐ ๋๋ฌธ์ open systemcall์ด ํ์ํ๋ค.
์ธต์ธต์ด ๊ฑฐ์ณ์ ๋ด๋ ค๊ฐ๋ ๊ฒ์ ํ์ง ์๊ธฐ ์ํด open system call์ด ํ์ํ๋ค.
open์ ์ต์ข
๋ชฉํ๋ ์ ๊ทผํ๊ณ ์ ํ๋ ํ์ผ์ ๋ฉํ ๋ฐ์ดํฐ๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ฆฌ๋ ๊ฒ์ด๋ค.
๊ฒฐ๊ตญ์ ๊ทธ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ์จ ๋ฉํ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง๊ณ ํ์ผ์ ์ ๊ทผ์ ํ๊ฒ ๋ค๋ ๊ฒ.
Open file table
=> Open๋ ํ์ผ์ ๋ํ ๋ฉํ ๋ฐ์ดํฐ๊ฐ ๋ชจ๋ ์ ์ฅ๋์ด ์๋ค.
Open-file table์๋ ๋ง์ ๋ฉํ ๋ฐ์ดํฐ๋ค์ด ์ ์ฅ๋์ด ์์ ๊ฒ์ธ๋ฐ, ๊ทธ ์ฌ์ด์์ ๋ด๊ฐ ์ฐพ๋ ๋ฉํ ๋ฐ์ดํฐ๋ฅผ ๋ ์ฐพ์์ผ ํ๋ค.
=> ์ด๊ฒ์ ์ฝ๊ฒ ํ๊ธฐ ์ํด์ ํ
์ด๋ธ์ ๋ํ ์ธ๋ฑ์ค๋ฅผ ์ ๊ณตํ๋๋ฐ, ์ด๊ฒ์ File descriptor๋ผ๊ณ ํ๋ค.
=> ์ด๊ฒ ์์ผ๋ฉด, ํ
์ด๋ธ ๋ด์์ ๋ด๊ฐ ์ฐพ๊ณ ์ ํ๋ ๋ฉํ ๋ฐ์ดํฐ๋ฅผ ๋ฐ๋ก ์ฐพ์๊ฐ ์ ์๋ค.
ํ์ผ์ openํ๊ธฐ ์ํด์ fopen์ด๋ผ๋ ํจ์๋ฅผ ์ฌ์ฉํ๋๋ฐ,
fp = fopen()์์ fopen์ ๋ฆฌํด๊ฐ์ธ fp๋ฅผ descriptor๋ผ ์๊ฐํ๋ฉด ๋๋ค.
/a/b/c/d/e.hwp
์ด๋ฌํ ๊ฒฝ๋ก์ ์ ์ฅ๋์ด ์๋ e.hwp๋ผ๋ ํ์ผ์ openํ๋ ค๊ณ ํ๋ค ํ์.
๋ฉํ ๋ฐ์ดํฐ๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ฆฌ๊ธฐ ์ํด์๋ ์ผ๋จ ํ์ผ์ ์์น๋ฅผ ์ฐพ์์ผ ํ๋ค.
e.hwp๋ผ๋ ํ์ผ์ ์์น๋ฅผ ์์๋ด๊ธฐ ์ํด์๋ ์์ ๋๋ ํ ๋ฆฌ์ธ d๋ฅผ ์ฐพ์์ผ ํ๋ค.
๊ทธ๋ฐ๋ฐ d์ ์์น๋ฅผ ์๊ธฐ ์ํด์๋ c๋ฅผ ์ฐพ์์ผ ํ๊ณ , c๋ฅผ ์ฐพ๊ธฐ ์ํด์๋ b๋ฅผ ์ฐพ์์ผ ํ๊ณ , b๋ฅผ ์ฐพ๊ธฐ ์ํด์๋ a๋ฅผ ์ฐพ์์ผ ํ๋ฉฐ, a๋ฅผ ์ฐพ๊ธฐ ์ํด์๋ ๊ฒฐ๊ตญ Root์์ ์ฐพ์์ผ ํ๋ค.
Root์์ a๋ฅผ ์ฐพ์์ ๋๋ ํ ๋ฆฌ ์ํธ๋ฆฌ๋ฅผ ์ฝ์ด์ b์ ์ ๊ทผํ๊ณ , b์์ c์ ๋๋ ํ ๋ฆฌ ์ํธ๋ฆฌ๋ฅผ ์ฐพ์์ c์ ์ ๊ทผํ๊ณ ์ญ์ญ ํด์ ๊ฒฐ๊ตญ e.hwp์ ๋ฉํ ๋ฐ์ดํฐ๋ฅผ ์ฐพ์ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ฆฌ๊ฒ ๋๋ค.
๊ทธ๋ฐ๋ฐ ์ด๊ฑธ open์ ํตํด ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ ค๋์ง ์์ผ๋ฉด ํ์ผ์ ์ ๊ทผํ ๋๋ง๋ค ์ด ๊ณผ์ ์ ๊ฑฐ์ณ์ผ ํ๋ค.
Mounting File System
ํ์ผ์ด ์ ์ฅ๋๋ ์ ์ฅ ์ฅ์น๋ ์ฌ๋ฌ ๊ฐ๊ฐ ์์ ์ ์๋ค. ๋์คํฌ, CD, USB, ... ๋ฑ
Windows์์๋ ๋ค๋ฅธ ์ ์ฅ ์ฅ์น์ ์๋ ํ์ผ์ ์ ๊ทผํ๊ธฐ ์ํด์๋ ๋จผ์ ๋๋ผ์ด๋ธ๋ถํฐ ๋ฐ๊ฟ์ผ ํ๋ค.
๋๋ผ์ด๋ธ๋ฅผ ๋ฐ๊พธ๊ณ ๊ทธ ๋๋ผ์ด๋ธ๋ฅผ ๋ฃจํธ๋ก ํ์ผ์ ์ฐพ์๋๊ฐ๋ค.
=> UNIX์์๋ ๋ง์ดํธ๋ผ๋ ๋ช
๋ น์ ์ ๊ณตํ๋ค.
USB์ ๋ฃจํธ ๋๋ ํ ๋ฆฌ๋ฅผ ํ๋ ๋์คํฌ๊ฐ ๊ด๋ฆฌํ๋ ํน์ ๋๋ ํ ๋ฆฌ์ ๊ฐ๋ค ๋ถ์ธ๋ค.
usr ๋๋ ํ ๋ฆฌ๊ฐ USB์ Root ๋๋ ํ ๋ฆฌ๊ฐ ๋๋ ๊ฒ์ด๋ค.
=> ์ด๋ ๊ฒ ํ๋ฉด ๋๋ผ์ด๋ธ๋ฅผ ๋ฐ๊พธ์ง ์์๋ ๋๋ค.
Allocation of File Data in Disk
ํ์ผ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ธฐ ์ํด์ ๋์คํฌ ๋ด์ Block์ ์ด๋ป๊ฒ ํ ๋นํ ๊ฒ์ธ๊ฐ.
ํ๋ ๋์คํฌ๋ ๊ธฐ๋ณธ์ ์ผ๋ก Block device์ด๋ค.
๋ฐ์ดํฐ๋ฅผ Block ๋จ์๋ก I/O๋ฅผ ํ๋ ์ฅ์น๋ผ๋ ๋ป์ด๋ค.
ํ๋ ๋์คํฌ์ ๊ฐ์ 2์ฐจ ์ ์ฅ ์ฅ์น๋ ๋๋ฆฌ๊ธฐ ๋๋ฌธ์ ํ ๋ฒ ์ ๊ทผํ ๋ ๋ง์ ์์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๊ฑฐ๋ ์จ์ ์ ๊ทผ์ ์ต๋ํ ์ค์ธ๋ค.
Block์ ํฌ๊ธฐ๋ ๋๊ฐ ๊ฒฐ์ ํ ๊น.
ํ๋ ๋์คํฌ๋ฅผ ํฌ๋งทํ ๋ Block์ ํฌ๊ธฐ๋ฅผ ์ง์ ํ ์ ์๋ค. ์ง์ ํ์ง ์์ผ๋ฉด ๋ํดํธ๋ก 4KB๋ก ์ค์ ๋๋ค.
Contiguous Allocation
Contiguous Allocation์ ํ๋ ๋์คํฌ์ ์ฐ์๋ Block์ ์ด ํ์ผ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ธฐ ์ํด ํ ๋นํ๊ฒ ๋ค๋ ๋ฐฉ์์ด๋ค.
ํ์ผ์ ์ฌ์ด์ฆ๊ฐ 16KB๋ผ๊ณ ํ๋ฉด ์ฐ์๋ 4KB Block 4๊ฐ๋ฅผ ํ ๋นํ๋ค.
<์ฅ์ >
์ด ๋ฐฉ์์ ์ฅ์ ์ ํ์ผ ๋ฐ์ดํฐ๋ฅผ ์ฐพ์ ๋, ์ฒซ ๋ฒ์งธ Block์ ์์น๋ง ์๋ฉด ๋๋จธ์ง ๋ฐ์ดํฐ์ ์์น๋ ๊ณ์ฐ์ ํตํด ์์๋ผ ์ ์๋ค๋ ๊ฒ์ด๋ค.
๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์ฒซ ๋ฒ์งธ Block์ ์์น์ ๊ธธ์ด ์ ๋ณด๋ง ์ ์ฅํ๋ฉด ํ์ผ์ ๋ชจ๋ ๋ฐ์ดํฐ์ ์ ๊ทผํ ์ ์๋ค.
ํ๋ ๋์คํฌ์์ ๊ฐ์ฅ ์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆฌ๋ ๊ฒ์ด head๋ฅผ ์ฎ๊ธฐ๋ ์๊ฐ์ด๋ค.
๊ทธ๋ฐ๋ฐ ์ฐ์๋ block์ ํ์ผ์ด ์ ์ฅ๋์ด ์์ผ๋ฉด ํ ๋ฒ์ head ์์ง์์ผ๋ก ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ ์ ์๋ค.
=> Contiguous Allocation์ ์ฌ์ฉํ๋ฉด I/O ์ค๋ฒํค๋๋ฅผ ์ต์ํํ ์ ์๋ค.
๋์์๊ณผ ๊ฐ์ด ํ ๋ฒ ์ ์ฅ๋๋ฉด ์ปค์ง ์ผ์ด ์๋ ํ์ผ๋ค์ ์ฌ์ฉํ๋ ์ดํ๋ฆฌ์ผ์ด์
์ ๋ํด์๋ Contiguous Allocation์ด ์ข์ ๋ฐฉ๋ฒ์ด ๋ ์๋ ์๋ค.
<๋จ์ >
ํ์ง๋ง ์์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น ๋ฐฉ์์์ ๋ดค๋ Contiguous Allocation์ ๋ฌธ์ ์ ๊ณผ ๋์ผํ๊ฒ, External fragmentation์ด ๋ฐ์ํ๋ค๋ ๋ฌธ์ ๊ฐ ์๋ค. ์ฆ, ๋น์ด์์ง๋ง ์ฌ์ฉ๋์ง ๋ชป ํ๋ ๊ณต๊ฐ๋ค์ด ๋ฐ์ํ๋ค๋ ์๋ฏธ์ด๋ค.
=> ํ์ง๋ง ํ๋ ๋์คํฌ์ ์ฉ๋์ด ์๋ ํฌ๊ธฐ ๋๋ฌธ์ ์ด๊ฑด ํฐ ๋ฌธ์ ๊ฐ ๋์ง ์๋๋ค.
๋ ํฐ ๋ฌธ์ ๋ ํ์ผ์ ํฌ๊ธฐ๋ฅผ ์ฒ์ ํ์ผ์ด ๋ง๋ค์ด์ก์ ๋์ ํฌ๊ธฐ๋ก fixํด๋ฒ๋ฆฌ๋ฉด ํ์ผ์ด ์ปค์ก์ ๋๋ ์ด๋ป๊ฒ ํ ๊น?
๋ง์ฝ ๋ค๋ฅธ ํ์ผ์ด ๊ทธ ๋ค์ ์ฐ์๋์ด ์ ์ฅ๋์ด ์๋ค๋ฉด, ํ์ผ์ด ์ปค์ง ์๊ฐ ์๋ค๋ ๋ฌธ์ ๊ฐ ์๋ค.
1. ํ์ฌ ์ฌ์ด์ฆ๋ณด๋ค ๋ ๋ง์ Block์ ์ฒ์์ ํ ๋นํ๋ค.
=> ํ์ผ์ด ์ปค์ง์ง ์์์ ์ฌ์ฉํ์ง ์์ผ๋ฉด ๋ญ๋น๋๋ ๊ณต๊ฐ์ด ๋๋ค. (internal fragmentation)
2. ํ์ผ์ ๊ทธ ์์น์์ ๋์ด๋ด์ ๋ ํฐ ์์น๋ก ์ฎ๊ธด๋ค.
=> I/O๊ฐ ๋งค์ฐ ๋ง์ด ๋ฐ์ํด์ ์ฑ๋ฅ์ด ๋จ์ด์ง๋ค.
์์ ๋งํ๋ฏ์ด ์ฐ์๋ ๊ณต๊ฐ์ Block์ ํ ๋นํ๋ฉด ์ฒซ ๋ฒ์งธ ๋ธ๋ญ์ ์์ ์ฃผ์๋ง ์๋ฉด ๋ชจ๋ ๋ฐ์ดํฐ์ offset์ ์ด์ฉํด์ ์ ๊ทผํ ์ ์๋ค๋ ๊ฒ์ด๋ค.
Contiguous Allocation์ ์ฅ์ ์ ์ด ์ ๋์ ์ ๋ณด๋ง ๊ฐ์ง๊ณ ๋ ์ถฉ๋ถํ ๋ฐ์ดํฐ๋ฅผ ์ฐพ์๋ผ ์ ์๋ค๋ ๊ฒ.
Linked Allocation
Linked Allocation์ ๊ฐ ํ์ผ์ Block๋ค์ Linked list ํํ๋ก ์ ์ฅํ๋ ๋ฐฉ์์ด๋ค.
Contiguous Allocation๊ณผ ๋ฌ๋ฆฌ ๊ฐ ๋ธ๋ญ์ ๋ค์ ๋ธ๋ญ์ ํฌ์ธํฐ๋ฅผ ๊ฐ์ง๊ณ ์๊ธฐ ๋๋ฌธ์ ์ค์ ๋ก๋ ์ฐ์๋ ๊ณต๊ฐ์ ์ ์ฅํ์ง ์์๋ ๋๋ค.
Linked Allocation์ ์ฌ์ฉํ๋ฉด, Contiguous allocation์ ๋ฌธ์ ์๋ File Growth ๋ฌธ์ ๋ฅผ ๊ฑฑ์ ํ์ง ์์๋ ๋๋ค.
ํ์ผ์ด ์ปค์ง๋ฉด ์๋ก์ด ๋ธ๋ญ์ ํ ๋นํ๊ณ ํฌ์ธํฐ๋ง ์ฐํด์ฃผ๋ฉด ๋๋ค.
<์ฅ์ >
์ฒซ ๋ฒ์งธ ๋ธ๋ญ์ ์ฃผ์๋ง ๊ฐ๊ณ ์์ผ๋ฉด ๋๊ณ , ํ์ผ์ ํฌ๊ธฐ๋ฅผ ํค์ฐ๊ณ ์ค์ด๋ ๊ฒ์ด ์์ ๋กญ๋ค๋ ์ฅ์ ์ด ์๋ค.
<๋จ์ >
๊ทธ๋ฐ๋ฐ ์ฅ์ ๋ง ์๋ ๊ฑด ์๋๋ค. Random Access๊ฐ ๋ถ๊ฐ๋ฅํ๋ค๋ ๋จ์ ์ด ์๋ค.
์๋ฅผ ๋ค์ด ์ธ ๋ฒ์งธ Block์ ์ฐพ์๊ฐ๊ธฐ ์ํด์๋ ์ฒซ ๋ฒ์งธ Block ๋ถํฐ ์์ํด์ ํ๊ณ ํ๊ณ ๊ฐ์ผ ํ๋ค.
=> Disk I/O์ Efficiency๊ฐ ์ข์ง ์๋ค.
๋ํ ํ ์นํฐ๊ฐ ๊นจ์ ธ๋ฒ๋ ค์ ํฌ์ธํฐ๊ฐ ์์ค๋๋ฉด, ๊ทธ ๋
ธ๋์ ์ดํ์ ๋
ธ๋๋ค๋ ์ฐพ์ ์๊ฐ ์๊ฒ ๋๋ค๋ ๋ฌธ์ ๋ ์๋ค.
=> ๊นจ์ง ๋ธ๋ญ๋ถํฐ ์ดํ์ ๋ธ๋ญ๋ค์ ๋ชจ๋ ์๊ฒ ๋๋ค.
ํฌ์ธํฐ๊ฐ ๊ณต๊ฐ์ ์ฐจ์งํ๋ค๋ ๋ฌธ์ ๊ฐ ์๊ธด ํ์ง๋ง ์ด๊ฑด ํฐ ๋ฌธ์ ๊ฐ ์ ๋๋ค.
์ด๋ฌํ ๋จ์ ๋ค๋ก ์ธํด Windows์์๋ ์ด๊ฒ์ ๋ฒ ์ด์ค๋ก ์กฐ๊ธ ๋ณํ์ํจ FAT ๋ฐฉ์์ ์ฌ์ฉํ๋ค.
File Allocation Table ( FAT )
๋ค์ ๋ธ๋ญ์ ๋ํ ํฌ์ธํฐ๋ฅผ ๋ธ๋ญ ๋ด์ ์ ์ฅํ๋ ๊ฒ์ด ์๋ ๋ณ๋์ ํ ์ด๋ธ๋ก ๊ด๋ฆฌํ๋ ๋ฐฉ์์ด๋ค.
๋ถํ
์์ ์ด ํ
์ด๋ธ์ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ฆฐ๋ค. ๋ชจ๋ ํ์ผ์ ๋ํ ์์น ์ ๋ณด๊ฐ ์ด FAT ์์ ๋ค์ด ์๋ค.
๋ชจ๋ ํ์ผ์ Block์ ์์ ๋ธ๋ญ์ ์์น๋ง ์๊ณ ์์ผ๋ฉด ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ์ ํตํด ์ ๊ทผํ ์ ์๋ค.
ํ๋ ๋์คํฌ ๋ด์์ ํ์ผ์ ํฌ์ธํฐ๋ฅผ ์ฝ์ด์ ๋ค์ ๋ธ๋ญ์ ์ ๊ทผํ๋ ๊ฒ์ด ์๋๋ผ ๋ฉ๋ชจ๋ฆฌ ๋ด์์ ๋ค์ ๋ธ๋ญ์ ์ ๊ทผํ๊ธฐ ๋๋ฌธ์ ๋น ๋ฅด๋ค.
=> Faster random access ๊ฐ๋ฅ
๋ฌธ์ ๋ FAT๊ฐ ์ ์ค๋๋ฉด ํ์ผ ์์คํ
์ด ๋ค ๋ ์๊ฐ๋ฒ๋ฆฐ๋ค๋ ๋จ์ ์ด ์๋ค.
=> ์ด ๋ฌธ์ ๋ฅผ ์๋ฐฉํ๊ธฐ ์ํด์ FAT์ ์ฌ๋ณธ์ ์ฌ๋ฌ ๊ฐ ์ ์ฅํด๋๋ค.
=> ํ์ผ์ ์์น๊ฐ ๋ฐ๋๋ฉด ์ฌ๋ณธ์ ๋ด์ฉ๋ ๋ฐ๊ฟ์ผ ํ๋ค๋ ์ค๋ฒํค๋๊ฐ ์์ง๋ง, ๊ณ์ ๋ฉ๋ชจ๋ฆฌ์ ์๋ FAT๋ง ๋ฐ๊พธ๋ค๊ฐ ๋ง์ง๋ง์ ํ๋ ๋์คํฌ์ ๋ฐ์ํ๊ธฐ ๋๋ฌธ์ ๊ทธ ์ค๋ฒํค๋๋ ๊ทธ๋ ๊ฒ ํฌ์ง ์๋ค.
์ฌ๋ณธ ์ค ํ๋๊ฐ ๊นจ์ง๊ฒ ๋๋ฉด, ๋ค๋ฅธ ์ฌ๋ณธ์ ์ด์ฉํด์ ์ด๋ฅผ ๋ณต๊ตฌํด ํญ์ ๊ฐ์ ์์ ์ฌ๋ณธ์ ์ ์งํ๋ค.
๊ทธ๋ ๊ธฐ ๋๋ฌธ์ FAT๊ฐ ์ ์ค๋์ด ํ์ผ ์์คํ ์ด ๋ ์๊ฐ๋ ๊ฒฝ์ฐ๋ ๊ฑฐ์ ์๋ค๊ณ ๋ณผ ์ ์๋ค.
Indexed Allocation
๊ฐ ํ์ผ์ ํ์ผ์ ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋ Block๋ค์ ์์น๋ฅผ ๊ฐ๋ฆฌํค๋ ํฌ์ธํฐ๋ค๋ง ๋ด๊ณ ์๋ ๋ธ๋ญ์ธ index block์ ๊ฐ์ง๊ณ ์๋ค.
๋๋ ํ ๋ฆฌ ์ํธ๋ฆฌ๋ ์ธ๋ฑ์ค ๋ธ๋ญ์ ์์น๋ง ์ ์ฅํ๊ณ , ์ธ๋ฑ์ค ๋ธ๋ญ ๋ด์ ํฌ์ธํฐ๋ฅผ ํตํด ๋ชจ๋ ๋ฐ์ดํฐ๊ฐ ๋ค์ด ์๋ ๋ธ๋ญ์ ์ ๊ทผํ๋ค.
index block ์์ฒด๊ฐ ํ๋์ ๋์คํฌ ๋ธ๋ญ์ด๋ค.
๋ธ๋ญ์ ํฌ๊ธฐ๊ฐ 4KB๋ผ๊ณ ํ๋ค๋ฉด, ํฌ์ธํฐ๋ฅผ 1024๊ฐ ์ ์ฅํ ์ ์๋ค. ๊ทธ๋ฌ๋ฉด 1024๊ฐ์ ๋ธ๋ญ๋ง ์ฌ์ฉํ ์ ์๋ค๋ ๋ป์ด ๋๋ค.
=> 4MB ๊น์ง๋ง ์ ์ฅํ ์ ์๋ค๋ ์๋ฏธ์ด๋ค (4KB * 1024 = 4MB)
์ด๋ณด๋ค ํฐ ํ์ผ์ ์ ์ฅํ ์ ์๋ค๋ ๋จ์ ์ด ์๋ค.
์ธ๋ฑ์ค ๋ธ๋ญ์ ํ์ฅํ๋ ๋ณ๋์ ๋ฐฉ๋ฒ์ด ํ์ํ๋ค.
1. Linked Scheme
index block๋ค์ ๋งํฌ๋ ๋ฆฌ์คํธ๋ก ์ฐ๊ฒฐํ๋ ๋ฐฉ๋ฒ
4KB์ง๋ฆฌ index block์๋ 1024๊ฐ์ ํฌ์ธํฐ๊ฐ ์ ์ฅ๋๋๋ฐ, 1023๊ฐ๋ ํ์ผ์ ๋ฐ์ดํฐ๊ฐ ๋ค์ด ์๋ ๋์คํฌ ๋ธ๋ญ์ ๋ํ ํฌ์ธํฐ์ด๊ณ ๋๋จธ์ง ํ๋๋ ๋ค์ index block์ ๋ํ ํฌ์ธํฐ์ด๋ค.
2. Two-level index
index block์ ๊ฐ๋ฆฌํค๋ ํฌ์ธํฐ๋ฅผ ์ ์ฅํ๋ index block์ ๋ณ๋๋ก ๋ง๋ ๋ค.
1024 * 1024๊ฐ์ ๋ฐ์ดํฐ ๋ธ๋ญ์ ๋ง๋ค ์ ์๊ฒ ๋๋ค.
=> ์ญ์๋ ํ์ผ ์ฌ์ด์ฆ์ ์ ํ์ด ์๊ธฐ๊ธด ํ๋ค.
3. Combined Scheme
UNIX ๊ณ์ด ์ด์์ฒด์ ๊ฐ ํ์ผ์ ๋ฉํ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ์๋ฃ๊ตฌ์กฐ๊ฐ inode์ด๋ค.
inode์์๋ ๋ฐ์ดํฐ ๋ธ๋ญ์ ๊ฐ๋ฆฌํค๋ ํฌ์ธํฐ์ธ direct block๊ณผ
index block์ ๊ฐ๋ฆฌํค๋ ํฌ์ธํฐ์ธ single indirect, double indirect, triple indirect์ด ์๋ค.
single indirect๋ single level index block์ ๊ฐ๋ฆฌํค๊ณ , double indirect๋ two level index block์ ๊ฐ๋ฆฌํค๊ณ , triple indirect๋ three level index block์ ๊ฐ๋ฆฌํจ๋ค.
direct block ํ๋๋ 4KB์ ๋ธ๋ญ ํ๋๋ฅผ ์ปค๋ฒํ ์ ์๊ณ , single indirect๋ 1024 * 4KB = 4MB์ ํ์ผ์, double indirect๋ 1024 * 1024 * 4KB = 4GB์ ํ์ผ์, triple indirect๋ 1024 * 1024 * 1024 * 4KB = 4TB์ ํ์ผ์ ์ปค๋ฒํ ์ ์๋ค.
Free-Space Management
๋น ๋ธ๋ญ๋ค์ ๊ด๋ฆฌํ๋ ๋ฐฉ๋ฒ
Bit map or bit vector
๋ธ๋ญ ์ ๋งํผ์ ๋นํธ๋ฅผ ์ฌ์ฉํ๋ Bit map์ ๋ง๋ ๋ค.
bit๊ฐ 1์ด๋ฉด ๋น์ด ์๋ ๋ธ๋ญ์์ ์๋ฏธํ๊ณ bit๊ฐ 0์ด๋ฉด ์ฌ์ฉ ์ค์ธ ๋ธ๋ญ์์ ์๋ฏธํ๋ค.
์ด ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ฉด ๋งค๋ฒ bit vector๋ฅผ 1bit์ฉ ๋๋ฉด์ ๋น์ด์๋ ๋ธ๋ญ(1)์ ์ฐพ์ผ๋ ค๋ฉด ์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆฐ๋ค๋ ๋ฌธ์ ๊ฐ ์๋ค.
์๊ฐ์ด ์ง๋ ์๋ก ์ฌ์ฉ ์ค์ธ ๋ธ๋ญ(0)์ด ๋ง์์ง๊ธฐ ๋๋ฌธ์ ๋ ์ค๋ ๊ฑธ๋ฆด ๊ฒ์ด๋ค.
1bit์ฉ ์ฝ์ง ๋ง๊ณ ์๋ ๋จ์๋ก ์ฝ์. 32bit๋ฅผ ์ฝ์๋๋ฐ 0์ด๋ฉด ๋ชจ๋ ์ฐจ์๋ค๋ ๋ป์ด๋ค.
Bit map์ ์ฌ์ฉํ์ ๋์ ์ฅ์ ์Bit map์์ ์ฐ์๋ 1์ ์ค์ ๋ก ์ฐ์๋ ๋ธ๋ญ์ด ๋น์ด์๋ค๋ ๊ฒ์ ์๋ฏธํ๋ค.
Linked list
๋น ๋ธ๋ญ๋ค์ linked list๋ก ๊ด๋ฆฌํ๋ค.
์ฐ์์ ์ผ๋ก ๋น์ด ์๋ ๊ณต๊ฐ์ ์ฐพ๊ธฐ๊ฐ ๋งค์ฐ ํ๋ค๋ค๋ ๋ฌธ์ ๊ฐ ์๋ค.
Grouping
์ฒซ ๋ฒ์งธ ๋ธ๋ญ์ ๋น์ด์๋ ๋ธ๋ญ๋ค์ ํฌ์ธํฐ๋ฅผ ๊ฐ์ง๋ค.
๊ทธ๋ฆฌ๊ณ ๋ง์ง๋ง ํฌ์ธํฐ๋ ๋ค์ ๋ธ๋ญ์ ๋ํ ํฌ์ธํฐ๋ฅผ ๊ฐ๋ฆฌํจ๋ค.
๋ค์ ๋ธ๋ญ์๋ ๋ ๋น์ด ์๋ ๋ธ๋ญ๋ค์ ํฌ์ธํฐ๊ฐ ๋ค์ด ์๋ค.
Counting
์ฒซ ๋ฒ์งธ ๋น์ด ์๋ ๋ธ๋ญ์ ๋ฒํธ์, ๊ทธ ๋ธ๋ญ๋ถํฐ ๋ช ๊ฐ์ ๋ธ๋ญ์ด ์ฐ์์ผ๋ก ๋น์ด ์๋์ง์ ๋ํ ์ ๋ณด๋ฅผ pair๋ก ๊ด๋ฆฌํ๋ค.
OS๋ ์ฑ๋ฅ ๋ฌธ์ ๋๋ฌธ์ ์ฌ๋งํ๋ฉด ์ฐ์์ ์ผ๋ก ํ ๋นํ๊ธฐ๋ฅผ ์ํ๋ค.
๊ทธ๋ฌ๋ค๋ณด๋ ํ๋์ ํ์ผ์ด ์ญ์ ๋๋ฉด ๊ทธ ํ์ผ์ด ์ฌ์ฉํ๋ ์ฐ์๋ ๋ธ๋ญ์ด ์ญ์ ๋ ๊ฐ๋ฅ์ฑ์ด ๋๋ค. ๊ทธ๋์ ๋ช ๋ฒ ๋ธ๋ญ๋ถํฐ ๋ช ๊ฐ์ ๋ธ๋ญ์ด ์ฐ์์ ์ผ๋ก ๋น์ด์๋์ง๋ฅผ ์ ์ฅํ๋ ๊ฒ์ด ํจ์จ์ ์ผ ์ ์๋ค.
Performance
๋์คํฌ์ ์ ๊ทผํ๋ ๊ฒ์ ๋งค์ฐ ๋๋ฆฐ ์์ ์ด๊ธฐ ๋๋ฌธ์, ์ด๊ฒ์ ๋งํํ๊ธฐ ์ํ ๊ธฐ์ ๋ค์ด ๋ง์ด ์๋ค.
Disk Cache
๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ์ ํน์ ์์ญ์ ๋์คํฌ์์ ์ฝ์ด์จ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ์บ์๋ก ์ฌ์ฉํ๋ค.
๋์คํฌ์ ์ ๊ทผํ๊ธฐ ์ ์ ๋์คํฌ ์บ์๋ฅผ ๋จผ์ ํ์ํ๋ค.
๋์คํฌ ์ ๊ทผ ๋ณด๋ค๋ ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ์ด ํจ์ฌ ๋น ๋ฅด๊ธฐ ๋๋ฌธ์ ์ฑ๋ฅ์ด ๊ฐ์ ๋ ์ ์๋ค.
Free-behind and Read-ahead
Read-ahead:
ํ ๋ฒ ๋์คํฌ์ ์ ๊ทผํ ๋, ํ์ํ ๋ธ๋ญ ์ธ์ ๋ค์ ๋ธ๋ญ๋ค๋ ๋ฏธ๋ฆฌ ๊ฐ์ด ์ฝ์ด์จ๋ค.
Free-behind:
์ด๋ค ๋ฐ์ดํฐ ๋ธ๋ญ์ ์์ฒญํด์ ๋ฉ๋ชจ๋ฆฌ์ ๊ฐ์ ธ์์ ๋, ์ด ๋ธ๋ญ์ด ์ฐจ์งํ๊ณ ์๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ด ์์ํ
๋ฐ ๊ทธ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ๋ธ๋ญ์ ๋ค ์ฝ์๋ค๊ณ ํ๋๋ผ๋ ๋ฐ๋ก ๋น์ฐ์ง ๋ง๊ณ , ๋ค์ ๋ธ๋ญ์ ์ฝ์ผ๋ผ๋ ์์ฒญ์ด ๋ค์ด์์ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ ค์ผ ํ ๋ ๊ทธ ๋ ๋น์ฐ์.
=> ๋์คํฌ ์บ์์ ๋น์ทํ์ง๋ง ๋ค๋ฅด๋ค.
ํ๋ก์ธ์ค๊ฐ I/O๋ฅผ ํ๊ฒ ๋๋ฉด, ๋ถ๋ฌ์จ ๋ฐ์ดํฐ๋ ํ๋ก์ธ์ค์ address space์ ์ ์ฅ๋๊ฒ ๋๋ค.
๊ทธ๊ฒ ๋ค ์ฌ์ฉ์ด ๋์ด๋ ๋ฐ๋ก ๋์คํฌ ์บ์๋ก ๋ณด๋ด๊ฑฐ๋ ๋ฒ๋ฆฌ๊ฑฐ๋ ํ์ง๋ง๊ณ , ๋ค์ ๋ธ๋ญ์ ์ฝ์ด์์ address space์ ์ ์ฅํด์ผ ํ ๋, ๋์คํฌ ์บ์๋ก ๋ณด๋ด๊ฑฐ๋ ๋น์ฐ์.
=> ์ต๋ํ ๋ฆ๊ฒ ๋ฒ๋ฆฌ์.
Virtual disk ( RAM Disk )
๋ฉ๋ชจ๋ฆฌ์ ์ผ์ ์์ญ์ ๋์คํฌ ์ฒ๋ผ ์ฌ์ฉํ์. ์ฆ, I/O๊ฐ ๋ฉ๋ชจ๋ฆฌ ์์์ ์ผ์ด๋๋ ๊ฒ์.
๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ๋ ํ๋ฐ์ฑ์ด๊ธฐ ๋๋ฌธ์ ์ฃผ๊ธฐ์ ์ผ๋ก ํ๋ ๋์คํฌ์ ๋ฐฑ์
ํ๋ ํ์๊ฐ ํ์ํ ๊ฒ์ด๋ค.
Directory entry cache ( dentry cache )
์์ฃผ ์ ๊ทผ๋๋ ํ์ผ์ ๋ํ ๋ฉํ ๋ฐ์ดํฐ๋ ๋ฉ๋ชจ๋ฆฌ์ dentry cache์ ์ ์ฅํด๋๋ค.
Recovery
๋๋ฆฐ ํ๋ ๋์คํฌ์ ์๋๋ฅผ ๋งํํ๊ธฐ ์ํด์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ด์ฉํ๋ ๊ธฐ์ ๋ค์ ๋ง์ด ์ฌ์ฉํ๋ค๋ ๊ฒ์ ์์์ ์ดํด๋ดค๋ค.
๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ๋ฉ๋ชจ๋ฆฌ์ ์๋ ๋ฐ์ดํฐ๋ง ์
๋ฐ์ดํธํ๊ฒ ๋๋ฉด ๋น์ผ๊ด์ฑ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค.
๊ทธ๋ฐ๋ฐ ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ๋ ๋นํ๋ฐ์ฑ ๋ฉ๋ชจ๋ฆฌ์ด๊ธฐ ๋๋ฌธ์ ๋์คํฌ์ ์ฐ์ง ์์ ์ฑ๋ก ์ข
๋ฃ๊ฐ ๋์ด ๋ฒ๋ฆฌ๋ฉด ์
๋ฐ์ดํธ๋ ์ ๋ณด๊ฐ ๋ชจ๋ ๋ ์๊ฐ๋ฒ๋ฆฐ๋ค.
์ด๋ค ๋ถ๋ถ์ด ์ด๋ป๊ฒ ๋ณ๊ฒฝ๋์๋์ง๋ฅผ log๋ฅผ ๋จ๊ฒจ์ ๋น์ ์์ ์ผ๋ก ์ข
๋ฃ๋ ๊ฒฝ์ฐ log๋ฅผ ํตํด ๋ฐ์ดํฐ๋ ๋ฉํ ๋ฐ์ดํฐ๋ฅผ fixํ๋ค.
=> ์ด๊ฑธ๋ก๋ fix๋์ง ์์ผ๋ฉด ์ด์ฉ ์ ์์ด ์ผ๋ถ ๋ฐ์ดํฐ๋ฅผ ์์คํ ์ ๋ฐ์ ์๋ค.
๋น ์ ์์ ์ผ๋ก ์ข ๋ฃ๊ฐ ๊ฒฝ์ฐ์ ์ด๋ป๊ฒ ์๊ณ ๋ ์๊ฐ ๋ด์ฉ๋ค์ ๋ณต๊ตฌํ๋ ค๋ ์์ ์ ํ ๊น?
์ ์์ ์ผ๋ก ์ข
๋ฃ๋๋ฉด ์ฒดํฌ๋ฅผ ํ๋ค.
๋ถํ
์์ ์ฒดํฌ๋์ด ์์ง ์์ผ๋ฉด, ์ง๋ ๋ฒ์ ์ ์์ ์ผ๋ก ์ข
๋ฃ๋์ง ์์๋ค๊ณ ํ๋จํ๊ณ ํ์ผ ์์คํ
์ ์ ๊ฒํ๋ค.
'HYU > ์ด์์ฒด์ (OS)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
14. I/O Systems (0) | 2023.06.02 |
---|---|
13. Mass Storage Management (0) | 2023.06.02 |
11. Virtual Memory (2) (0) | 2023.05.19 |
7. Deadlocks (0) | 2023.05.18 |
10. Virtual Memory (1) (1) | 2023.05.12 |