ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [OS] 메모리 스왑(스와핑) #swap
    OS 2021. 11. 26. 09:59

    [OS] 메모리 스왑(스와핑) #swap

     


    안녕하세요? 장장스입니다.

    오늘은 메모리 스와핑에 대해 정리해보겠습니다!

     

    스와핑 (swapping)


    메모리에 올라온 프로세스의 주소 공간 전체를 디스크의 스왑 영역(swap area)에 일시적으로 내려놓는 것을 말한다. 이때 스왑 영역은 백킹스토어(backing store)라고 부르며, 디스크 내에 파일 시스템과는 별도로 존재하는 일정 영역을 말한다.

    잠깐
    스와핑이라는 개념은 프로세스가 종료되어 그 주소 공간을 디스크로 내쫓는 것이 아니라, 특정한 이유로 수행 중인 프로세스의 주소 공간을 일시적으로 메모리에서 디스크로 내려놓는 것을 의미한다.

     

    역할


    그렇다면 스와핑의 역할은 무엇일까?

    스와핑은 다중 프로그래밍의 정도(degree of multiprogramming)을 조절한다. 다시 말하면 메모리에 존재하는 프로세스의 수를 조절하는 것이다.

     

    너무 많은 프로그램에 메모리에 동시에 올라오게 되면 한정된 메모리의 양을 적게 사용하게 될 것이다. 이는 시스템의 성능을 크게 떨어뜨린다. 스와핑은 이러한 문제를 해결하기 위해 몇몇 프로그램을 통째로 디스크의 스왑 영역으로 보냄으로써 메모리에 있는 프로그램들에게 실행에 필요한 적절한 메모리 공간을 보장한다. 현재 메모리에 있는 프로그램이 충분히 실행되고 나면 디스크 영역에 보낸 프로그램을 스왑 인 시켜 다시 메모리에 올린다.

     

     

    스와핑 과정


    1. 스와퍼(swapper)라고 불리는 중기 스케줄러에 의해 스왑 아웃시킬 프로세스를 선택한다.

    (중기 스케줄러는 메모리에 적재된 프로세스의 수를 동적으로 조절하기 위한 스케줄러이다.)

     

    2. 스와퍼가 선택한 프로세스에게 할당된 메모리 주소 공간을 통째로 빼앗아 디스크의 스왑 영역으로 스왑 아웃(swap out)시킨다.

     

    3. 여유가 생긴 메모리 공간에 필요한 프로세스의 메모리 주소 공간을 스왑 인(swap in) 시킨다.

     

     

     

     

    Post


    •  

    References


    • [KOCW] 운영체제 강의 - 반효경 교수

     

     


    잘못된 코드나 내용이 있다면 댓글을 남겨주세요. 즉시 수정하도록 하겠습니다! :)

    댓글