Skipalong's tistory
240307 TIL - 가상메모리 본문
오늘은 가상메모리에 대해 정리해보았다.
가상메모리란?
- 컴퓨터가 실제로 이용 가능한 메모리 자원을 추상화하여 실제보다 큰 메모리로 보이게 만드는 것
- 메모리 관리 기법의 하나
- 가상주소는 메모리 관리장치(MMU)에 이해 실제 주소로 변환
- 가상 메모리는 가상 주소와 실제 주소가 매핑되어있음
- 프로세스의 주소 정보가 들어있는 ‘페이지 테이블’로 관리됨
- 페이지 테이블
- 이때 속도 향상을 위해 TLB를 사용
- TLB
- 메모리와 CPU사이에 있는 주소 변환을 위한 캐시
- 페이지 테이블에 있는 리스트를 보관
- CPU가 페이지 테이블까지 가지 않도록 해 속도를 향상시킬 수 있는 캐시 계층
스와핑
- 가상 메모리에는 존재하지만 실제 메모리인 RAM에는 현재 없는 데이터나 코드에 접근할 경우 페이지 폴트 발생
- 페이지 폴트(page fault)
- 페이지 폴트란 프로세스의 주소 공간에는 존재하지만 지금 이 컴퓨터의 RAM에는 없는 데이터에 접근했을 경우 발생하는 현상
- 페이지 폴트를 스와핑으로 처리하는 과정
- 어떤 명령어가 유효한 가상 주소에 접근했으나 해당 페이지가 없다면 트랩이 발생, 운영체제에 알림
- 운영체제는 실제 디스크로부터 사용하지 않는 프레임을 찾음
- 해당 프레임을 실제 메모리에 가져와서 페이지 교체 알고리즘을 기반으로 특정 페이지와 교체 (스와핑)
- 페이지 테이블을 갱신시킨 후 해당 명령어를 다시 시작
- 페이지 폴트가 발생하면 메모리에서 당장 사용하지 않는 영역을 하드디스크로 옮기고 하드디스크의 일부분을 마치 메모리처럼 불러와 쓰는 것을 스와핑이라고 함
이렇게 가상메모리가 어떻게 작동하는지, 페이지 폴트가 발생시 스와핑으로 해결하는 방법 등을 알아보았는데 가상메모리에 대해서는 예전부터 들어보았지만 어떤식으로 작동하는지, 어떻게 가능한건지 잘 몰랐는데 아직 구체적으로 알아 본 것은 아니지만 대략적으로 알게 되어서 좋았고 대체적으로 추상적인 개념이지만 익숙한 개념이 나올때마다 조금은 반갑고 좀 더 관심이 가는 것 같다.
'TIL' 카테고리의 다른 글
240311 TIL - 공유자원과 임계영역 (0) | 2024.03.12 |
---|---|
240308 TIL - 프로세스의 상태 (0) | 2024.03.09 |
240306 TIL - SEO와 Https (0) | 2024.03.07 |
240305 TIL - ARP/RARP, 홉바이홉 통신 (0) | 2024.03.06 |
240304 TIL - TCP/IP 전송계층 (0) | 2024.03.05 |