컴퓨터를 구성하는 중요한 요소 3가지
컴퓨터에서 사용자가 문서 파일을 열면
하드디스크에 저장된 파일을 CPU가 선택하고 가져와서 파일의 데이터를 메모리 상에 올려둔다
그리고 사용자가 수정하는 내용들을 메모리상에 주기적으로 업데이트하면서 여러 가지 작업을 처리한다,
작업한 내용을 저장하고 앱을 종료하면 메모리상에 있는 데이터를 다시 하드디스크에 저장한다.
메모리는 메모리셀이라고 불리는 각각의 저장 장치들에 연속으로 이루어져 있다
각각의 메모리셀은 1byte size로 만들어져있으며
1byte는 = 8bit이다 (1bit는 0 또는 1을 담을 수 있는 사이즈이다.)
우리가 컴퓨터에서 여러 가지 앱을 열게 되면 각각의 앱마다 필요한 양의 메모리가 할당된다.
한 가지 앱에서 여러 가지 문서를 열게 되면 컴퓨터는 사용하지 않는 앱을 잠시 하드디스크로 옮겨서 저장해두고 사용 중인 앱의 메모리를 필요한 만큼 늘렸다 줄였다 조절한다
하지만 앱이 컴퓨터가 가진 메모리 사이즈 이상으로 더 많은 메모리를 요구하면 에러가 발생하고
앱이 정상적으로 작동하지 않는다
애플리케이션이 메모리에 올라왔을 때
code, data, stack, heap 4가지로 나누어 구성된다
code = 개발자가 작성한 코드
data = 앱에 전반적으로 필요한 데이터(변수)
stack = 함수의 실행 순서
heap = 앱에서 복잡한 여러 가지 데이터를 함께 묶어놓은 객체