μŠ€ν„°λ””/운영체제

[μš΄μ˜μ²΄μ œμ™€ μ •λ³΄κΈ°μˆ μ˜ 원리] 9μž₯ λ””μŠ€ν¬ 관리

moon101 2023. 4. 7. 06:00

1. λ””μŠ€ν¬μ˜ ꡬ쑰

  • 논리블둝: λ””μŠ€ν¬μ˜ μΌμ •ν•œ 크기의 μ €μž₯곡간
  • 논리블둝에 μ €μž₯된 데이터λ₯Ό μ ‘κ·Όν•˜κΈ° μœ„ν•΄μ„œλŠ” 배열에 μ ‘κ·Όν•˜λŠ” κ²ƒμ²˜λŸΌ ν•΄λ‹Ή λΈ”λ‘μ˜ 인덱슀 번호λ₯Ό λ””μŠ€ν¬μ— μ „λ‹¬ν•˜λ©΄ λœλ‹€
  • μ„Ήν„°: 각 논리블둝이 μ €μž₯λ˜λŠ” λ””μŠ€ν¬ λ‚΄μ˜ 물리적인 μœ„μΉ˜

 

2. λ””μŠ€ν¬ μŠ€μΌ€μ€„λ§

  • λ””μŠ€ν¬μ— λŒ€ν•œ μ ‘κ·Όμ‹œκ°„μ€ νƒμƒ‰μ‹œκ°„κ³Ό νšŒμ „μ§€μ—°μ‹œκ°„, μ „μ†‘μ‹œκ°„μœΌλ‘œ κ΅¬λΆ„λœλ‹€
  • νƒμƒ‰μ‹œκ°„(seek time): λ””μŠ€ν¬ ν—€λ“œλ₯Ό ν•΄λ‹Ή 싀린더 μœ„μΉ˜λ‘œ μ΄λ™μ‹œν‚€λŠ” 데 κ±Έλ¦¬λŠ” μ‹œκ°„
  • νšŒμ „μ§€μ—°μ‹œκ°„(rotational latency): λ””μŠ€ν¬κ°€ νšŒμ „ν•΄μ„œ 읽고 μ“°λ €λŠ” μ„Ήν„°κ°€ ν—€λ“œ μœ„μΉ˜μ— λ„λ‹¬ν•˜κΈ°κΉŒμ§€ κ±Έλ¦¬λŠ” μ‹œκ°„
  • μ „μ†‘μ‹œκ°„(transfer time): ν•΄λ‹Ή μ„Ήν„°κ°€ ν—€λ“œ μœ„μΉ˜μ— λ„λ‹¬ν•œ ν›„ 데이터λ₯Ό μ‹€μ œλ‘œ 섹터에 읽고 μ“°λŠ” 데 μ†Œμš”λ˜λŠ” μ‹œκ°„
  • λ””μŠ€ν¬ μž…μΆœλ ₯의 νš¨μœ¨μ„ 높이기 μœ„ν•΄ μš΄μ˜μ²΄μ œλŠ” νƒμƒ‰μ‹œκ°„μ„ 쀄이기 μœ„ν•΄ ν—€λ“œμ˜ μ›€μ§μž„μ„ μ΅œμ†Œν™”ν•˜λŠ” μŠ€μΌ€μ€„λ§ μž‘μ—…μ„ ν•œλ‹€

1) FCFS(First Come First Served) μŠ€μΌ€μ€„λ§

  • λ””μŠ€ν¬μ— λ¨Όμ € λ“€μ–΄μ˜¨ μš”μ²­μ„ λ¨Όμ € μ²˜λ¦¬ν•˜λŠ” 방식

2) SSTF(Shortest Seek Time First) μŠ€μΌ€μ€„λ§ 

  • ν—€λ“œμ˜ ν˜„μž¬ μœ„μΉ˜λ‘œλΆ€ν„° κ°€μž₯ κ°€κΉŒμš΄ μœ„μΉ˜μ— μžˆλŠ” μš”μ²­μ„ 제일 λ¨Όμ € μ²˜λ¦¬ν•˜λŠ” 방식

3) SCAN μ•Œκ³ λ¦¬μ¦˜

  • ν—€λ“œκ°€ λ””μŠ€ν¬ μ›νŒμ˜ μ•ˆμͺ½ 끝과 λ°”κΉ₯μͺ½ 끝을 μ˜€κ°€λ©°, κ·Έ κ²½λ‘œμ— μ‘΄μž¬ν•˜λŠ” λͺ¨λ“  μš”μ²­μ„ μ²˜λ¦¬ν•œλ‹€
  • μ—˜λ¦¬λ² μ΄ν„° μŠ€μΌ€μ€„λ§ μ•Œκ³ λ¦¬μ¦˜μ΄λΌκ³ λ„ λΆˆλ¦°λ‹€

4) C-SCAN μ•Œκ³ λ¦¬μ¦˜

  • SCAN처럼 ν—€λ“œκ°€ ν•œμͺ½ λμ—μ„œ λ‹€λ₯Έ μͺ½ 끝으둜 μ΄λ™ν•˜λ©° κ°€λŠ” κΈΈλͺ©μ— μžˆλŠ” λͺ¨λ“  μš”μ²­μ„ μ²˜λ¦¬ν•˜μ§€λ§Œ, SCANκ³Ό 달리 ν—€λ“œκ°€ λ‹€λ₯Έ μͺ½ 끝에 도달해 λ°©ν–₯을 λ°”κΎΌ ν›„μ—λŠ” μš”μ²­μ„ μ²˜λ¦¬ν•˜μ§€ μ•Šκ³  κ³§λ°”λ‘œ 좜발점으둜 λ‹€μ‹œ μ΄λ™λ§Œ ν•œλ‹€. 
  • SCAN보닀 더 κ· μΌν•œ νƒμƒ‰μ‹œκ°„μ„ μ œκ³΅ν•œλ‹€

5) LOOKκ³Ό C-LOOK μ•Œκ³ λ¦¬μ¦˜

  • ν—€λ“œκ°€ ν•œμͺ½ λ°©ν–₯으둜 μ΄λ™ν•˜λ‹€κ°€ κ·Έ λ°©ν–₯에 더 이상 λŒ€κΈ° 쀑인 μš”μ²­μ΄ μ—†μœΌλ©΄ ν—€λ“œμ˜ 이동 λ°©ν–₯을 μ¦‰μ‹œ λ°˜λŒ€λ‘œ λ°”κΎΈλŠ” μŠ€μΌ€μ€„λ§ 방식이닀
  • C-LOOK은 전방에 μš”μ²­μ΄ 없을 λ•Œ λ°©ν–₯을 λ°”κΎΌλ‹€λŠ” 것은 LOOKκ³Ό λΉ„μŠ·ν•˜λ‚˜, ν•œμͺ½ λ°©ν–₯으둜 이동할 λ•Œμ—λ§Œ μš”μ²­μ„ μ²˜λ¦¬ν•œλ‹€λŠ” μ μ—μ„œ C-SCANκ³Ό μœ μ‚¬ν•˜λ‹€. 

 

3. 닀쀑 λ””μŠ€ν¬ ν™˜κ²½μ—μ„œμ˜ μŠ€μΌ€μ€„λ§

  • λ™μ‹œ μ‚¬μš©μžλ₯Ό μ„œλΉ„μŠ€ν•˜λŠ” μ„œλ²„μ—μ„œλŠ” λ‹€μˆ˜μ˜ λ””μŠ€ν¬λ₯Ό ν•¨κ»˜ μ‚¬μš©ν•œλ‹€
  • μ΄λ•Œ 같은 데이터가 μ €μž₯λ˜μ–΄ μžˆλŠ” μ—¬λŸ¬ 개의 λ””μŠ€ν¬ 쀑 μ–΄λŠ λ””μŠ€ν¬μ—μ„œ μš”μ²­μ„ μ²˜λ¦¬ν• μ§€ κ²°μ •ν•˜λŠ” μŠ€μΌ€μ€„λ§ λ¬Έμ œκ°€ λ°œμƒν•œλ‹€
  • κ±°μ‹œμ μΈ κ΄€μ μ—μ„œλŠ” 각 λ””μŠ€ν¬ κ°„μ˜ λΆ€ν•˜κ· ν˜•(load balancing)을 이루도둝 μŠ€μΌ€μ€„λ§ν•˜λŠ” 것이 μ’‹λ‹€

 

4. λ””μŠ€ν¬μ˜ μ €μ „λ ₯ 관리

1) λΉ„ν™œμ„±ν™” 기법

  • λ””μŠ€ν¬μ˜ μƒνƒœλŠ” μ „λ ₯ μ†Œλͺ¨λ₯Ό κΈ°μ€€μœΌλ‘œ ν™œλ™ μƒνƒœ, κ³΅νšŒμ „ μƒνƒœ, μ€€λΉ„ μƒνƒœ, 휴면 μƒνƒœλ‘œ λ‚˜λˆ„μ–΄ λ³Ό 수 μžˆλ‹€
  • ν™œλ™(active) μƒνƒœ: ν˜„μž¬ ν—€λ“œκ°€ 데이터λ₯Ό μ½κ±°λ‚˜ μ“°κ³  μžˆλŠ” μƒνƒœ
  • κ³΅νšŒμ „(idle) μƒνƒœ: λ””μŠ€ν¬κ°€ νšŒμ „ μ€‘μ΄μ§€λ§Œ 데이터λ₯Ό μ½κ±°λ‚˜ μ“°μ§€λŠ” μ•ŠλŠ” μƒνƒœ
  • μ€€λΉ„(standby) μƒνƒœ: λ””μŠ€ν¬κ°€ νšŒμ „ν•˜μ§€ μ•Šμ§€λ§Œ μΈν„°νŽ˜μ΄μŠ€κ°€ ν™œμ„±ν™”λœ μƒνƒœ
  • 휴면(sleep) μƒνƒœ: λ””μŠ€ν¬κ°€ νšŒμ „ν•˜μ§€ μ•Šκ³  μΈν„°νŽ˜μ΄μŠ€λ„ λΉ„ν™œμ„±ν™”λœ μƒνƒœ
  • λ””μŠ€ν¬λ₯Ό λΉ„ν™œμ„±ν™”ν•˜λŠ” μ‹œμ μ„ κ²°μ •ν•˜λŠ” λ°©λ²•μœΌλ‘œλŠ” μ‹œκ°„κΈ°λ°˜ 기법과 예츑기반 기법, ν™•λ₯ κΈ°λ°˜ 기법이 μžˆλ‹€
  • μ‹œκ°„κΈ°λ°˜(timeout based) 기법: 일정 μ‹œκ°„ λ™μ•ˆ λ””μŠ€ν¬κ°€ κ³΅νšŒμ „ μƒνƒœμ΄λ©΄ μž₯치λ₯Ό μ •μ§€μ‹œμΌ°λ‹€κ°€, λ‹€μ‹œ μš”μ²­μ΄ 왔을 λ•Œ λ””μŠ€ν¬λ₯Ό ν™œμ„±ν™”ν•œλ‹€
  • 예츑기반(prediction based) 기법: κ³Όκ±° μš”μ²­μ„ κ΄€μ°°ν•˜μ—¬ λ‹€μŒ κ³΅νšŒμ „ κ΅¬κ°„μ˜ 길이λ₯Ό μ˜ˆμΈ‘ν•œ ν›„ λ””μŠ€ν¬λ₯Ό λΉ„ν™œμ„±ν™”ν•  μ‹œμ μ„ κ²°μ •ν•œλ‹€
  • ν™•λ₯ κΈ°λ°˜(stochastic based) 기법: λ””λ°”μ΄μŠ€μ˜ μƒνƒœλ³€κ²½ μ‹œκ°„ 간격을 κ΅¬ν•˜κΈ° μœ„ν•΄ ν™•λ₯ λΆ„ν‘œλ₯Ό 톡해 μš”μ²­μ„ λͺ¨λΈλ§ν•˜κ³  톡계적 λͺ¨λΈμ„ μ΄μš©ν•œλ‹€

2) νšŒμ „μ†λ„ 쑰절 기법

  • λ””μŠ€ν¬μ˜ νšŒμ „μ†λ„(Rotations Per Minute: RPM)λ₯Ό κ°€λ³€μ μœΌλ‘œ μ‘°μ ˆν•˜λŠ” 기법
  • μš΄μ˜μ²΄μ œλŠ” μ‹œμŠ€ν…œ μžμ›κ³Ό λΆ€ν•˜λ₯Ό ν¬κ΄„μ μœΌλ‘œ λ³Ό 수 있기 λ•Œλ¬Έμ— ν•˜λ“œμ›¨μ–΄ ν˜Όμžμ„œ μ „λ ₯ 관리λ₯Ό ν•˜λŠ” 것에 λΉ„ν•΄ 더 λ§Žμ€ μ „λ ₯ 절감 효과λ₯Ό 얻을 수 μžˆλ‹€

3) λ””μŠ€ν¬μ˜ 데이터 배치 기법

  • FS2 파일 μ‹œμŠ€ν…œ(free space file system): λŒ€λΆ€λΆ„μ˜ 컴퓨터 μ‹œμŠ€ν…œμ—μ„œ λ””μŠ€ν¬μ˜ 53% 이상이 빈 곡간인 μƒνƒœλ‘œ 남아 μžˆλ‹€λŠ” 점에 μ°©μ•ˆν•΄, λ””μŠ€ν¬ 내에 λ°μ΄ν„°μ˜ λ³΅μ œλ³Έμ„ 많이 λ§Œλ“€μ–΄ ν—€λ“œ μœ„μΉ˜μ—μ„œ κ°€κΉŒμš΄ λ³΅μ œλ³Έμ— μ ‘κ·Όν•˜λ„λ‘ ν•¨μœΌλ‘œμ¨ λΉ λ₯Έ μ‘λ‹΅μ‹œκ°„κ³Ό μ „λ ₯ μ†Œλͺ¨λŸ‰ μ ˆκ°μ„ μ–»λŠ” 방법

4) 버퍼캐싱 및 μ‚¬μ „μΈμΆœ 기법

  • λ―Έλž˜μ— μš”μ²­λ„λ¦¬ 데이터λ₯Ό μ–΄λŠ 정도 μ˜ˆμΈ‘ν•  수 μžˆλ‹€λ©΄ λ””μŠ€ν¬κ°€ ν™œμ„± μƒνƒœμΌ λ•Œ ν—€λ“œ μœ„μΉ˜λ‘œλΆ€ν„° κ°€κΉŒμš΄ 데이터λ₯Ό μ‚¬μ „μΈμΆœ(prefetching)ν•¨μœΌλ‘œμ¨ ν–₯ν›„ λ””μŠ€ν¬μ˜ λΉ„ν™œμ„±ν™” κ°€λŠ₯성을 λ†’μ—¬ μ „λ ₯ μ†Œλͺ¨λ₯Ό 쀄일 수 μžˆλ‹€
  • λ°λ“œλΌμΈμ„ κΌ­ μ§€μΌœμ•Ό ν•˜λŠ” κΈ΄κΈ‰ν•œ μš”μ²­μ΄ μ•„λ‹Œ 경우, λ””μŠ€ν¬μ˜ ν™œμ„± μƒνƒœ 여뢀에 따라 μš”μ²­μ„ μ΅œλŒ€ν•œ μ§€μ—°μ‹œν‚€λŠ” 방식도 μžˆλ‹€

5) μ“°κΈ°μ „λž΅μ„ ν†΅ν•œ μ €μ „λ ₯ λ””μŠ€ν¬ 기법

  • λŒ€μƒ λ””μŠ€ν¬κ°€ λΉ„ν™œμ„± μƒνƒœμΌ λ•Œμ—λŠ” λ””μŠ€ν¬ μ“°κΈ°λ₯Ό ν•˜μ§€ μ•Šκ³  κΈ°λ‹€λ Έλ‹€κ°€ λ””μŠ€ν¬κ°€ ν™œμ„± μƒνƒœλ‘œ λŒμ•„μ™”μ„ λ•Œ μ“°λŠ” 방식이닀