ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [OS] - Paging / Segmentation
    CS/면접준비 2022. 9. 30. 12:37

    Paging , Segmentation


    Multi Programming에서 여러 Process를 수용하기 위해 Main Memory를 분할하여 Memory 관리

     

    관리 방식

    1. Continuous Memory 관리

    Program 전체가 하나의 커다란 공간에 연속적으로 할당

    • 고정 분할 : Internal fragmentation
    • 동적 분할 : External fragmentation

     

    2. Non Continuous Memory 관리

    Program 일부가 서로 다른 Address 공간에 할당

    • Page = Process를 고정 사이즈로 분할
    • Frame = Page와 동일한 크기로 Main Memory 분할
    • Fragmentation = Hole Space , data가 여러 조각으로 나누어지는 현상
    • Segment = 서로 다른 크기를 가진 논리적 Block 연속적 공간에 배치

     

    Virtual Memory

    Paging

    • Demanding Paging ( Process Page 전체를 Main Memory에 Load하여 사용하지 않는다. 당장 필요한 Page만 Load )
    • Internal fragmenation 발생
    • 복잡한 Memory 관리로 Overhead 발생

    Segmentation

    • Process Segment 전체를 Main Memory에 Load하여 사용하지 않는다.
    • 필요한 Segment는 자동으로 Load
    • External fragmenation 발생
    • 복잡한 Memory 관리로 Overhead 발생

     

    메모리 과할당( Memory over allocating )

    실제 메모리의 사이즈보다 더 큰 사이즈의 메모리를 프로세스에 할당한 상황
    • 현재 Main Memory는 20개의 Frame으로 사용한다고 해보자.
    • 4개의 Process가 각각 5개의 Page를 올려 사용중이였다.
    • 이 때 새로운 Program이 실행되면서 Main Memory에 자신의 Page를 올리려고 한다.
    • 이 때 Virtual Memory는 사용자에게 이를 인식시키지 못하게 동작시킨다.
    • Main Memory에 남는 공간이 없는데 어떻게 해야할까?

     

    기본적인 Page 교체 방식은 Memory 내에서 교체된 Victim Page를 선택하여 Swap-out하고 사용할 페이지를 Disk로부터 Swap-in 한다.Swap Out,In은 Disk에 2번 접근하게 되어 매우 느리다.

     

    Modify-bit

    해당 Page가 최근에 변경된적이 있다면 1 , 아니면 0으로 설정

    Swap-Out을 하면서 해당 Page가 0이라면(최근에 사용 X) 그대로 버리고, 1이라면 Disk에 저장한다.

    이러한 방법을 통해 연산을 줄인다.

     

    Page Replacement는 적게 일어날 수록 좋다 -> Swap 이 적어져 Disk I/O가 줄어든다.

     

     

     

    'CS > 면접준비' 카테고리의 다른 글

    [OS] - Memory  (1) 2022.09.30
    [OS] - Paging Algorithm  (0) 2022.09.30
    [OS] - Semaphore / Mutex  (0) 2022.09.30
    [OS] - DeadLock  (0) 2022.09.29
    [OS] - CPU Scheduling  (0) 2022.09.29

    댓글

Designed by Tistory.