en ko ko ko ko ko ko ko pt ko ko ko ko ko en ko ko ko it ko pt it en en ko en fr fr fr it fr ceb ko ko ko ko ko en ko el ko en ko ko en ko en ko en en ko en ko en ko en ko en ko en en en ko ko ko ko ko ko de en de ko de ko de ko de ko ko ko ko ko ko ko ko ko ko ko en it ko ko ko ko ko en en en sv en sv ko fi en fr ko ko ko ko ko ko ko en en en en en sv fr de de fr fr fr sv en fr en ja fr de fr es nb fr de en en sv de de fr en fr it fr en ko en en en en en
Paging Swap space, File system vs. Independent Partition
Interaction in VR Env. (1)
OS에서 프로그램을 실행해 메모리에 올려 사용하다보면, RAM(Random Access Memory)의 용량이 부족할 때가 있다.
이 때, 대부분의 운영체제는 Secondary Storage인 Disk의 일부를 Virtual Memory로 활용하는데, Memory의 데이터를
디스크로 옮겨 보관하는 것을 Paging(페이징)이라고 한다. 그리고 이 Paging을 하기 위한 공간을 Swap Space라고 부른다.
그리고 페이징을 하는 경우는 메모리가 부족할 때도 있고 컴퓨터가 절전 모드(Hibernation)에 들어갈 때도 있다.
페이징을 하는 우선순위를 정하는 정책은 여러가지가 있다. 대표적인 예로 FIFO나 LRU를 들 수 있겠다.
Swap Space in file system vs. partition
그렇다면, 파일시스템 내부에 swap space file을 두는 것이 좋을까 아니면 별도의 partition으로 분리해 swap space를 두는것이 좋을까? 윈도우의 경우에는 일반적으로 C:\에 *.sys 형식 숨겨진 파일로 페이지 파일을 저장한다.
이렇게 파일 시스템 내에 페이지 파일로 직접 저장하면, 미리 페이징 용량을 확보해두지 않고 필요한 양에 따라 동적으로 접근할 수 있다는 이점이 있다. 하지만, 이렇게 파일 시스템을 사용해 페이징 파일을 저장하면 파일 시스템 오버헤드가 발생한다.
별도의 파티션을 Swap space로 지정한다고 해보자.
지금이야 SSD를 사용량이 많이 늘었기 때문에 파일 접근에 대한 time cost가 적지만, RAM의 용량이 적고, 속도가 느린 HDD를 사용한다면 페이지 파일에 접근할 때 마다 계속 하드디스크를 읽어야만 한다 (Thrashing). 그렇기 때문에 병목 현상이 발생해 성능 저하가 심각해진다. 하지만, 별도의 파티션으로 저장하면 파일 시스템에서 가지는 오버헤드가 없다.
그리고 리눅스에서는 기본적으로 별도의 파티션을 swap space로 사용한다. 물론 설정을 통해서 파일 시스템 내부의 파일을 swap space로 사용할 수 있다. 하지만, 그렇지 않은 경우라면 리눅스에서 partition으로 swap space를 지정하지 않는다면 절전 모드를 사용할 수 없다.
'개발' 카테고리의 다른 글
sudo 없이 Docker 사용하기  (1)
Paging Swap space, File system vs. Independent Partition  (0)
조잡한 Web Advent Calendar 개발기  (0)
Docker에 Python Flask 웹 서버 올리기  (0)
머신러닝 용어 정리(지도학습, 강화학습, 전이학습, 딥러닝)  (0)
이전 1 2 3 4 5 6 7 8 ··· 55 다음
sudo 없이 Docker 사용하기
게임 아이템 납품 점수,⋯
Paging Swap space, File⋯
네! 동아리 종류는 한국보다⋯
Blog is powered by Atez / Designed by Tistory