휘발성 민무의 USB
close
프로필 사진

휘발성 민무의 USB

github: @minmooo-ya

  • 분류 전체보기 (134)
    • 자료구조 (5)
    • 크래프톤정글 (127)
      • TIL (29)
      • 키워드 (25)
      • 컴퓨터 시스템(CS:APP) (54)
      • 네트워크 (0)
      • Pintos (18)
      • 나만무 (0)
  • 홈
  • 태그
  • 방명록

day..?, 나만무 시작 전 프레임워크 익히기(게시판 만들기)

오랜만에 TIL이네요 C언어 들어선 이후로는 TIL말고 CSAPP에 정리하거나 pintos에 포스팅을 했으니 참고 해주시길 Plzhttps://minhyay.tistory.com/category/%ED%81%AC%EB%9E%98%ED%94%84%ED%86%A4%EC%A0%95%EA%B8%80/%EC%BB%B4%ED%93%A8%ED%84%B0%20%EC%8B%9C%EC%8A%A4%ED%85%9C%28CS%3AAPP%29 '크래프톤정글/컴퓨터 시스템(CS:APP)' 카테고리의 글 목록 minhyay.tistory.com https://minhyay.tistory.com/category/%ED%81%AC%EB%9E%98%ED%94%84%ED%86%A4%EC%A0%95%EA%B8%80/%ED%82%A4%EC%9..

  • format_list_bulleted 크래프톤정글/TIL
  • · 2025. 6. 16.
PintOS Project 3 _ Virtual Memory: Swap In/Out구현

PintOS Project 3 _ Virtual Memory: Swap In/Out구현

이제 VM 프로젝트의 마지막 swap in/out입니다그래서 스왑이 무엇이냐!Swap?운영체제에서 스왑(Swap)이란, 물리 메모리가 부족할 때 일부 페이지를 디스크로 내보내고다시 필요할 때 다시 불러오는 메커니즘을 말합니다 왜 쓰는가?사용 가능한 물리 메모리(프레임 수)는 제한됨모든 페이지를 메모리에 유지하는 건 불가능그래서 안 쓰이는 페이지는 디스크로 이동 → 메모리에서 제거이후 다시 접근되면 디스크에서 메모리로 복원기본 동작 흐름메모리가 가득 찬 상태에서 새로운 페이지 필요운영체제는 기존 페이지 중 하나를 골라 스왑 아웃디스크(스왑 영역)에 백업 → 메모리 해제나중에 해당 페이지 접근 시 → 스왑 인 발생디스크에서 다시 읽어와 메모리에 적재pintos에서의 swap? PintOS에서는 페이지 타입에..

  • format_list_bulleted 크래프톤정글/Pintos
  • · 2025. 6. 11.
PintOS Project 3 _ Virtual Memory: Memory Mapped Files구현

PintOS Project 3 _ Virtual Memory: Memory Mapped Files구현

스택확장까지 했다면 다음 단계인 mmap&munmap을 구현해보도록 합시다개인적으로 처음 본 순간부터 어려웠습니다 저에겐............그래서 mmap이 무엇이더냐!mmap?Memory Mapping(메모리 매핑)의 개념mmap()은 시스템 콜 중 하나로, 파일의 내용을 메모리에 직접 매핑하여 접근할 수 있도록 해주는 기능보통 파일을 읽거나 쓸 땐 read(), write() 같은 시스템 콜을 사용하지만, mmap()을 이용하면:해당 파일을 가상 메모리에 매핑시켜 마치 배열처럼 접근할 수 있다사용자는 파일 내용을 직접 메모리처럼 읽고 쓸 수 있다mmap의 장점① 성능 향상 : read() → 버퍼에 복사 → memcpy 등 과정을 생략하고, 페이지 폴트가 나면 자동으로 커널이 파일에서 메모리로 바로..

  • format_list_bulleted 크래프톤정글/Pintos
  • · 2025. 6. 11.
PintOS Project 3 _ Virtual Memory: Stack Growth 구현

PintOS Project 3 _ Virtual Memory: Stack Growth 구현

Stack Growth자 이제 유저프로그램이 다 통과가 되었다면, 이제 스택 확장 폴트를 할 차례입니다!Stack growth가 무엇이더냐https://minhyay.tistory.com/160 누나랑 페이지폴트 흐름 따라갈래?이제 코치님께서도 페이지폴트나는 플로우를 따라가보라 하셨으니 함 가보입시더 " 누나랑 페이지폴트 흐름 잡으러 갈래? " 아직 개념을 잘 모르겠다 하시면 전 글을 참고하십쇼https://minhyay.tistominhyay.tistory.com여기에 살짝쿵야 언급이 되어있습니다만좀 더 설명하자면"스택 접근처럼 보이는 경우에" 추가 페이지를 할당한다입니다 이를 위해선 스택 접근인지 아닌지를 구별할 수 있는 휴리스틱이 필요한데요구현 내용을 설명하기 전에 그 휴리스틱을 먼저 설명하자면 판..

  • format_list_bulleted 크래프톤정글/Pintos
  • · 2025. 6. 7.
PintOS Project 3 _ Virtual Memory: Lazy Loading + Anonymous Page + Supplemental Page Table 구현(유저프로그램 통과 ver.)

PintOS Project 3 _ Virtual Memory: Lazy Loading + Anonymous Page + Supplemental Page Table 구현(유저프로그램 통과 ver.)

spt해시 테이블을 이용해서 구현struct supplemental_page_table{ struct hash spt_hash;};struct page{ ... //spt용 hash_elem struct hash_elem hash_elem;page 객체가 hash_insert()나 hash_find() 등을 통해 테이블에 삽입될 수 있도록, struct hash_elem을 멤버로 포함함.이 구조 덕분에 hash_entry() 매크로로 struct page *를 쉽게 복구할 수 있음struct hash{ size_t elem_cnt; /* 테이블에 있는 요소의 개수. */ size_t bucket_cnt; /* 버킷의 개수, 2의 거듭제곱. */ struct list *buckets; /* ..

  • format_list_bulleted 크래프톤정글/Pintos
  • · 2025. 6. 3.
lazy_load_segment? uninit_initialize?

lazy_load_segment? uninit_initialize?

spt관련 함수들을 구현 후 anon관련 함수들 등 유저프로그램 테스트 통과를 위해 남은 함수들을 보던와중.......lazy_load_segment?......uninit_initalize?나만 헷갈려?그래서 써보는 흐름글lazy_load_segment 흐름lazy_load_segment의 호출 시점 :페이지 폴트 발생 후, 해당 va의 페이지가 UNINIT 타입일 때 → uninit_initialize() 내부에서 호출하는 역할:해당 페이지를 디스크에서 읽어 메모리에 적재하는 함수 1. aux로 전달된 정보 기반으로어떤 파일에서 (file)어느 오프셋부터 (offset)몇 바이트를 읽고 (read_bytes)나머지를 0으로 패딩할지 (zero_bytes)를 파악함 2. page->frame->kva주..

  • format_list_bulleted 크래프톤정글/Pintos
  • · 2025. 5. 31.
  • navigate_before
  • 1
  • 2
  • 3
  • 4
  • ···
  • 23
  • navigate_next
공지사항
전체 카테고리
  • 분류 전체보기 (134)
    • 자료구조 (5)
    • 크래프톤정글 (127)
      • TIL (29)
      • 키워드 (25)
      • 컴퓨터 시스템(CS:APP) (54)
      • 네트워크 (0)
      • Pintos (18)
      • 나만무 (0)
인기 글
전체 방문자
오늘
어제
Copyright © 이민하입니다 모든 권리 보유.
SKIN: Copyright © 쭈미로운 생활 All rights reserved. Designed by JJuum.
and Current skin "dev-roo" is modified by Jin.

티스토리툴바