Notice
Recent Posts
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Archives
관리 메뉴

교대최소제곱법

[메모리 할당] 디스크 조각모음과 단편화 본문

CS 기초/운영체제

[메모리 할당] 디스크 조각모음과 단편화

옐라크레 2023. 11. 15. 11:05

디스크 조각모음

보조 기억 장치의 단편화를 해결하기 위한 최적화 프로그램

과거에는 저장장치가 구리고 단편화 문제가 실제로 체감되었기 때문에 디스크 조각모음 프로그램을 따로 설치하여 돌려주고는 했었다.

추억의 Auslogics Disk Defrag
이제서야 알게 되는 free space, allocated space...

 

최근에는 이런 사설 프로그램을 설치할 필요 없이 기본적으로 운영체제에서 해결해준다.

찾아보니까 매주 자동으로 하드디스크를 정리해주는 모양이다.

 

과거에는 디스크 조각모음이 중요했으나 캐시 메모리의 대형화, 자기 디스크에 대한 기술 발전으로 처리 속도, 저장 용량 등의 성능이 향상되면서 중요성이 다소 떨어졌다.


SSD는 디스크 조각모음이 필요없다

정확히는 플래시 메모리 저장매체들은 디스크 조각 모음이 필요없다.

 

그 이유는 메모리 할당 과정을 통해 알 수 있는데

malloc 구현을 하다보면 find_fit라는 함수의 존재를 찾을 수 있다

 

malloc의 성능은 이 find의 속도에 어느정도 비례한다고 보면 된다.

하드 디스크의 경우 구조상 헤더를 물리적으로 움직여 섹터를 탐색하기 때문에 단편화가 생기면 탐색이 더 오래걸리고 체감이 되었다.

하지만 SSD의 경우 물리적인 접근이 아닌 전자적인 방식을 사용해 접근하기 때문에 조각의 개수(단편화)와 상관없이 빠른 접근을 할 수 있다.

그래서 오히려 디스크 조각모음을 통해 성능을 향상시키는 것보다 디스크 조각모음에 의해 저장장치의 수명이 깎이는 것이 손해라는 결론이 나오게 된다.

 

그럼 왜 단편화 문제가 없는 SSD를 main memory로 쓰지 않는 것일까?

SSD가 빠르다고 해도 보조 메모리 중에서 빠르다는 것이지

main memory인 DRAM이나 SRAM(캐시)의 속도와는 비교할 수 없다.

 

이러한 것뿐만 아니라

SSD는 높은 수준의 대역폭을 확보하기 위해 컨트롤러를 이용해 파일을 여러 플래시 메모리 칩에 분산 기록하는 인터리빙
플래시 메모리의 수명을 관리하기 위한 마모 평준화를 통해
SSD의 단편화 문제를 해결한다.

→ 단편화 문제 없음!