페이징 / 세그멘테이션

김민영·2023년 2월 13일
0

CS 스터디

목록 보기
26/32
  • 프로세스를 메모리에 적재하고, 제거하는 일이 반복되면
    • 외부 단편화 : 프로세스 사이사이에 작은 메모리가 중간 중간 존재
    • 내부 단편화 : 프로세스가 요청한 양보다 더 많은 메모리 할당 시 발생
  • 단편화가 발생한다.
    • 외부 단편화를 해소하기 위해 페이징
    • 내부 단편화를 해소하기 위해 세그멘페이션
  • 기법이 사용된다.

페이징 Paging - 물리적

  • 프로세스를 일정한 크기의 페이지로 분할해서 메모리에 적재하는 방식
  • 하나의 프로세스가 사용하는 메모리 공간이 불연속적이어도 됨.
  • 페이지 : 고정 사이즈의 가상 메모리 내 프로세스 조각
  • 프레임 : 페이지 크기와 같은 주 기억 장치의 메모리 조각

페이징 테이블 Paging Table

  • 메모리 관리 장치 MMU. Memory Management Unit은 가상 주소(논리 주소)를 이용해 실제 데이터가 담긴 주소로 변환
  • 논리 주소 Logical Address 는 <page, offset> 의 형태.

장점

  • 논리 메모리가 물리 메모리에 저장될 때 연속되어 저장되지 않고 물리 메모리의 남는 프레임에 적절히 배치되기 때문에 외부 단편화 발생하지 않음

단점

  • 내부 단편화 문제 발생 가능.
  • 페이지 단위를 작게 하면 해결할 수 있지만, 페이지 매핑 과정이 복잡해져서 비효율적임

단순 페이지

  • 각 프로세스는 프레임과 같은 길이를 가진 균등 페이지로 나뉨
  • 외부 단편화 해소
  • 내부 단편화 존재 가능

가상 메모리 페이징

  • 단순 페이징과 비교해 프로세스 페이지 전부 로드할 필요 없음
  • 필요한 페이지가 있으면 나중에 자동으로 불러 들임
  • 외부 단편화 해소
  • 메모리 관리가 복잡 - 오버헤드 가능

세그멘테이션 Segmentation - 논리적

  • 세크먼트 : 가상 메모리를 서로 크기가 다른 논리적 단위로 분할한 것
  • 세그멘테이션 : 프로세스를 물리적 단위인 페이지가 아닌, 논리적 단위인 세그먼트로 분할하여 메모리 적재

세그먼트 테이블

  • 페이징 방식과 동일한 방식
  • <segment, offset> 형태
  • 세그먼트 번호를 통해 세그먼트 시작 물리 주소 (기준), 세그먼트 길이 (한계) 파악

장점

  • 내부 단편화 문제 해소
  • 보호와 공유 기능 수행
    • 프로그램의 중요한 부분과 중요하지 않은 부분을 분리하여 저장
    • 같은 코드 영역은 한 번에 저장

단점

  • 외부 단편화 문제 발생 가능

단순 세그멘테이션

  • 각 프로세스는 여러 세그먼트로 나뉨
  • 내부 단편화 해소
  • 메모리 효율 개선
  • 동적 분할을 통한 오버헤드 감소
  • 외부 단편화 존재 가능

가상 메모리 세그멘테이션

  • 필요없는 세그먼트는 로드되지 않음
  • 필요한 세그먼트가 있으면 나중에 자동으로 로드
  • 내부 단편화 해소
  • 복잡한 메모리 관리로 오버헤드 발생 가능

참고

profile
노션에 1차 정리합니당 - https://cream-efraasia-f3c.notion.site/4fb02c0dc82e48358e67c61b7ce8ab36?v=

0개의 댓글