가상메모리와 페이징, 세그먼테이션

전윤지·2021년 6월 16일
1

OS (운영체제)

목록 보기
5/6

1. 가상 메모리 (Virtudal Memory)

  • 실제 메모리 크기와 상관없이 메모리를 사용 할 수 있도록 가상 메모리 주소를 사용 하는 것
  • 프로세스의 일부분만 메모리에 로드하고, 나머지는 보조기억장치 (가상메모리 공간)에 둔다

[ 가상 메모리 사용의 장점 ]

  • 실제 메모리 (RAM)보다 더 큰 공간 사용 가능
  • 가상의 주소 공간을 사용 해 논리적인 연속성 제공
  • 물리 메모리의 주소 공간을 알 필요가 없어짐

[ 하나의 프로세스를 여러 곳에 나눠 저장했는데, 어떻게 프로세스가 동작하는 걸까? ]

  • MMU를 통해 논리주소, 물리주소를 나눠 사용함으로써 CPU를 속임으로써 가능!
    • MMU?
      : 가상 주소 -> 실제 메모리 주소로 변환해주는 장치

2. 가상 메모리 관리 기법

1) 페이징 (Paging)

: 프로세스를 고정 크기인 페이지로 잘라서 메모리에 적재하는 방법

  • 물리메모리는 frame, 프로세스는 page라 불리는 고정 크기로 분할 함
  • 페이지 테이블을 통해 page를 frame으로 매핑시킴
  • 내부 단편화 문제 발생
    • 내부 단편화?
      : 할당 된 단위보다 적은 용량의 프로그램이 적재되어 공간이 낭비 되는 것

2) 세그먼테이션 (Segmentation)

  • 프로세스를 크기가 서로 다른 세그먼트로 분할 해 메모리에 적재하는 방법
  • 외부 단편화 문제 발생
    • 외부 단편화?
      : 작업보다 많은 공간이 남아있더라도, 그 작업을 받아 들이지 못하는 것
      • 위의 예시에서는 메모리 용량이 100MB가 남았지만, 실제로 C작업이 들어 갈 수 없다

0개의 댓글