[운영체제] 9주차 공부

김서영·2021년 11월 7일
0

운영체제 스터디

목록 보기
9/10
post-thumbnail

Memory Management

Inverted Page Table

역방향 페이지 테이블.
원래는 논리 주소의 페이지 번호에 해당하는 entry에 가서 물리적 몇 번째 frame에 올라가있는 지를 확인. 그런데 이렇게 하니 공간 낭비가 너무 심해서, inverted page table.

Page table이 큰 이유

  • 모든 process 별로 그 logical address에 대응하는 모든 page에 대해 page table entry가 존재.
  • 대응하는 page가 메모리에 있든 아니든 간에 page table에는 entry로 존재.

Inverted Page table

  • Page frame 하나 당 page table에 하나의 entry를 둔 것.
  • 각 page table entry는 각각의 물리적 메모리의 page frame이 담고있는 내용 표시.
  • 단점으로는, 테이블 전체를 탐색해야함. 이를 위한 조치로는 associative register를 사용할 것. 근데 비쌈.

Shared Page

Segmentation

프로그램은 의미 단위인 여러 개의 segment로 구성.
page에서는 크기가 동일했는데, segment는 의미를 기준으로 올리는 것이기 때문에 크기가 균일하다는 보장도 없고 다 다름.

  • 작게는 프로그램을 구성하는 함수 하나하나를 세그먼트로 정의
  • 크게는 프로그램 전체를 하나의 세그먼트로 정의 가능
  • 일반적으로는 code,data,stack 부분이 하나씩의 세그먼트로 정의

Segemnt는 다음과 같은 logical unit들임.
main(), function, global variables, stack, symbol table, arrays.

Segmentation의 단점

Segment를 어느 조각에 넣어야 할 지 문제가 생김. (크기가 다르기 때문)

Segmentation의 장점

의미 단위로 쪼개다 보니, 의미 단위로 하는 일들에는 segmentation이 유리.

Segmentation with Paging

page의 크기를 기준으로 사이즈 결정. page의 배수 사용.

실제로는 paging 기법을 주로 사용.

profile
하지만 저는 이겨냅니다. 김서영이죠?

0개의 댓글