CS [운영체제] - 가상메모리

링딩·2023년 3월 20일
0

Computer Science

목록 보기
9/49



🚦 가상 메모리 (Virtual Memory System)

  • 물리적 메모리 크기의 한계를 극복하기 위해 나온 기술이다. 프로세스를 실행할 때 실행에 필요한 일부만 메모리에 로드하고 나머지는 디스크에 두는 것이다.

결과적으로 메모리에 작은 양의 주소 공간만 있으면 충분히 프로세스를 수행할 수 있고,
그에 따라 더 많은 프로그램을 동시에 실행할 수 있게 된다.


(구성)

가상 메모리는 실제 메모리(RAM)와 보조 기억 장치의 Swap 영역으로 구성되며, OS는 메모리 관리자(MMU)를 통해 메모리 관리하며 프로세스는 사용하는 메모리가 실제 메모리인지 Swap의 영역인지는 알 수 없음.


자바에서는...

Swap 영역을 잡아주자! 😮

만약 Swap 영역을 잡아주지 않는다면 'OOM'이 발생할 수 있다.
-> Swap은 실제 메모리가 아니다. 이 때문에 지연시간이 발생하여 가급적이면 Swap 메모리를 쓰지 않는게 좋으며 쓰더라도 양이 증가한다면 '메모리 누수'를 의심해볼만 하다.




캐시는 무엇인가?

자주 사용하는 데이터나 값을 미리 복사해 놓는 임시 장소를 가리킨다. 캐시는 저장 공간이 작고 비용이 비싼 대신 빠른 성능을 제공

그러나...

원하는 데이터가 캐시에 존재하지 않을 경우 DBMS 또는 서버에 요청을 해야한다(Cache Miss).

  • 왜?
    캐시는 저장공간이 작기 때문에, 지속적으로 Cache Miss가 발생하는 데이터의 경우 캐시 전략에 따라서 저장중인 데이터를 변경해야 한다.



캐시가 왜 필요한가?

위의 표는 20%의 요구가 시스템의 리소스의 대부분을 사용한다는 법칙을 그래프로 나타낸 Long Tail 법칙 그래프이다.
그러므로 20% 기능에 Cache를 이용하여 리소스의 사용량은 줄이되, 성능을 향상시킬 수 있다.


캐시의 지역성

¹시간 지역성과 ²공간 지역성으로 나뉜다

  • 시간 지역성: 최근에 접근한 데이터에 다시 접근하는 경향
  • 공간 지역성: 최근 접근한 데이터의 주변 공간에 다시 접근하는 경향을 의미



프로세스 관련 용어들 💬

  • PCB: 프로세스 제어 블록, 프로세스에 대한 중요한 정보를 저장합니다.

  • PC: 프로그램 카운터, 프로세스 실행을 위한 다음 명령의 주소를 표시합니다.

  • 캐시메모리: 자주 사용되는 데이터가 저장되는 공간으로 CPU의 레지스터와 메모리 사이에서 병목 현상을 완화하는 장치

profile
초짜 백엔드 개린이

0개의 댓글