일반적으로 Memory = Main Memory = 주기억장치 = RAM
프로세스의 명령어와 데이터를 저장하는 부분으로, 프로그램이 실행되려면 반드시 메모리에 적재되어야 한다!
메모리는 크게 커널 영역과 유저 영역으로 나눠진다
유저영역은 다시 스택영역, 힙영역, 데이터영역, 코드영역으로 나뉘며, 유저영역을 제외한 영역을 커널영역이라고 한다
커널 영역에는 커널(kernel)이 위치하고 있으며, 커널은 운영체제의 핵심이라고 할 수 있다
즉, 커널은 하드웨어와 소프트웨어 간의 인터페이스를 제공하고 시스템 자원(메모리, 파일 시스템, 네트워크 등)을 관리한다
커널은 시스템의 모든 것을 완전히 통제하기 때문에 사용자가 직접 접근할 수 없으며, 접근 시 System Call을 통한 커널모드로의 전환이 필요하다
유저 영역은 일반적으로 사용자 프로세스(응용 프로그램)의 메모리 공간을 의미한다
코드 영역, 데이터 영역, 스택 영역, 힙 영역 4가지로 나눠진다
실행할 프로그램의 코드가 저장되는 영역
프로그램이 실행되는 동안 유지해야 할 데이터(전역변수, 정적변수 등)가 저장되는 공간
함수 내에서 지역변수와 매개변수가 저장되는 영역
동적 할당을 위한 메모리 공간을 제공함
https://velog.io/@seungho1216/CS-메모리-구조
https://dev-leeyang.tistory.com/23
https://jinshine.github.io/2018/05/17/컴퓨터 기초/메모리구조/
https://hdacker.tistory.com/6