[Operating System] Paging & Segmentation

olwooz·2023년 1월 29일
0

Operating System

목록 보기
9/10
post-thumbnail

메모리 할당

프로그램을 실행하기 위해 주기억장치에 메모리 할당 필요

  • 메모리에 프로그램 할당시 시작 메모리 위치와 메모리의 할당 크기 기반으로 할당
  • 연속 할당/불연속 할당으로 나뉨

연속 할당

  • 메모리에 프로그램 전체를 연속적으로 공간 할당
  • 고정 분할 방식/가변 분할 방식으로 나뉨

고정 분할 방식 fixed partition allocation

  • 미리 메모리를 고정된 파티션으로 분할해 관리
  • 융통성 없음
  • 내부 단편화 발생

가변 분할 방식 variable partition allocation

  • 매 시점 프로그램의 크기에 맞는 동적 파티션을 생성해 사용
  • 외부 단편화 발생
  • 최초적합, 최적적합, 최악적합
    • 최초적합: 위쪽이나 아래쪽부터 시삭해서 홀을 찾으면 바로 할당
    • 최적적합: 프로세스의 크기 이상인 공간 중 작은 홀부터 할당
    • 최악적합: 프로세스의 크기와 가장 많이 차이가 나는 홀에 할당

- 할당할 수 있는 빈 메모리 공간

불연속 할당

  • 메모리에 프로그램 전체를 연속적으로 할당하지 않음
  • 현대 운영체제가 쓰는 방법
  • 페이징/세그멘테이션

페이징 Paging

- 동일한 크기의 페이지(보통 4KB) 단위로 나누어 메모리의 서로 다른 위치에 프로세스 할당
- 주소 변환 복잡함
- 내부 단편화 존재

페이지 - 고정 사이즈의 작은 프로세스 조각
프레임 - 페이지 크기와 같은 주기억장치 메모리 조각

세그멘테이션 Segmentation

- 페이지 단위가 아닌 의미 단위인 세그먼트로 나누는 방식
- 공유와 보안 측면에서 좋음
- 외부 단편화 존재

페이지드 세그멘테이션 Paged Segmentation

- 공유나 보안을 세그먼트로 나누고 물리적 메모리는 페이지로 나눔

0개의 댓글