운영 체제(OS)에서의 가상 메모리(Virtual Memory)는 시스템 메모리 관리를 위한 핵심적인 개념입니다. 가상 메모리는 물리적 메모리(주로 RAM)의 용량을 초과하는 프로그램을 실행할 수 있게 해주는 기술로, 물리적 메모리와 보조 저장 장치(예: 하드 드라이브, SSD)를 함께 사용하여, 프로그램에 더 큰 메모리 공간처럼 보이게 합니다.
정의: 가상 메모리는 물리적 메모리의 한계를 초과하는 메모리 요구를 처리하기 위해 운영 체제가 사용하는 기술입니다. 이는 프로그램에게 더 큰 메모리 공간을 제공하는 것처럼 보이게 하며, 실제로는 물리적 메모리와 디스크 기반의 스왑 공간을 조합해 사용합니다.
목적: 가상 메모리는 메모리 관리의 유연성을 제공하고, 프로그램이 물리적 메모리보다 더 많은 메모리를 사용할 수 있도록 합니다. 이는 메모리의 효율적 사용과 프로그램 간 격리, 메모리 보호 등을 가능하게 합니다.
페이징과 세그먼테이션: 가상 메모리는 주로 페이징(paging) 또는 세그먼테이션(segmentation) 기법을 사용합니다. 이는 가상 주소 공간을 물리적 메모리의 페이지나 세그먼트로 매핑하는 과정입니다.
주소 변환: 프로그램은 가상 주소를 사용합니다. CPU는 가상 주소를 물리적 주소로 변환하는데, 이 때 페이지 테이블이나 세그먼트 테이블이 사용됩니다.
스와핑: 필요에 따라, 물리적 메모리에 없는 페이지(또는 세그먼트)는 디스크의 스왑 공간에서 로드됩니다. 이 과정에서 페이지 폴트가 발생하고, 운영 체제는 해당 페이지를 메모리로 가져옵니다.
장점:
단점: