'주기억장치' 라고도 하며, 데이터(연산/명령/자료)를 기억하는 하드웨어 중 하나다. 크게 2가지 종류가 있다.
메모리의 역할은 중요하다.
특히 현대 컴퓨터는 대부분 폰노이만 구조를 따르는데, 폰노이만 구조의 이론은 "모든 프로그램은 메모리에 올라와햐 실행될 수 있다" 는 것.
p.s.
폰노이만은 최연소(25세)로 대학 교수시험에 통과했고, 그가 주장한 이론 중에 하나가 '큰 폭탄에 의한 피해는 지상에 떨어지기 전에 폭발할 때 극대화된다'는 것인데, 히로시마/나가사키 원자폭탄 던질 때 이 이론이 적극 활용되었다고 한다 (...)
전력이 끊기면 데이터가 사라진다는 특징이 있다.
휘발성 메모리는 다시 DRAM과 SRAM으로 나뉘는데, DRAM과 달리 SRAM은 전력이 공급되는 동안에는 데이터를 보관할 수 있다.
반면 DRAM은 일정 시간마다 데이터 재생이 필요하다.
이러한 특성 때문에, 메인 메모리는 휘발성 메모리를 사용한다.
얼핏 생각해보면 전력이 끊겨도 데이터가 남는 비휘발성 메모리가 더 좋아 보이지만, 그만큼 속도도 느리고 무거우며 가격도 비싼 단점이 있다.
따라서,
대표적으로 플래시 메모리, FRAM, PRAM이 있다.
전력이 없어도 데이터를 보관할 수 있다는 특징이 있으며, 이 중 플래시 메모리는 보통 USB, 디지털카메라, mp3 등의 저장장치로 사용된다.
특히 플래시 메모리는 많이 사용할 수록 기능이 떨어지기 때문에, USB 등을 사용할 때 주의해야 한다. (데이터가 날라갈 수도)
오늘날 컴퓨터는 시분할 기법을 사용하므로, 여러 프로그램이 동시에 운영된다. 각 작업이 서로의 영역을 침범하면 안되기에 메모리 보호를 위한 장치들이 존재한다.
CPU는, 메모리를 사용할 때 시작 주소를 경계 레지스터(bound register)에 저장한다. 그리고 마지막 주소까지의 gap을 계산해 한계 레지스터(limit register)에 저장한다.
polling(CPU가 직접 입출력장치에서 데이터를 갖고오거나 내보내는 것)의 비효율성을 해결하기 위해 등장한 방식
결국 입출력 관리자가 CPU에 보내는 완료 신호가 인터럽트다.
CPU는 인터럽트를 받으면 하던 일을 중단하고 인터럽트를 처리해야 한다.
인터럽트는 여러 번 발생할 수 있기에, interrupt vevtor를 사용한다
(여러 인터럽트를 배열화 한 것)
참고 자료
쉽게 배우는 운영체제, 조성호
https://namu.wiki/w/RAM#s-2.3
https://talkingaboutme.tistory.com/entry/Memory-Memory-Consideration-in-OS