๐Ÿ€ Knowledge/์šด์˜์ฒด์ œ(OS)

[์šด์˜์ฒด์ œ] ๋ฐ์ดํ„ฐ ๋ธ”๋ก(Data Block)์˜ ๊ด€๋ฆฌ

TIlearn 2024. 5. 5. 10:05

 

 

ํŒŒ์ผ ์‹œ์Šคํ…œ์—์„œ์˜ Data Blcok

 

ํŒŒ์ผ์—์„œ๋Š” Block์ด๋ผ๊ณ  ํ•˜๋Š” ๊ฒƒ์„ ์ €์žฅ๋‹จ์œ„๋กœ ์‚ฌ์šฉํ•œ๋‹ค.

์ด Block ํ•˜๋‚˜์˜ ํฌ๊ธฐ๋Š” 4096๋ฐ”์ดํŠธ์ด๋‹ค. 

 

๋””์Šคํฌ์—์„œ ํŒŒ์ผ์„ ์ €์žฅํ•  ๋•Œ, Block์„ ๋ฌด์ž‘์œ„๋กœ ์ €์žฅํ•˜์ง€๋Š” ์•Š๋Š”๋‹ค. ์–ด๋–ป๊ฒŒ ๋ฐฐ์น˜ํ•˜๋А๋ƒ์— ๋”ฐ๋ผ ๊ทธ ์ „๋žต์ด ๋‹ฌ๋ผ์ง„๋‹ค.

์šฐ์„ , ์ง€๊ธˆ์€ ์ž˜ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” _Contiguous Allocation_์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž.

 

 

 

 

Contiguous Allocation

 

์ด๋ฆ„์„ ๋ณด๊ณ  ์œ ์ถ”ํ•  ์ˆ˜ ์žˆ๋“ฏ์ด, _Contiguous Allocation_๋ฐฉ์‹์€ ํŒŒ์ผ์„ ์ €์žฅํ•  ๋•Œ ์—ฐ์†์ ์œผ๋กœ Block์„ ๋ฐฐ์น˜ํ•œ๋‹ค.

์ด ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๋ฉด File Allocation Table์„ ์‚ฌ์šฉํ•˜๋Š”๋ฐ, ์—ฌ๊ธฐ์— ํŒŒ์ผ์˜ ์‹œ์ž‘ Block๊ณผ Block์˜ ๊ธธ์ด๋ฅผ ์ €์žฅํ•œ๋‹ค. ๋ฌผ๋ก  ํŒŒ์ผ์˜ FCB์—์„œ๋„ ํŒŒ์ผ์˜ ์‹œ์ž‘ Block๊ณผ Block์˜ ๊ธธ์ด ์ •๋ณด๋ฅผ ๊ฐ™์ด ์ €์žฅํ•œ๋‹ค.

 

 

 

ํ•˜์ง€๋งŒ, ์ด ๋ฐฉ์‹์„ ๊ต‰์žฅํžˆ ์ข‹์ง€ ๋ชปํ•œ๋ฐ ๊ทธ ์ด์œ ๋Š” ํฌ๊ฒŒ ๋‘ ๊ฐ€์ง€๋‹ค.

 

์ฒซ ๋ฒˆ์งธ๋กœ, _external fragmentation_์ด ๋ฐœ์ƒํ•œ๋‹ค.

fragmentation์€ ๋ฐ์ดํ„ฐ๊ฐ€ ์—ฐ์†์ ์œผ๋กœ ์ €์žฅ๋จ์œผ๋กœ ์ธํ•ด ๋ถ€๋ถ„์ ์œผ๋กœ ๋นˆ ๊ณต๊ฐ„์ด ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค. ์ด๋•Œ ๊ฐ ํŒŒ์ผ์˜ ์™ธ๋ถ€ ๊ณต๊ฐ„์— ๋Œ€ํ•ด์„œ fragmentation์ด ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ์„  _external fragmentation_์ด๋ผ๊ณ  ํ•œ๋‹ค.

 

ํŒŒ์ผ ๋‚ด๋ถ€์—์„œ ๋ฐœ์ƒํ•˜๋Š” fragmentation์€ internal fragmentation์ด๋ผ๊ณ  ํ•œ๋‹ค.

 

๋‘ ๋ฒˆ์งธ๋Š” ํŒŒ์ผ ํฌ๊ธฐ๋ฅผ ๋Š˜๋ฆฌ๊ธฐ๊ฐ€ ํž˜๋“ค๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

๊ฐ๊ฐ์˜ ํŒŒ์ผ๋“ค์€ ์—ฐ์†์ ์œผ๋กœ ์ž๋ฆฌ๋ฅผ ์ฐจ์ง€ํ•˜๊ณ  ์žˆ๋‹ค. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— fragmentation์—์„œ๋Š” ๋ถ€๋ถ„์ ์œผ๋กœ ๊ณต๊ฐ„์„ ๋Š˜๋ฆด ์ˆ˜๋Š” ์žˆ์œผ๋‚˜, ์›ํ•˜๋Š” ๋งŒํผ ํฌ๊ฒŒ ๋Š˜๋ฆฌ์ง„ ๋ชปํ•œ๋‹ค. ๋งŒ์•ฝ ์˜ฎ๊ธฐ๊ณ  ์‹ถ๋‹ค๋ฉด ์ „์ฒด๋ฅผ ๋ณต์‚ฌํ•ด์„œ ์ƒˆ๋กœ์šด ๊ณต๊ฐ„์— ํ• ๋‹นํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์‹œ๊ฐ„๋„ ๊ต‰์žฅํžˆ ๋งŽ์ด ๋“ ๋‹ค.

 

์œ„์™€ ๊ฐ™์€ ๋‹จ์ ๋“ค๋กœ ์ธํ•ด Contiguous Allocation์€ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค.

 

 

 

 

 

Chained Allocation(Linked Allocation)

 

 

์ด ๋ฐฉ์‹์€ Linked List๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ์ƒ๊ฐํ•˜๋ฉด ์‰ฝ๋‹ค.

๊ฐ Block์ด ๊ทธ๋‹ค์Œ Block์˜ ์ฐธ์กฐ๋ฅผ ๊ฐ€์ง„๋‹ค. ๋”ฐ๋ผ์„œ _external fragmentaion_๊ณผ ๊ฐ™์€ ๋ฌธ์ œ๋Š” ์—†์–ด์ง„๋‹ค.

 

ํ•˜์ง€๋งŒ ์ด๋ ‡๊ฒŒ ์ฐธ์กฐ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋‹ค๋Š” ํŠน์„ฑ ๋•Œ๋ฌธ์— ๋˜ ๋‹ค๋ฅธ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.

๋จผ์ €, Block์„ ํƒ์ƒ‰ํ•˜๋‹ค๊ฐ€ ์ค‘๊ฐ„์— ์ฐธ์กฐ๊ฐ€ ๋Š์–ด์ง€๋ฉด ๊ทธ ๋’ค์— ์žˆ๋Š” Block์€ ์ฝ์ง€ ๋ชปํ•œ๋‹ค. ๋˜ํ•œ ํ•˜๋‚˜์˜ ํŒŒ์ผ ์•ˆ์—์„œ ํŠน์ • ๋ธ”๋ก์— ๋Œ€ํ•ด ๋ฐ”๋กœ ์ ‘๊ทผํ•˜๋Š” _direct access_๊ฐ€ ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค.

 

์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋‚˜์˜จ ๊ฒƒ์ด _indexed allocation_์ด๋‹ค.

 

 

 

 

 

 

 

Indexed Allocation

 

 

_index allocation_์€ ์—ฌ๋Ÿฌ Block ์ค‘ ์ž„์˜๋กœ ํ•˜๋‚˜๋ฅผ ํŒŒ์ผ์˜ ์ธ๋ฑ์Šค๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” Block์œผ๋กœ ๋งŒ๋“œ๋Š” ๋ฐฉ์‹์ด๋‹ค.

์ด ๋ฐฉ์‹์œผ๋กœ ์‚ฌ์šฉํ•˜๋ฉด, ํ•ด๋‹น Block์€ ํŒŒ์ผ์„ ๊ตฌ์„ฑํ•˜๋Š” ๋‹ค๋ฅธ Block๋“ค์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์ˆœ์„œ๋Œ€๋กœ ์ง€๋‹ˆ๊ณ  ์žˆ๊ฒŒ ๋œ๋‹ค.

 

์ฆ‰, _Direct Access_๊ฐ€ ๊ฐ€๋Šฅํ•˜๊ณ , _Fragmentation_๋„ ์—†๋‹ค.

 

 

 

 

 

Free-Space Management

 

 

๋นˆ ๊ณต๊ฐ„์„ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์—๋„ ์—ฌ๋Ÿฌ ์ข…๋ฅ˜๊ฐ€ ์žˆ๋‹ค.

 

 

counting

 

counting ๋ฐฉ์‹์€ ๊ฐ„๋‹จํ•˜๊ฒŒ ์‹œ์ž‘ Block ๋ฒˆํ˜ธ์™€ ํ•ด๋‹น Block์œผ๋กœ ๋ถ€ํ„ฐ ์–ผ๋งˆ๋งŒํผ Free Block์ธ์ง€ ์„ธ๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.

 

 

 

 

 

Linked List (free list)

 

 

์•ž์„œ ํŒŒ์ผ์„ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐฉ์‹ ์ค‘, Chained allocation๊ณผ ๊ต‰์žฅํžˆ ์œ ์‚ฌํ•˜๋‹ค.

๋งˆ์ฐฌ๊ฐ€์ง€๋กœ Free Block ๋“ค์„ Linked List๋กœ ๊ด€๋ฆฌํ•˜์—ฌ ๊ณต๊ฐ„์„ ๊ด€๋ฆฌํ•œ๋‹ค.

 

์ด๋•Œ, ์ƒˆ๋กœ์šด Free Block์„ ํ• ๋‹นํ•˜๊ธฐ ์œ„ํ•ด์„œ ๋งจ ์•ž์˜ head ๊ฐ’์„ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํ• ๋‹น์€ ๊ฐ„๋‹จํ•˜๋‹ค.

ํ•˜์ง€๋งŒ, ์—ฌ์ „ํžˆ ํ•˜๋‚˜์˜ Block์˜ ์ฐธ์กฐ๊ฐ€ ๋Šํ‚ค๋ฉด ๋‹ค๋ฅธ Block๋“ค๋„ ๋‹ค ๋ชป ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ข‹์ง€ ์•Š๋‹ค.

 

 

 

 

 

 

Grouping

 

์ด ๋ฐฉ์‹์€ ์•ž์„  Indexed Allocation ๋ฐฉ์‹๊ณผ ์œ ์‚ฌํ•˜๋‹ค.

์ž„์˜์˜ Block์ด Free Block๋“ค์— ๋Œ€ํ•ด ๊ด€๋ฆฌํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค.

 

ํ•˜์ง€๋งŒ Free Block๋“ค์ด ์ ์ง€๋Š” ์•Š๋‹ค. ๊ณ ์ž‘ 4096๋ฐ”์ดํŠธ ๋ฐ–์— ๋˜์ง€ ์•Š๊ณ , ํ•˜๋‚˜์˜ Free Block์„ ๊ธฐ๋กํ•˜๊ธฐ ์œ„ํ•ด 4๋ฐ”์ดํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ด 1024๊ฐœ์˜ Free Block์„ ์ ์„ ์ˆ˜ ์žˆ์„ ํ…๋ฐ, ์–ด๋–ป๊ฒŒ ๋งŽ์€ Free Block์„ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์„๊นŒ?

 

์ด๋Š” ๋ฐ”๋กœ Grouping์—์„œ ์‚ฌ์šฉํ•˜๋Š” ํŠน์ˆ˜ํ•œ ์ €์žฅ ๋ฐฉ์‹์œผ๋กœ ํ•ด๊ฒฐ ๊ฐ€๋Šฅํ•˜๋‹ค.

 

 

 

์ดˆ๊ธฐ์— Free Block๋“ค์„ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด Super Block List์— ๋ชจ๋“  Free Block ์ •๋ณด๋ฅผ ๋„ฃ๋Š”๋‹ค. ์—ฌ๊ธฐ ์•ˆ์—์„œ ํ•˜๋‚˜์”ฉ ๊บผ๋‚ด์„œ ๊ฐ๊ฐ์˜ Free Block๋“ค์„ ํ• ๋‹นํ•˜๋Š”๋ฐ, ๋งŒ์•ฝ Free Block๋“ค์ด ๋„ˆ๋ฌด ๋งŽ์•„์ง„๋‹ค๋ฉด ๋งˆ์ง€๋ง‰์œผ๋กœ ์ €์žฅํ•œ Free Block์œผ๋กœ ์ด๋™ํ•˜์—ฌ ์ƒˆ๋กญ๊ฒŒ Free Block์„ ์ €์žฅํ•œ๋‹ค.

 

์œ„์˜ ์˜ˆ์‹œ์—์„œ๋Š” 109๋ฒˆ์ด ๋งˆ์ง€๋ง‰์œผ๋กœ ์ €์žฅ๋˜๋ฏ€๋กœ 109๋ฒˆ Block์œผ๋กœ ๊ฐ€์„œ ๋‹ค์‹œ ์ฒ˜์Œ๋ถ€ํ„ฐ Free Block์„ ์ €์žฅํ•œ๋‹ค.

 

 

์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€๋‹ค.

109๋ฒˆ Block์•ž์˜ ๋ชจ๋“  Block์„ ์ „๋ถ€ ์‚ฌ์šฉํ–ˆ๋‹ค๋ฉด 109๋ฒˆ Block์„ Free Block์—์„œ Block์œผ๋กœ ํ• ๋‹นํ•˜๊ธฐ ์œ„ํ•ด, 109๋ฒˆ Block ์•ˆ์— ์žˆ๋˜ ๋ชจ๋“  ์ •๋ณด๋ฅผ Super Block List๋กœ ์ „๋ถ€ ์ด๋™์‹œํ‚จ๋‹ค.

 

 

 

 

 

Bit-vector

 

๋งˆ์ง€๋ง‰์œผ๋กœ Bit-vector ๋ฐฉ์‹์ธ๋ฐ, ์ด ๋ฐฉ์‹์€ ๋ชจ๋“  Block ๋“ค์— ๋Œ€ํ•ด Free Block์€ 1๋กœ, ํ• ๋‹น๋œ Block์€ 0์œผ๋กœ ๋‘๋Š” ๋ฐฉ์‹์ด๋‹ค.

๊ฐœ๋…์ ์œผ๋กœ๋Š” ์•„์ฃผ ๊ฐ„๋‹จํ•˜๊ณ  ์ข‹์€ ๋ฐฉ์‹์ด๋‚˜ ๋ชจ๋“  Block๋“ค์„ ์ €์žฅํ•˜๋Š”๋ฐ 8K disk Block์ด ํ•„์š”ํ•˜๋‹ค.