Virtual Memory
-
Virtual Memory란?CS/면접준비 2022. 7. 18. 17:15
Virtual Memory란? OS에서 한정된 Memory(physical Memory)를 가상화시켜 더 효율적으로 사용하기 위해 나온 개념. 어떻게 가상화 시킨다는 것이 효율적일까? Program이 실행될 때에는 전체가 Memory에 있을 필요가 없고, 실행되는 부분만 Memory에 존재하면 된다. 이를 사용하여 Physical Memory에 더욱 더 많은 Program을 올릴 수 있는 것이다. 그렇다면 어떻게 실행될 위치를 아는 것일까? MMU(Memory Management Unit) 은 하드웨어 실제 Program별 Logical Memory를 통해 Phyiscal Memory를 변환하여 준다. 가상 메모리는 어떻게 관리되는가? Paging / Segmentation / Paging+segment..
-
9. Virtual Memory advantages and paging algorithmCS/OS 2022. 6. 23. 17:12
Virtual Memory Advantage 1. Shared Memory ( window dll , linux so .. ) Multiple Process 간의 communication의 방법으로 공유 메모리를 사용할 수 있는데, demand-paging 기법을 사용할 경우 다른 프로세스의 각각의 페이지가 같은 프레임을 가리키도록 하면 공유 메모리를 사용할 수 있다. 아래 그림을 보면 Process A의 Page1과 Process B의 Page7은 서로 같은 Memory를 가르키고 있어 공유가 가능하다. dll in window 혹은 so in linux 이 방식으로 Physical Memory Frame을 같이 가리켜, Memory save 2. COW(Copy on Write) Fork System..
-
8. Vitrual MemoryCS/OS 2022. 6. 23. 01:42
Virtual Memory 가상 메모리는 프로세스의 virtual memory(logical memory)와 physical memory를 분리하기 위해 생겨난 것 모든 프로세스는 자신만의 가상 주소 공간을 가지고 있다. 32비트/64비트 프로세스는 각 비트수에 맞게 최대 4GB/16EB의 주소 공간을 가진다. 모든 프로세스들은 자신만의 주소 공간을 가지기 때문에, 특정 프로세스 내에서 쓰레드가 수행될 때 해당 쓰레드는 프로세스가 소유하고 있는 메모리에 대해서만 접근이 가능하다. OS Memory는 숨겨져 있다. 쓰레드가 OS의 Data에 Access하는 것이 불가능하다. 따라서, A 프로세스가 0x12345678 주소에 무엇인가를 저장하였지만, B 프로세스 역시 0x12345678 주소에 무엇인가를 저..
-
XV6 - 이론 정리_1CS/OS 2022. 5. 13. 18:03
앞서 배운 OS 내용을 바탕으로 실제 MIT 교육용 코드에서 어떻게 동작하는지 알아보겠습니다. XV6 라는 OS를 가져와서 사용하였습니다. OS 중요 요소는 Time-sharing / Isolation / Interaction으로 나눌 수 있는데, Time-sharing은 하나의 Program이 독점하는 것을 막기 위해, Isolation은 사용자에게 모든 권한을 주지 않으며, Kernel 영역에서만 Resource를 접근하기 위함이라고 설명하였다. 그렇다면, Interaction은 어떻게 이루어질까? Unix System에서는 Process간에 file descriptor를 통하여 Interaction이 발생한다. File Descriptor가 존재함으로써, Kernel이 예외 사항을 처리 할 수 있다..