Memory - Segmentation

이유석·2022년 3월 11일
0

CS - Operating System

목록 보기
14/20

NonContiguous allocation
하나의 프로세스가 메모리의 여러 영역에 분산되어 올라갈 수 있음
기법 : Paging, Segmentation

  • Paging 기법은 Logical Address를 Page단위로, Physical Address를 같은 크기의 Frame 단위로 나누어 올리고 접근하였습니다.
  • 그리고 Page가 어떤 Frame에 해당하는지에 대한 정보를 담는 Page Table이 존재하였습니다.

Segmentation

정의

  • 원리는 Paging과 크게 다르지 않습니다.
  • 차이점은 "Segmentation은 모두 고정된 크기가 아닌 일련의 논리적 구조 단위로 나누어진다" 입니다.
  • 이렇게 논리적인 단위로 나누어 진다면, 사용자는 메모리의 상태를 이해하는데 더욱 도움이 됩니다.

논리적 구조 단위 : Main Program, Function, Method, Object, Stack, Symbol Table, etc...

Segmentation Table

  • Memory가 모두 크기가 다른 단위로 나누어지기 때문에, 크기를 알려주기 위해 해당 Segmentation의 시작점을 알리는 Base 정보와 끝을 알리는 Limit 정보를 갖고 있어야 합니다.

  • Segmentation Table에 접근한는 s 값에 대해서, 먼저 Limit를 초과하는지 검사를 통해 잘못된 주소 접근을 막습니다.

특징

  • Paging과 마찬가지로 공통된 부분은 메모리에 한 번만 올리고, 공유하는 Shared code 기능을 지원합니다.
profile
https://github.com/yuseogi0218

0개의 댓글