tgool
Tgool
tgool
전체 방문자
오늘
어제
  • 분류 전체보기
    • Data Science
      • AI
      • Data Mining
      • ML(Machine Learning)
    • Computer Science
      • 자료구조
      • 알고리즘
      • 시스템 프로그래밍
      • 운영체제
      • 컴퓨터 구조
      • 컴퓨터 네트워크
      • 데이터 베이스
      • 파이썬
      • 자바
      • 아두이노
    • Math
      • 통계학
      • 확률론
      • 선형대수학
      • 수리통계학
      • 회귀분석
    • TOFEL
    • Git
    • Plan
    • Book
    • Working out
      • 영양과 생활
      • 운동 정보
      • 운동 기록

인기 글

최근 글

최근 댓글

hELLO · Designed By 정상우.
tgool

Tgool

[CSAPP] 9.5 VM as a Tool for Memory Protection(메모리 보호 툴로서의 VM)
Computer Science/컴퓨터 구조

[CSAPP] 9.5 VM as a Tool for Memory Protection(메모리 보호 툴로서의 VM)

2023. 3. 1. 12:02

9.5 VM as a Tool for Memory Protection(메모리 보호 툴로서의 VM)

  • 현대의 모든 컴퓨터 시스템은 운영 체제가 메모리 시스템에 대한 접근을 제어할 수 있는 수단을 제공해야 한다.
  • 유저 프로세스는 읽기 전용 코드 섹션을 수정할 수 없다.
  • 또한 커널의 코드 및 데이터 구조를 읽거나 수정하는 것이 허용되어서는 안 된다.
  • 다른 프로세스의 개인 메모리를 읽거나 쓰는 것이 허용되어서는 안 되며, 모든 당사자가 명시적으로 허용하지 않는 한 다른 프로세스와 공유하는 가상 페이지를 수정하는 것이 허용되어서는 안된다.(내부의 프로세스에서 명시적으로 통신 시스템 콜 호출을 통해)
  • 앞서 살펴본 바와 같이 별도의 가상 주소 공간을 제공하면 서로 다른 프로세스의 개인 메모리를 쉽게 격리할 수 있다.
  • 그러나 주소 변환 메커니즘은 훨씬 더 미세한 액세스 제어를 제공하기 위해 자연스러운 방식으로 확장될 수 있다.
  • 가상 메모리 시스템에서는 CPU가 특정 가상 주소를 발생시킬 때마다 그것에 해당하는 PTE를 반드시 읽을 수밖에 없다
  • 주소 변환 하드웨어는 CPU가 주소를 생성할 때마다 PTE를 읽기 때문에, PTE에 일부 추가 권한 비트를 추가하여 가상 페이지의 내용에 대한 액세스를 제어하는 것이 간단하다.
  • 이 예에서는 각 PTE에 3개의 권한 비트를 추가했다.
    • SUP 비트는 페이지에 액세스하기 위해 프로세스가 커널(관리자) 모드에서 실행되어야 하는지 여부를 나타낸다.
    • 커널 모드에서 실행되는 프로세스는 모든 페이지에 액세스할 수 있지만 유저 모드에서 실행되는 프로세스는 SUP가 0인 페이지에만 액세스할 수 있다.
    • 읽기 및 쓰기 비트는 페이지에 대한 읽기 및 쓰기 액세스를 제어한다.
    • 예를 들어 프로세스 i가 유저 모드에서 실행 중인 경우 VP 0을 읽고 VP 1을 읽거나 쓸 수 있는 권한이 있다. 그러나 VP 2에 액세스할 수 없다.(SUP이 1이기 때문에)
  • 명령어가 이러한 권한을 위반하면 CPU는 커널의 예외 핸들러로 제어를 전송하는 일반적인  protection fault를 trigger하며, 이는 SIGSEGV 시그널을 권한을 위반한 프로세스로 전송한다.
  • 리눅스 셸은 일반적으로 이 Exception을 "segmentation fault(분할 오류)"로 보고한다

'Computer Science > 컴퓨터 구조' 카테고리의 다른 글

[CSAPP] 9.1 Physical and Virtual Addressing(물리 및 가상주소 방식)  (0) 2023.03.01
[CSAPP] 9.6 Address Translation(주소 변환)  (0) 2023.03.01
[CSAPP] 9.4 VM as a Tool for Memory Management(메모리 관리 툴로서의 VM)  (0) 2023.02.28
[CSAPP] 8.7 Tools for Manipulating Process  (0) 2023.02.28
[CSAPP] 8.6 Nonlocal Jumps(논로컬 점프)  (0) 2023.02.28
    'Computer Science/컴퓨터 구조' 카테고리의 다른 글
    • [CSAPP] 9.1 Physical and Virtual Addressing(물리 및 가상주소 방식)
    • [CSAPP] 9.6 Address Translation(주소 변환)
    • [CSAPP] 9.4 VM as a Tool for Memory Management(메모리 관리 툴로서의 VM)
    • [CSAPP] 8.7 Tools for Manipulating Process
    tgool
    tgool

    티스토리툴바