ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [OS] Swap, File-backed Page, DMA
    ComputerScience/OS 2024. 3. 22. 15:01
    728x90

    10주차에 들어섰다.

    이번 주차의 키워드들 중에서 내가 맡은 키워드는 swap disk, file-backed page, DMA이다.

    DMA는 이전에도 나왔던 키워드이긴 하지만 swap disk와 file-backed page는 처음 만나는 개념들이다. 한 번 살펴봐보자.

    Swap

    Swap

    RAM이외의 저장 공간을 사용하여 시스템의 가상 메모리 용량을 확장하는 기법이다.

    보조적인 저장장치(HDD, SSD)에 있는 스왑 공간이나 스왑 파일을 이용한다.

    스왑을 통해 운영체제는 RAM의 한계를 넘는 메모리 요구를 충족하고 더 많은 프로그램을 동시에 실행할 수 있게 된다.

    • 가상 메모리(Virtual Memory)란?
      메인 메모리의 크기가 한정되어 있는데 메인 메모리보다 크기가 큰 프로세스를 실행해야 한다면? 에 대한 해결 방법으로 나온 방법이다.
      프로세스의 필요한 부분만 올려서 실제로 메모리에 올라가는 프로세스의 크기를 최소화 한다.

    Swap Disk

    우선 지선생님의 설명을 보자

     

    스왑 디스크(swap disk)는 운영 체제가 물리적 메모리(RAM)가 부족할 때, 추가 메모리 공간으로 사용되는 하드 드라이브의 일부분을 말한다. 이 공간은 RAM과 비슷한 역할을 하지만, 데이터 접근 속도는 더 느리다는 차이가 있다. 스왑 공간을 사용함으로써, 시스템은 더 많은 프로그램과 데이터를 동시에 처리할 수 있게 된다.

     

    스왑 디스크의 사용은 메모리가 충분히 제공되는 현대의 시스템에서는 덜 중요해졌지만, 여전히 시스템의 안정성을 높이고 메모리 관리를 최적화하는 데 도움이 된다. 하지만 스왑 공간에 대한 접근은 하드 드라이브에 비해 훨씬 느리기 때문에, 스왑을 과도하게 사용하게 되면 시스템의 성능이 크게 저하될 수 있다.

    Swap Space vs Swap Memory vs Swap Disk  

    스왑 공간은 가상 메모리의 일부로 사용되는 저장 공간을 말하고,

    스왑 메모리는 이 공간을 통해 생성되는 가상의 메모리 공간을 말하고,

    스왑 디스크는 이러한 메모리를 제공하는 물리적 저장 장치를 지칭한다.

     

    실제 사용에서는 큰 구분없이 사용되는 경우가 많다.

    즉, 셋 사이에 본질적인 차이는 없다.

    Swapping

    swap을 수행하는 방법 중 하나.

    주기억장치에 적재한 하나의 프로세스를 보조기억장치에 적재했다가 필요할 때 다시 꺼내서 사용하는 메모리를 교체하는 기법이다.

    스와핑은 프로세스 단위로 이루어지기 때문에 외부 단편화 문제가 발생할 수 있어 비효율적이다.

    swap in / swap out

    메인 메모리의 유저 공간에 최대 10개의 프로세스만 실행시킬 수 있다고 가정해보자.

    이 때 11번째 프로세스가 실행되어야 한다면 10개 중 하나를 빼거나 종료시켜야 하는데, 이 때 종료시키는 것이 아니라 보조기억장치(HDD, SSD)에 잠시 빼 놓는 것을 swap out한다고 말한다.

     

    만약 빼 놓았던 프로세스에서 다시 작업을 요청하면 메모리로 복귀시켜서 작업을 수행할 수 있도록 해주어야 하는데, 이렇게 swap-out된 프로세스를 다시 메모리에 적재시키는 것을 swap in이라고 한다.

     

    결론적으로 보자면... swapping과 paging 모두 가상 메모리 관리에서 사용될 수 있으며 주요 차이점은 swap하는 단위라고 볼 수 있다.

     

    더 자세한 내용은 OSTEP 18장을 보는 것이 좋을 것 같다.

     

    File-backed Page

    페이지는 익명 페이지와 파일 기반 페이지로 나눌 수 있다.

    anonymous page

    • 정의
      파일 시스템에 백업되지 않는 메모리 페이지이다.
      프로세스의 스택, 힙 또는 동적 할당 메모리 등과 같이 실행중인 프로세스에 의해 동적으로 생성되는 데이터를 저장하는 데 사용된다.페이지가 어떠한 이름을 갖는 file source를 갖고 있지 않기 때문에 anonymous이다.
    • 특징
      프로세스의 메모리가 할당될 때 생성되고, 디스크의 어떤 파일과도 연결되지 않는다.
      대신, 스왑 공간(swap space; swap memory; swap disk)으로는 백업될 수 있다. 내용이 계속 바뀌기 때문에 swap file 형태로 백업되어야 한다.
      프로세스가 종료되면 이 페이지들에 저장된 데이터는 소멸된다.
    • 용도
      동적 메모리 할당, 스택 메모리 할당, 프로세스의 임시 데이터 저장 등에 사용된다.

    File-backed page

    • 정의
      특정 파일의 내용을 반영하는 메모리 페이지이다.
      파일 시스템에 저장된 파일을 메모리에 매핑함으로써 생성된다.
      메모리 매핑 파일 기능을 통해 파일의 일부 또는 전체가 프로세스의 가상 주소 공간에 매핑되어 직접적인 메모리 접근을 가능하게 한다.
    • 특징
      페이지의 데이터가 변경될 경우, 변경 사항이 나중에 파일 시스템의 실제 파일에 반영된다.
      이를 통해 메모리와 디스크 사이에서 데이터를 공유하고 여러 프로세스가 동일한 데이터에 대해 읽기 및 쓰기 작업을 수행할 수 있다.
    • 용도
      파일 내용의 메모리상 표현, 프로세스 간 데이터 공유, 대용량 파일 처리 등에 사용된다.

    차이점

    • anonymous page는 실행 중인 프로세스에 의해 생성되고 관리되고, 프로세스 종료 시 소멸된다. 이에 반해 file-backed page는 파일 시스템에 저장된 파일로부터 생성되며 파일의 내용을 메모리상에 반영하고 변경 사항은 파일에 다시 쓰여질 수 있다.
    • anonymous page는 스왑 공간을 통해 백업될 수는 있지만, 특정 파일과 연결되진 않는다.
      file-backed page는 특정 파일과 직접 연결되어 해당 파일이 백업 매체 역할을 한다.

    Memory Mapped File

    파일 시스템에 저장된 파일을 메모리의 주소 공간에 매핑하는 기술

    프로그램은 파일을 메모리에서 직접 읽고 쓸 수 있는 것처럼 접근할 수 있다.

    파일의 일부 또는 전체가 프로세스의 가상 주소 공간에 매핑되며 파일의 내용은 메모리에 로드된 페이지로 나타난다.

     

    이 기술을 통해 생성된 실제 메모리 내의 페이지가 바로 memory mapped pages 또는 file backed pages이다.

    Memory Mapped Pages

    memory mapped file 프로세스에서 실제로 메모리 주소 공간에 매핑되는 페이지를 뜻한다.

    이 페이지들은 메모리에 로드되어, 파일 시스템의 파일 데이터와 직접적으로 매칭된다.

    Memory mapped pages and File-backed Pages?

    memory mapped pages는 memory mapped file을 수행하는 과정에서 메모리에 로드되는 페이지를 말하고

    file-backed pages는 이러한 페이지들이 파일 시스템에 저장된 파일을 반영한다는 점을 강조한다.

     

    Pintos project 3: Virtual Memory에서 페이지를 구현하는데, anonymous page와 file-backed page 둘 다 구현해야 하는 것 같다. 자세한 내용은 깃북에서 더 자세히 봐야될 것 같다.

     

    DMA(Direct Memory Access)

    cpu의 개입 없이 메모리에 접근하는 기법이다.

     

    Reference

    https://resilient-923.tistory.com/397

     

    [운영체제(OS)] 스와핑(swapping), 가상메모리(virtual memory) 란?

    저번 시간에는 페이징과 세그멘테이션 방법에 대해서 살펴봤습니다. 모두 메모리를 어떻게 효율적으로 쓸 것이냐에 대한 고민을 바탕으로 나온 방법들이었는데요. 그렇다면 페이징 + 세그멘테

    resilient-923.tistory.com

    https://ryotta-205.tistory.com/89

     

    DMA(Direct Memory Access)

    DMA의 정의 DMA는 특정한 HW 시스템(Hard-disk, GPU 등)이 CPU와 독립적으로 주 시스템 메모리(RAM)에 Access 할 수 있도록 하는 컴퓨티 시스템의 기능이다. CPU는 상태, 제어정보만을 교환하고 직접적인 데

    ryotta-205.tistory.com

     

     

Designed by Tistory.