CS/OS

20. Memory Management 3

hjkim0502 2022. 4. 4. 22:18

  • 다단계 페이지 테이블을 사용해도 TLB 사용 비율이 높다면 오버헤드가 그렇게 크지 않다

  • page table은 주소 공간의 전체 용량만큼의 엔트리가 생성되므로, 페이지 개수가 부족한 프로세스도 있다

  • 각 페이지가 code, data, stack 중 일부를 가지고 있는데, 어떤 연산 권한을 가지고 있는지 알려준다
    • 예: code부분은 바뀌면 안되기 때문에 read-only, data/stack은 읽고 쓰기 다 가능

  • 해당 프로세스의 논리 주소가 page table의 몇번째 엔트리에 있는지 확인 후 물리 메모리에도 같은 인덱스로 접근
  • 공간 효율을 높이기 위한 방법이지만 시간 오버헤드가 매우 크다
    • associative register: 순차적인 탐색이 아닌 동시에 모든 엔트리 탐색

  • 예: 동일한 워드 프로그램 3개 실행 중일 때, 코드 부분은 동일할 것이므로 물리 메모리에 한번만 올려놓는다 (공유)
  • 공유 코드 내부에 logical address로 적힌 코드도 있으므로 각 프로세스의 주소공간에서 동일한 위치에 있어야 한다
    • 애초에 interactive한 것을 목적으로 읽고 쓰는 것도 가능하게 되어있는 shared memory 기법과 다르다

  • s < STLR: trap, d>limit: trap
  • 정상 작동하면 테이블에 s번째 -> 물리 메모리에 base + d 번째로 접근

 

출처: https://core.ewha.ac.kr/publicview/C0101020140502151452123728?vmode=f