안녕하세요 여러분
오늘은 메모리와 가상 메모리에 대해 설명해드리려고 합니다.
가상 메모리를 설명드리기 전에
메모리가 무엇인지를 먼저 설명드려야 할 것 같습니다.
메모리(Memory)란 영 단어로 기억, 기록을 나타내는 단어입니다.
따라서 이는 컴퓨터에서 기억하는 장치를 나타냅니다.
CD-ROM, RAM 16GB 이런 단어들을 들어보셨다면
여러분은 이미 컴퓨터에서 사용하는 메모리라는 단어를 사용하고 계신 거라고 볼 수 있습니다.
메모리는 크게 내부 기억장치인 주기억장치와 외부 기억장치인 보조기억장치로 나뉩니다.
RAM, ROM 등은 주 기억장치입니다.
SSD, HDD 같은 디스크는 보조 기억장치이고
상대적으로 보조 기억장치는 가격이 저렴합니다.
왜냐하면 느리기 때문입니다.
주 기억장치는 가격이 비쌉니다.
왜냐하면 빠르기 때문입니다.
참 쉽죠?
(물론 세월이 흐르며 세상은 변해가기는 했지만, 기억장치에 대한 개념은 대체로 유지되고 있습니다.)
Random Access Memory를 줄인 것이 RAM(램)이고
Read Only Memory를 줄인 것이 ROM(롬)입니다.
용어를 문자 그대로 해석한다면
읽는 것만 가능한 메모리가 ROM이고
무작위로 접근하는 메모리를 RAM이라고 보면 될 것 같습니다.
보다 쉽게 생각해볼까요
옛날 엣적에는 CD-ROM에는 데이터를 별도로 저장할 수 없이
음악이나 게임 CD를 사면 그 용도로만 사용을 하셨던걸 기억하실 거예요
가수의 음반(CD)을 사면 그 가수의 노래만 재생이 되고
게임 CD를 사면 그 게임만 플레이 가능하셨던 것 기억하시나요?
바로 ROM은 Read만 가능한 메모리이기 때문입니다.
RAM은 앞선 설명보다는 조금은 어렵게 설명드려야 할 것 같습니다.
일반적으로 RAM은 시스템의 단기 데이터 스토리지입니다.
정보에는 빠르게 접근은 가능하지만
보통 휘발성 데이터를 지니고 있어서
컴퓨터가 실시간으로 사용하는 정보를 잠시 담아두는 녀석이라고 할 수 있습니다.
컴퓨터에 게임을 설치하면
그 게임을 매번 설치하지 않아도 되는 것은
영구적으로 기록되는 디스크(HDD, SDD 등)에 기록을 했기 때문입니다.
디스크의 장점은 오래 보관이 가능하다는 점인데, 대신 읽어오는 속도가 느립니다.
(물론 세월이 흐르며 기술이 발전하면서 디스크를 읽는 속도도 점차 빨라졌기는 합니다.)
여러분이 아주 간단한 작업을 한다고 가정해봅시다.
1주일간 제주도 여행을 가기 위해 여행 짐을 꾸리는데
여행 가는 기간의 제주의 날씨가 궁금해졌습니다.
인터넷에서 날씨를 찾아본 뒤, 비가 올 것이라는 것을 알고 우산을 챙기고 난 후에는
제주의 날씨가 더는 궁금해지지 않습니다.
이런 정보를 평생 기록하기에는 디스크의 용량은 제한적이므로 적합하지 않습니다.
따라서 이렇게 잠시만 보고자 하는 정보들은 휘발성 데이터라고 보고 컴퓨터에 굳이 저장하지 않습니다.
이런 데이터들은 RAM에 저장하여 잠시만 보관하게 되는 것입니다.
RAM은 컴퓨터가 실행하는 프로그램들을 수행하는데 필요합니다.
노래를 들으며 블로그를 읽고, 동시에 메신저를 주고받을 수 있는 것도(멀티태스킹 작업을 할 수 있는 것도) RAM의 역할이 매우 큽니다.
왜냐하면 내가 마지막으로 하던 작업이 어디였는지(블로그의 스크롤이 어디까지였는지, 메신저에서 작성 중이던 메시지가 어디까지인지 등)를 기억하고 있어야 하니까요
따라서 메모리의 용량은 크면 클수록 좋습니다.
자 그러면 메모리의 용량을 크게 하려면 어떻게 해야 할까요?
돈이 있으면 됩니다.
많은 돈은 많은 문제를 해결해줍니다.
용량이 큰 메모리를 사면 됩니다.
참 쉽죠?
하지만 우리는 재정적인 한계가 있고
더 효율적인 방법을 찾아 나섭니다.
그것이 바로 보다 느리지만 용량이 크고, 느리기 때문에 보다 저렴한 디스크를 이용하게 됩니다.
그게 가상 메모리의 원리입니다.
초창기 컴퓨터에서는 사용 가능한 RAM의 양이 한정적이었습니다.
(RAM은 비싸니까요)
그러다 보니 컴퓨터가 동시에 실행 가능한 프로그램이 제한적이었습니다.
한 번에 많은 생각을 하면 뇌에 과부하가 오는 것처럼 컴퓨터에게도 큰 부하가 되는 일이었으니까요
그러다 보면 메모리 부족 오류가 나오면서 컴퓨터가 "나 일 안 해!" 하고 파업을 해버리게 됩니다.
이를 해결하기 위해 컴퓨터는 실행 중인 프로그램(어플리케이션)의 일부만 메모리(주 기억장치)에서 실행시키고
나머지는 디스크(보조 기억장치)에서 실행을 하자고 생각을 한 거죠
그러면 실제 주 기억장치에서 실행 중인 것보다 더 많은 것을 실행 중인 것처럼 보이게끔 할 수 있게 된 것입니다.
그러다 보니 결국 주 기억장치와 보조 기억장치를 하나로 병합하여
하나의 크고 빠른 가상의 기억장치, 즉 가상 메모리를 만들게 되는 것입니다.
(물론 가상 메모리를 구현하기 위해서는 컴퓨터가 MMU라는 특수한 하드웨어를 갖추고 있어야 합니다. MMU : Memory Management Unit)
그러면 이제 본인의 PC에 혹은 서버에 가상 메모리를 설정하고 종료하는 방법을 알아볼까요??
가상 메모리를 설정하는 방법은 매우 쉽습니다.
1. 내 컴퓨터의 속성에 들어갑니다.
2. 고급 시스템 설정에 들어갑니다.
3.고급탭의 설정을 들어갑니다.
4. 가상메모리 > 변경에 들어갑니다.
5. 가상메모리에 대한 설정을 켜고 끕니다.
*가상 메모리를 사용하지 않으려는 경우에는 아래 옵션(페이징 파일 없음)을 선택하면 됩니다.
여기까지 메모리/가상 메모리에 대해 알아보았습니다.
'IT > 개발자 다이어리' 카테고리의 다른 글
Hyper-V 서버에 연결하는 동안 오류가 발생했습니다. 오류 해결방법 (2) | 2022.12.14 |
---|---|
Windows Server ping이 안 될때 - ICMP 허용 설정하기 (0) | 2022.12.13 |
레지스트리(Registry)의 기본 (6) | 2022.09.02 |
코드펜(codepen) 사용 방법 - 회원가입 및 튜토리얼 (0) | 2022.07.07 |
[AOS][IOS] Firebase Dynamic Link로 사용자 유입시키기 (0) | 2021.09.09 |