해결된 질문
작성
·
222
0
안녕하세요. 강의 잘 듣고 있습니다.
강의를 보다가 이해되지않는 부분이 생겨 질문 드립니다.
하드디스크에 쓰기요청을 할 때 SSD는 HDD와 달리 물리적 장치를 사용하지 않기때문에 메모리 위치에 상관없이 빠르게 접근할 수 있는 것으로 알고있습니다. 그래서 1번 위치(995MB)에 접근해서 4byte를 쓰는 것과 1번 위치(100MB)위치에 4byte를 쓰는 것이 별로 차이 나지 않을 것이라 생각하는데요.
HDD도 디스크의 외곽에 위치한 곳에 접근하는 것이 가장 오래걸린다고 알고 있습니다. 하지만 디스크 외곽에 위치한 곳이 항상 높은 메모리 위치(995MB)는 아닌 것으로 알고 있습니다.
또한 공간확보라는 말씀이 잘 이해가 가질 않네요. 995MB의 위치에 4byte를 쓰는데 왜 995MB의 공간확보가 필요한 것인가요?? 파일이 0~1GB까지 연속적으로 메모리 할당을 해야하는 것인가요? 띄엄띄엄 메모리 할당을 하면 안되는 것일까요?
답변 1
0
SSD나 HDD 모두 소프트웨어 개발자 입장에서 보면 다를 것이 없습니다. 스트림 데이터를 저장하기 위한 2차 메모리 입니다. 그리고 2차 메모리는 파일 시스템으로 관리합니다. 다양한 파일 시스템이 있고 저마다 조금씩 차이가 있지만 기본적으로 파일은 마치 1열 종대로 줄을 선 것처럼 이어져 존재합니다.
공연장에 입장하기 위해 줄을 선다고 생각해봅시다. 그런데 특수하게 10번째 위치에 서야 한다면 내 앞에 사람이 있건 없건 9명이 설 수 있는 공간 뒤에 서게 될 것입니다. 현재 줄을 선 사람은 나 하나지만 실제 소모된 공간은 10명이 설 수 있는 공간이 소모될 것입니다.
결국 스스로 생각하는 것처럼 연속적으로 메모리가 할당 됩니다. 다만 이는 논리적으로 연속되는 것이고 실제 2차 메모리에 저장될 때는 여러 섹터에 나뉘어 저장되며 물리적 위치가 연속되지 않는 경우가 대부분입니다. 참고하시기 바랍니다.