본문 바로가기

Memory4

메모리 단편화 (Memory Fragmentation) 메모리 단편화가 뭐지? 먼저 컴퓨터를 공부하는 사람이라면 주기억장치에 대해 들어본 적 있죠? 주기억장치는 CPU가 직접 접근하여 처리할 수 있는 고속의 기억장치 (Memory) 로, 현재 수행되는 프로그램과 데이터를 저장하고 있습니다. 종류로는 ROM과 RAM이 있죠. 이 주기억장치에서 메모리의 공간이 작은 조각으로 나뉘어져 사용가능한 메모리가 충분히 존재하지만 할당이 불가능한 상태를 메모리 단편화가 발생했다고 합니다. 그리고 이 메모리 단편화는 내부 단편화와 외부 단편화로 구분할 수 있습니다. 내부 단편화 (Internal Fragmentation) 메모리를 할당할 때, 프로세스가 필요로 하는 크기보다 더 큰 메모리가 할당되어서 프로세스에서 사용하는 메모리 공간이 낭비되는 상황을 말합니다. 예를 들어,.. 2021. 4. 14.
메모리 구조에서 Stack과 Queue의 역할 메모리 구조에서 왜 Stack과 Queue가 필요하지? 라고 생각하실 수 있겠지만.. 메모리 구조를 공부하시다보면 스택, 힙, 데이터, 코드 영역이 있는 거 아시죠? 여기서 스택 영역을 우리가 생각하는 Stack 역할로 생각할 수 있고, 힙 영역을 Queue 역할로 생각할 수 있습니다. 여기서 힙과 큐를 혼동하실 수 있는데요, 지금 말하는 의미는 같지만 큐는 자료구조론에서 사용하는 용어이고 힙은 메모리 관련 용어로 사용한다고 생각하면 될 것 같네요! 그리고 이런 스택과 큐의 원리를 메모리 구조에서는 보통 데이터를 처리할 때 데이터를 임시로 저장하거나, 입/출력 장치의 데이터를 일시적으로 저장할 때 사용합니다. 데이터를 잠시 보관해두는 일을 하기 위해 메모리 주소와 인덱스를 일일이 지정하는 일은 너무 복잡.. 2021. 4. 14.
ARC (Automatic Reference Counting) iOS 개발을 공부하면서 꼭 알아야할 것 중 하나인 ARC (Automatic Reference Counting). 도대체 ARC가 뭘까요? 먼저, 앱의 성능을 유지하기 위해서는 메모리 관리가 필수적입니다. Stack 메모리에 저장된 데이터는 자동으로 제거되기 때문에 특별한 관리가 필요 없지만, Heap 메모리는 개발자가 동적으로 할당하는 메모리 공간이기 때문에 Heap 메모리에 저장된 데이터는 필요하지 않은 시점에 직접 제거해야만 합니다. 따라서 메모리 관리 모델은 Heap에 저장된 데이터를 관리합니다. [ 참고 ] Value Type은 Stack 메모리에, Reference Type은 Heap 메모리에 저장됩니다. Value Type: Structure, Enumeration, Tuple.. Refe.. 2020. 12. 22.
메모리 구조를 알아보자. 메모리 구조 운영체제는 프로그램의 정보를 읽어 메인 메모리에 공간을 할당해 로드한다. 이 메모리의 구조를 알아봅시다 ^_^.. velog.io 데이터나 프로그램을 저장하는 저장 공간은 계층 구조를 가집니다. CPU에 접근속도가 빠른 순으로 Register, Cache, Main Memory, External Memory로 볼 수 있는데, 이 게시물에서는 메인 메모리의 공간 구조를 다룰 것입니다. 제가 메모리 구조에 대해 궁금해지게 된 것은 프로세스와 스레드의 차이점을 공부한 이후였습니다. 프로세스는 각 메모리 영역을 독립적으로 할당받고, 스레드는 Stack 영역만 독립적으로 할당받고 나머지 Heap, Data, Code 영역은 같은 프로세스 내의 다른 스레드와 공유한다는데 도대체 이 4가지 영역의 특징이.. 2020. 12. 10.