교대최소제곱법
[메모리 할당] 디스크 조각모음과 단편화 본문
디스크 조각모음
보조 기억 장치의 단편화를 해결하기 위한 최적화 프로그램
과거에는 저장장치가 구리고 단편화 문제가 실제로 체감되었기 때문에 디스크 조각모음 프로그램을 따로 설치하여 돌려주고는 했었다.
최근에는 이런 사설 프로그램을 설치할 필요 없이 기본적으로 운영체제에서 해결해준다.
찾아보니까 매주 자동으로 하드디스크를 정리해주는 모양이다.
과거에는 디스크 조각모음이 중요했으나 캐시 메모리의 대형화, 자기 디스크에 대한 기술 발전으로 처리 속도, 저장 용량 등의 성능이 향상되면서 중요성이 다소 떨어졌다.
SSD는 디스크 조각모음이 필요없다
정확히는 플래시 메모리 저장매체들은 디스크 조각 모음이 필요없다.
그 이유는 메모리 할당 과정을 통해 알 수 있는데
malloc 구현을 하다보면 find_fit라는 함수의 존재를 찾을 수 있다
malloc의 성능은 이 find의 속도에 어느정도 비례한다고 보면 된다.
하드 디스크의 경우 구조상 헤더를 물리적으로 움직여 섹터를 탐색하기 때문에 단편화가 생기면 탐색이 더 오래걸리고 체감이 되었다.
하지만 SSD의 경우 물리적인 접근이 아닌 전자적인 방식을 사용해 접근하기 때문에 조각의 개수(단편화)와 상관없이 빠른 접근을 할 수 있다.
그래서 오히려 디스크 조각모음을 통해 성능을 향상시키는 것보다 디스크 조각모음에 의해 저장장치의 수명이 깎이는 것이 손해라는 결론이 나오게 된다.
그럼 왜 단편화 문제가 없는 SSD를 main memory로 쓰지 않는 것일까?
SSD가 빠르다고 해도 보조 메모리 중에서 빠르다는 것이지
main memory인 DRAM이나 SRAM(캐시)의 속도와는 비교할 수 없다.
이러한 것뿐만 아니라
SSD는 높은 수준의 대역폭을 확보하기 위해 컨트롤러를 이용해 파일을 여러 플래시 메모리 칩에 분산 기록하는 인터리빙과
플래시 메모리의 수명을 관리하기 위한 마모 평준화를 통해
SSD의 단편화 문제를 해결한다.
→ 단편화 문제 없음!
'CS 기초 > 운영체제' 카테고리의 다른 글
[운영체제] 재밌는 이야기 (1) | 2023.12.04 |
---|---|
[운영체제] 운영체제와 cpu 아키텍쳐의 관계 그리고 펭귄 (2) | 2023.12.04 |
[운영체제 part 4] 파일과 디렉토리 (0) | 2023.09.08 |
[운영체제 part 3] 메모리 할당 (0) | 2023.09.08 |
[운영체제 part 2] CPU 스케쥴링 (0) | 2023.09.08 |