๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

OS

12์žฅ Disk Management And Scheduling

 

reference: kocw์˜ ๋ฐ˜ํšจ๊ฒฝ ๊ต์ˆ˜๋‹˜ ๊ฐ•์˜์™€ ๊ถŒ์ง„์šฑ ๊ต์ˆ˜๋‹˜ ๊ฐ•์˜(๋Œ€ํ•™ ์ •๊ทœ ์ˆ˜์—…)
์ˆ˜์—…์„ ๋“ฃ๊ณ ๋‚˜์„œ ๊ฐ•์˜ ๊ต์žฌ๋ฅผ ํƒ€์ดํ•‘ํ•˜๊ณ  ํ•„๊ธฐํ•œ ๋ถ€๋ถ„์„ ์ถ”๊ฐ€์ ์œผ๋กœ ์ •๋ฆฌํ•˜์˜€์Šต๋‹ˆ๋‹ค.
์›น๋ทฐ์—์„œ toc๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
github์˜ md ํŒŒ์ผ๋กœ ๋ณด๋Š” ๊ฒŒ ํŽธํ•˜์‹œ๋‹ค๋ฉด, ์—ฌ๊ธฐ๋กœ ์ด๋™ํ•ด์ฃผ์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.


1 Disk Structure

 

logical block

  • ๋””์Šคํฌ์˜ ์™ธ๋ถ€์—์„œ ๋ณด๋Š” ๋””์Šคํฌ์˜ ๋‹จ์œ„ ์ •๋ณด ์ €์žฅ ๊ณต๊ฐ„๋“ค
  • ์ฃผ์†Œ๋ฅผ ๊ฐ€์ง„ 1์ฐจ์› ๋ฐฐ์—ด์ฒ˜๋Ÿผ ์ทจ๊ธ‰
  • ์ •๋ณด๋ฅผ ์ „์†กํ•˜๋Š” ์ตœ์†Œ ๋‹จ์œ„

sector

  • logical block์ด ๋ฌผ๋ฆฌ์ ์ธ ๋””์Šคํฌ์— ๋งคํ•‘๋œ ์œ„์น˜
  • Sector 0์€ ์ตœ์™ธ๊ฐ ์‹ค๋ฆฐ๋”์˜ ์ฒซ ํŠธ๋ž™์— ์žˆ๋Š” ์ฒซ ๋ฒˆ์งธ ์„นํ„ฐ์ด๋‹ค.

Disk Management

Physical formatting (low level formatting)

  • ๋””์Šคํฌ๋ฅผ ์ปจํŠธ๋กค๋Ÿฌ๊ฐ€ ์ฝ๊ณ  ์“ธ ์ˆ˜ ์žˆ๋„๋ก ์„นํ„ฐ๋“ค๋กœ ๋‚˜๋ˆ„๋Š” ๊ณผ์ •
  • ๊ฐ ์„นํ„ฐ๋Š” header + ์‹ค์ œ data(๋ณดํ†ต 512 Bytes) + trailer๋กœ ๊ตฌ์„ฑ
  • header์™€ trailer๋Š” sector number, ECC(Error-Correcting Code) ๋“ฑ์˜ ์ •๋ณด๊ฐ€ ์ €์žฅ๋˜๋ฉฐ controller๊ฐ€ ์ง์ ‘ ์ ‘๊ทผ ๋ฐ ์šด์˜

Partitioning

  • ๋””์Šคํฌ๋ฅผ ํ•˜๋‚˜ ์ด์ƒ์˜ ์‹ค๋ฆฐ๋” ๊ทธ๋ฃน์œผ๋กœ ๋‚˜๋ˆ„๋Š” ๊ณผ์ •
    • ์ด๋ฏธ ์„นํ„ฐ๋กœ ๋‚˜๋ˆ ์ € ์žˆ์Œ.
  • OS๋Š” ์ด๊ฒƒ์„ ๋…๋ฆฝ์  disk๋กœ ์ทจ๊ธ‰ (logical disk)

Logical Formatting

  • ํŒŒ์ผ์‹œ์Šคํ…œ์„ ๋งŒ๋“œ๋Š” ๊ฒƒ
  • FAT, inode, free space ๋“ฑ์˜ ๊ตฌ์กฐ ํฌํ•จ

Booting

  • ROM์— ์žˆ๋Š” small bootstrap loader์˜ ์‹คํ–‰
  • sector 0(boot block)์„ loadํ•˜์—ฌ ์‹คํ–‰
    • sector 0์€ "full Bootstrap loader program" ์ž„
  • OS๋ฅผ ๋””์Šคํฌ์—์„œ loadํ•˜์—ฌ ์‹คํ–‰

Disk Scheduling

  • Access Time์˜ ๊ตฌ์„ฑ
    • Seek Time
      • ํ—ค๋“œ๋ฅผ ํ•ด๋‹น ์‹ค๋ฆฐ๋”(track์˜ ์ง‘ํ•ฉ)๋กœ ์›€์ง์ด๋Š”๋ฐ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„
      • arm์„ ์•ž๋’ค๋กœ ์›€์ง์ด๋Š” ์‹œ๊ฐ„
      • ๊ฐ€์žฅ ์˜ค๋žœ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆผ
    • Rotational Latency
      • ํ—ค๋“œ๊ฐ€ ์›ํ•˜๋Š” ์„นํ„ฐ์— ๋„๋‹ฌํ•˜๊ธฐ๊นŒ์ง€ ๊ฑธ๋ฆฌ๋Š” ํšŒ์ „์ง€์—ฐ์‹œ๊ฐ„
      • disk ๋˜๋Š” platter๋ฅผ rotationํ•˜๋Š”๋ฐ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„
    • Transfer Time
      • ์‹ค์ œ ๋ฐ์ดํ„ฐ์˜ ์ „์†ก ์‹œ๊ฐ„
      • seek time๊ณผ rotational latency์— ๋น„ํ•ด ๋งค์šฐ ์งง์€ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆผ.
  • Disk Bandwidth
    • ๋‹จ์œ„ ์‹œ๊ฐ„ ๋‹น ์ „์†ก๋œ ๋ฐ”์ดํŠธ์˜ ์ˆ˜
  • Disk Scheduling
    • Seek Time์„ ์ตœ์†Œํ™”ํ•˜๋Š” ๊ฒƒ์ด ๋ชฉํ‘œ
    • Seek Time => Seek distance

Disk Scheduling Algorithm

Seek Time์„ ์ตœ์†Œํ™”ํ•˜๋Š” ๊ฒƒ์ด ๋ชฉํ‘œ!

ํŠน์ • ์‹ค๋ฆฐ๋” ์œ„์น˜์— head (arm)์„ ์œ„์น˜์‹œ์ผœ์•ผํ•˜๋Š” ๊ฒƒ

4-1. FCFS (First Come First Service)

4-2. SSTF (Shortest Seek Time First)

  • ๋ฌธ์ œ์ : starvation ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค.

4-3. SCAN

  • disk arm์ด ๋””์Šคํฌ์˜ ํ•œ์ชฝ ๋์—์„œ ๋‹ค๋ฅธ์ชฝ ๋์œผ๋กœ ์ด๋™ํ•˜๋ฉฐ ๊ฐ€๋Š” ๊ธธ๋ชฉ์— ์žˆ๋Š” ๋ชจ๋“  ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•œ๋‹ค.
  • ๋‹ค๋ฅธ ํ•œ์ชฝ ๋์— ๋„๋‹ฌํ•˜๋ฉด ์—ญ๋ฐฉํ–ฅ์œผ๋กœ ์ด๋™ํ•˜๋ฉฐ ์˜ค๋Š” ๊ธธ๋ชฉ์— ์žˆ๋Š” ๋ชจ๋“  ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๋ฉฐ ๋‹ค์‹œ ๋ฐ˜๋Œ€์ชฝ ๋์œผ๋กœ ์ด๋™ํ•œ๋‹ค.
  • ๋ฌธ์ œ์  : ์‹ค๋ฆฐ๋” ์œ„์น˜์— ๋”ฐ๋ผ ๋Œ€๊ธฐ ์‹œ๊ฐ„์ด ๋‹ค๋ฅด๋‹ค.

4-4. C-SCAN

  • ํ—ค๋“œ๊ฐ€ ํ•œ์ชฝ ๋์—์„œ ๋‹ค๋ฅธ์ชฝ ๋์œผ๋กœ ์ด๋™ํ•˜๋ฉฐ ๊ฐ€๋Š” ๊ธธ๋ชฉ์— ์žˆ๋Š” ๋ชจ๋“  ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•œ๋‹ค.
  • ๋‹ค๋ฅธ์ชฝ ๋์— ๋„๋‹ฌํ–ˆ์œผ๋ฉด ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜์ง€ ์•Š๊ณ  ๊ณง๋ฐ”๋กœ ์ถœ๋ฐœ์ ์œผ๋กœ ๋‹ค์‹œ ์ด๋™ํ•œ๋‹ค.
  • ๊ทธ๋ž˜์„œ SCAN๋ณด๋‹ค ๊ท ์ผํ•œ ๋Œ€๊ธฐ ์‹œ๊ฐ„์„ ์ œ๊ณตํ•œ๋‹ค.

4-5. N-SCAN

  • SCAN์„ ๋ณ€ํ˜•ํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜
  • ์ผ๋‹จ arm์ด ํ•œ ๋ฐฉํ–ฅ์œผ๋กœ ์›€์ง์ด๊ธฐ ์‹œ์ž‘ํ•˜๋ฉด ๊ทธ ์‹œ์  ์ดํ›„์— ๋„์ฐฉํ•œ job์€ ๋˜๋Œ์•„์˜ฌ ๋•Œ serviceํ•œ๋‹ค.

4-6~7. LOOK and C-LOOK

  • SCAN์ด๋‚˜ C-SCAN์€ ํ—ค๋“œ๊ฐ€ ๋””์Šคํฌ ๋์—์„œ ๋์œผ๋กœ ์ด๋™
  • LOOK๊ณผ C-LOOK์€ ํ—ค๋“œ๊ฐ€ ์ง„ํ–‰ ์ค‘์ด๊ฑฐ๋‚˜ ๊ทธ ๋ฐฉํ–ฅ์— ๋” ์ด์ƒ ๊ธฐ๋‹ค๋ฆฌ๋Š” ์š”์ฒญ์ด ์—†์œผ๋ฉด ํ—ค๋“œ์˜ ์ด๋™๋ฐฉํ–ฅ์„ ์ฆ‰์‹œ ๋ฐ˜๋Œ€๋กœ ์ด๋™ํ•œ๋‹ค.
  • C-LOOK (C: circular)์€ LOOK์—์„œ ๊ณง๋ฐ”๋กœ ์ถœ๋ฐœ์ ์œผ๋กœ ๋‹ค์‹œ ์ด๋™ํ•œ๋‹ค.
    • LOOK๋ณด๋‹ค ๊ท ์ผํ•œ ๋Œ€๊ธฐ ์‹œ๊ฐ„์„ ์ œ๊ณตํ•ด์ค„ ์ˆ˜ ์žˆ๋‹ค๋Š” ์žฅ์ ์ด ์žˆ๋‹ค.

C-LOOK์— ํ•ด๋‹นํ•˜๋Š” ๊ทธ๋ฆผ, - ๋(199)๊นŒ์ง€ ์•ˆ๊ฐ€๊ณ  ์ฒ˜์Œ์œผ๋กœ ๋˜๋Œ์•„๊ฐ€๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

Disk Scheduling Algorithm์˜ ๊ฒฐ์ •

  • SCAN, C-SCAN ๋ฐ ๊ทธ ์‘์šฉ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ธ LOOK, C-LOOK ๋“ฑ์ด ์ผ๋ฐ˜์ ์œผ๋กœ ๋””์Šคํฌ ์ž…์ถœ๋ ฅ์ด ๋งŽ์€ ์‹œ์Šคํ…œ์—์„œ ํšจ์œจ์ ์ธ ๊ฒƒ์œผ๋กœ ์•Œ๋ ค์ ธ ์žˆ๋‹ค.
    • * ์•Œ๋ ค์ ธ ์žˆ๋‹ค๋Š” ํ‘œํ˜„์˜ ๋œป: ์ „๋ฐ˜์ ์œผ๋กœ ์„ฑ๋Šฅ์ด ๊ดœ์ฐฎ์ง€๋งŒ ๋ฐ˜๋“œ์‹œ ์„ฑ๋Šฅ์ด ์ข‹๋‹ค๊ณ  ๋งํ•  ์ˆœ ์—†๋‹ค
  • File์˜ ํ• ๋‹น ๋ฐฉ๋ฒ•์— ๋”ฐ๋ผ ๋””์Šคํฌ ์š”์ฒญ์ด ์˜ํ–ฅ์„ ๋ฐ›๋Š”๋‹ค.
  • ๋””์Šคํฌ ์Šค์ผ€์ฅด๋ง ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ํ•„์š”ํ•  ๊ฒฝ์šฐ ๋‹ค๋ฅธ ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ์‰ฝ๊ฒŒ ๊ต์ฒดํ•  ์ˆ˜ ์žˆ๋„๋ก OS์™€ ๋ณ„๋„์˜ ๋ชจ๋“ˆ๋กœ ์ž‘์„ฑ๋˜๋Š” ๊ฒƒ์ด ๋ฐ”๋žŒ์งํ•˜๋‹ค.

Swap Space Management

Disk๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋‘ ๊ฐ€์ง€ ์ด์œ 

  • memory์˜ volatile(๋œป: ํœ˜๋ฐœ์„ฑ์˜)ํ•œ ํŠน์„ฑ → file system
  • ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰์„ ์œ„ํ•œ memory ๊ณต๊ฐ„ ๋ถ€์กฑ → Swap Space (swap area)

Swap-Space

  • Virtual Memory System์—์„œ๋Š” ๋””์Šคํฌ๋ฅผ memory์˜ ์—ฐ์žฅ ๊ณต๊ฐ„์œผ๋กœ ์‚ฌ์šฉ
  • ํŒŒ์ผ ์‹œ์Šคํ…œ ๋‚ด๋ถ€์— ๋‘˜ ์ˆ˜๋„ ์žˆ์œผ๋‚˜ ๋ณ„๋„ partition ์‚ฌ์šฉ์ด ์ผ๋ฐ˜์ 
    • ๊ณต๊ฐ„ ํšจ์œจ์„ฑ๋ณด๋‹ค๋Š” ์†๋„ ํšจ์œจ์„ฑ์ด ์šฐ์„ 
    • ์ผ๋ฐ˜ ํŒŒ์ผ๋ณด๋‹ค ํ›จ์”ฌ ์งง์€ ์‹œ๊ฐ„๋งŒ ์กด์žฌํ•˜๊ณ  ์ž์ฃผ ์ฐธ์กฐ๋จ
    • ๋”ฐ๋ผ์„œ, block์˜ ํฌ๊ธฐ ๋ฐ ์ €์žฅ ๋ฐฉ์‹์ด ์ผ๋ฐ˜ ํŒŒ์ผ์‹œ์Šคํ…œ๊ณผ ๋‹ค๋ฆ„
      • file system์€ ๋ณดํ†ต 512B ์ •๋„์ง€๋งŒ swap area๋Š” ๋‹ค์–‘ํ•œ ํฌ๊ธฐ์˜ ๋ฉ”๋ชจ๋ฆฌ ๋ธ”๋ฝ์„ ํ• ๋‹น๋ฐ›์Œ.

RAID

RAID (Redundant Array of Independent Disks)

  • ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋””์Šคํฌ๋ฅผ ๋ฌถ์–ด์„œ ์‚ฌ์šฉ
  • ํ•˜๋‚˜์˜ ๋…ผ๋ฆฌ์  ๋””์Šคํฌ๋กœ ๋งŒ๋“ ๋‹ค

RAID์˜ ์‚ฌ์šฉ ๋ชฉ์ 

  • ๋””์Šคํฌ ์ฒ˜๋ฆฌ ์†๋„ ํ–ฅ์ƒ (RAID 0)
    • ์—ฌ๋Ÿฌ ๋””์Šคํฌ์— block์˜ ๋‚ด์šฉ์„ ๋ถ„์‚ฐ ์ €์žฅ
    • ๋ณ‘๋ ฌ์ ์œผ๋กœ ์ฝ๋Š”๋‹ค. (interleaving, Striping)
  • ์‹ ๋ขฐ์„ฑ(Reliability) ํ–ฅ์ƒ (RAID 1)
    • ๋™์ผ ์ •๋ณด๋ฅผ ์—ฌ๋Ÿฌ ๋””์Šคํฌ์— ์ค‘๋ณต ์ €์žฅ
    • ํ•˜๋‚˜์˜ ๋””์Šคํฌ๊ฐ€ ๊ณ ์žฅ(failure)์‹œ ๋‹ค๋ฅธ ๋””์Šคํฌ์—์„œ ์ฝ์–ด์˜ด (Mirroring, Shadowing)
    • ๋‹จ์ˆœํ•œ ์ค‘๋ณต ์ €์žฅ์ด ์•„๋‹ˆ๋ผ ์ผ๋ถ€ ๋””์Šคํฌ์— parity๋ฅผ ์ €์žฅํ•˜์—ฌ ๊ณต๊ฐ„์˜ ํšจ์œจ์„ฑ์„ ๋†’์ผ ์ˆ˜ ์žˆ๋‹ค.

'OS' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

11์žฅ File Systems Implementation  (0) 2021.06.19
10์žฅ File Systems  (0) 2021.06.19
9์žฅ Virtual Memory  (0) 2021.06.19
8์žฅ Memory Management  (0) 2021.06.19
7์žฅ Deadlock  (0) 2021.06.19
6์žฅ Process Synchronization  (0) 2021.06.19