가상메모리(Virtual Memory)와 Thrashing

Dev.Dana·2024년 10월 31일

Operating System

목록 보기
8/11
post-thumbnail

가상 메모리의 개념과 동작 원리

가상 메모리는 컴퓨터가 처리할 데이터와 프로그램 크기가 점점 커지면서 물리 메모리(RAM)의 용량 한계를 극복하기 위해 만들어졌다.

과거의 컴퓨터는 모든 프로그램들이 반드시 RAM에 완전히 올라가야만 실행할 수 있었다. 하지만 물리 메모리의 공간 부족으로 실행할 수 없는 프로그램들이 많아지면서 가상 메모리가 필요하게 되었다.

가상 메모리의 동작 방식

1. 페이징 (Paging)

  • 가상 메모리를 일정 크기의 페이지로 나누고, 이를 물리 메모리의 프레임에 적재한다.
  • 프로그램이 실행될 때 필요한 페이지만 메모리에 올리므로, 연속된 메모리 공간이 필요 없다.
  • 비유: 책장에서 필요한 페이지만 골라서 책장에 두고 읽는 느낌 !

2. 페이지 교체 (Page Swapping)

  • RAM이 가득 차면, 사용하지 않는 페이지를 하드디스크로 이동시키고 새로 필요한 페이지를 메모리에 적재한다.
  • 비유: 책장에 자리가 없을 때, 잠시 필요 없는 책을 옮겨두고 새 책을 올리는 것과 같다 !

TLB(Translation Lookaside Buffer)와 MMU(Memory Management Unit)

  • TLB: 페이지 테이블 접근을 가속화하기 위한 캐시 역할을 한다. 자주 참조하는 페이지 정보를 저장하여 CPU가 더 빠르게 주소를 변환할 수 있게 돕는다.
  • MMU: 가상 주소를 물리 주소로 변환하는 하드웨어 장치다. MMU는 주소 변환 작업을 자동으로 수행하여 CPU가 물리 메모리에 접근할 수 있도록 한다.

가상 메모리의 장점

  1. 메모리 확장 : 실제 RAM보다 큰 프로그램도 실행할 수 있다.
  2. 효율적 메모리 사용 : 필요한 데이터만 RAM으로 불러와 사용하므로 메모리를 효율적으로 사용한다.
  3. 프로세스 간 보호 : 각 프로그램이 독립적인 메모리 공간을 사용하여 다른 프로그램의 데이터에 접근하지 못한다.
  4. 멀티 프로세스 지원 : 여러 프로그램을 동시에 실행할 수 있어 컴퓨터 성능이 향상된다.

가상 메모리의 단점

  1. 속도 저하 : 필요한 데이터를 하드디스크에서 가져오는 과정이 느리다.
    • Thrashing : 메모리 부족으로 과도한 페이지 교체가 발생해 CPU가 실질적인 작업보다 데이터 교환에 많은 시간을 소비하게 된다.
  2. 오버헤드 증가 : 가상 주소를 실제 주소로 변환하는 데 시간이 걸리고, 성능 저하가 발생할 수 있다.

Thrashing이란?

Thrashing은 메모리 부족으로 인해 페이지 교체 작업이 과도하게 발생하면서 시스템 성능이 심각하게 저하되는 현상이다. CPU가 페이지 교체 작업에 대부분의 시간을 소비해 프로그램이 실질적인 작업을 수행하지 못하게 된다.

Thrashing의 발생 원인

  1. 멀티프로그래밍 : 동시에 실행되는 프로그램 수가 많아 RAM이 부족해지면 페이지 부재가 빈번해진다.
  2. 페이지 부재 : 필요한 페이지가 메모리에 없을 때 하드디스크에서 가져와야 하며, 이 과정이 빈번해질수록 성능 저하가 심각해진다.
  3. 메모리 크기의 한계 : RAM이 부족해 프로세스가 필요한 페이지를 충분히 보유하지 못할 때 Thrashing이 발생한다.

Thrashing의 영향

  • CPU 사용률 저하 : CPU가 페이지 교체 작업에 시간을 많이 소비해 프로그램 실행이 지연된다.
  • 응답 시간 증가 : 프로그램의 실행 속도가 느려지고, 시스템의 응답 속도가 저하된다.
  • 시스템 성능 저하 : 전체 시스템 성능이 감소해 사용자 경험과 애플리케이션 성능에 부정적인 영향을 미친다.
profile
어제의 나보단 나은 오늘의 내가 되기를

0개의 댓글