ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [WEEK12]WIL
    SW정글 2022. 1. 25. 10:45

    project3을 진행하면서 메모리를 추상화하는 가상 메모리에 대해 알아보고, 메모리를 관리하는 기법인 MMU, 페이징과 TLB 등을 이해해보았다.

    이번 프로젝트에서는, lazy load를 통해 요청되는 페이지에 대해서만 물리메모리에 올려 멀티프로그래밍 시 메모리를 효율적으로 관리하는 방법에 대해 학습하였다.

     

    이번 프로젝트에서는 전체적인 흐름을 이해하려고 최대한 노력했다.

    프로젝트 3 Introduction! 

     

    Project3 Introduction

    the number and size of programs that can run is limited by the machine's main memory size. In this assignment, you will remove that limitation by building an illusion of infinite memory. 실행할 수..

    seulgicoding.tistory.com

    3-1 Memory Management

    page는 VM_UNINIT, VM_ANON, VM_FILE 3개 중 하나의 속성을 갖는다.

    page 가상 메모리 주소에 접근 시 해당 주소가 page table에 mapping되어 있지 않다면(matching된 kva가 없다면), page fault가 발생하게 되고, page fault handler는 미리 해당 주소에 대한 정보가 담긴 supplemental page table(spt)에 해당 주소에 대한 정보를 찾아 page table에 mapping 시켜준다.

    va(page)는 kva(frame)과 matching되어 있고, kva는 실제 물리 메모리와 matching되어 있다. => 실제 물리 메모리를 pintos가 건들지 못하게 하기 위함.

     

    3-2 Anonymous Page

    단어 그대로 익명, 이름이 없는 page다. disk의 file을 실행시키면서 만들어 진 게 아니라서(특정 file과 matching 안되서) 이름이 없다.

    Anonymous Page는 private 또는 shared로 할당받을 수 있다.

    프로세스의 힙과 스택이 private로 할당된 anonymous page이다. shared는 프로세스간 통신을 위해 사용되는 anonymous page이다.

     

    3-3 Stack Growth

    page fault 후 page 공간만큼 stack 영역이 늘어나야 한다. 메모리 할당 후 stack_bottom을 더 늘려줘야 한다. Test Case 중 여러 개의 page를 늘리는 경우는 없다.

     

    3-4 Memory Mapped Files

    file backed mapping 부분, mmap을 호출하면 syscall이 발생하고 예외처리 체크 후 do_mmap 호출하게 되고 disk에 있는 file을 메모리 mapping을 하게 된다. munmap은 반대로 메모리 mapping을 해제함.

     

    3-5 Swap In/Out

    Swap In / Out 은 물리 메모리에 page를 올렸다(Swap In), 뺐다(Swap Out)라고 생각하면 된다.
    Swap In은 Load를 위해 당연히 진행해야 되고 실제 page 속성은 Swap In 과정에서 정해진다.
    Swap Out은 메모리 공간이 부족해졌을 때 판단하에 가장 빠져도 되는 page를 Swap Out(swap area로 방출)하게 된다.

     

     

    벌써 정글에 들어온지 3개월이 넘어 이제 최종 프로젝트인 나만의 무기 프로젝트만이 남아있는데.. 

    팀빌딩과정에서 많은 일들이있었다. 그래서인지 몸도 마음도 지친 시기가 된것같다..! refresh가 필요한 시점인것같다

     

    이번 프로젝트 기간엔 '몰입'을 하지 못한것같다. 마음을 다잡았으니 다시 몰입을 해야겠다.!

     

    'SW정글' 카테고리의 다른 글

    [WEEK10]WIL  (0) 2022.01.11
    [WEEK09]WIL  (0) 2021.12.31
    [WEEK08]OS시작 마음가짐  (2) 2021.12.23
    [WEEK01] 특별한 과제  (0) 2021.11.19

    댓글

Designed by Tistory.