Jerry의 컴퓨터 일기

  • 홈
  • 태그
  • 방명록

2024/12/05 2

Pintos Project3 - VM 시스템 초기화

✨가상 메모리 시스템 초기화 paging_init() 함수는 PintOS의 커널 페이징 시스템을 초기화 하는 역할을 한다. 간단하게 paging_init() 함수에 대해서 알아보자.  paging_init() 물리 메모리 영역 전체 (0 ~ mem_end)를 커널의 가상 메모리 주소 공간(KERN_BASE ~KERN_BASE + mem_end)에 1대1 매핑커널 텍스트 영역 (start ~ _end_kernel_text) 까지를 읽기 전용으로 설정하여 보호static void paging_init(uint64_t mem_end) { uint64_t *pml4, *pte; int perm; pml4 = base_pml4 = palloc_get_page(PAL_ASSERT | PAL_ZERO..

🖥️ 컴퓨터 기초/PintOS 2024.12.05

Pintos Project3 - Virture Memory Test case 트러블 슈팅 (read-boundary)

Anonymous Page까지 구현을 하고,make check를 돌려보았지만, read-boundary의 테스트 케이스가 통과하지를 못했다. 디버깅을 돌려보니 check_address 함수 내에 pml4_get_page 부분이 자꾸 터지는 것을 보았다. 이 부분에 대해 나와 비슷한 문제를 겪는 사람들이 있어서 이 부분에 대해서 포스팅을 해본다 ! 먼저 테스트 파일들을 확인해보자. Test Case : read-boundary.c 파일buffer = get_boundary_area () - sizeof sample / 2;byte_cnt = read (handle, buffer, sizeof sample - 1);get_boundary_area 함수는 페이지의 경계 값을 가져옴sample.txt 파일 전체..

🖥️ 컴퓨터 기초/PintOS 2024.12.05
이전
1
다음
더보기
프로필사진

Jerry의 컴퓨터 일기

기억보다는, 기록을 남깁니다.

  • 분류 전체보기 (288)
    • 🖥️ 컴퓨터 기초 (20)
      • PintOS (15)
      • CS (5)
    • ♟️ 알고리즘 (146)
      • swea (41)
      • 알고리즘_프로그래머스 (12)
      • 알고리즘_백준 (75)
      • Leetcode (17)
      • 기본 개념 (1)
    • ⚙️ Backend (22)
      • Network (10)
      • API (4)
      • DB (6)
      • Docker (0)
    • 🏠 Frontend (3)
    • 📚 Git (8)
    • 🤖 Chat GPT (2)
    • ℹ️ 데이터 (11)
      • 데이터 분석 (6)
      • 크롤링 (5)
    • 🔖Java (5)
      • 프로젝트 (0)
    • 🔖Python (5)
      • Folium (1)
      • Opencv (1)
      • 기타 (2)
    • 🔖JS (4)
    • 🔖 C언어 (1)
    • 🔧 컴퓨터 에러 (5)
    • 😀 Jerry (56)
      • 채용설명회 (3)
      • 마인드셋 (0)
      • 일상 (13)
      • 면접 질문 (40)

Calendar

«   2024/12   »
일 월 화 수 목 금 토
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31

방문자수Total

  • Today :
  • Yesterday :

Copyright © Kakao Corp. All rights reserved.

  • 깃허브

티스토리툴바