Heap 4

#003_MFC_메모리의 구성

안녕하세요 삽잡이 입니다. 이번 시간에는 코드 영역과 데이터 영역에 대해서메모리 구조에 대해서 MFC 관점으로 알아보겠습니다. 프로그램은 명령어와 데이터의 집합으로 이루어져 있습니다.데이터를 input 받고 명령어를 통해 가공을하여 output 하는 식이죠... MFC를 두고 예를 들어보도록 하겠습니다. MFC 주요 클래스인 'CFrameWnd', 'CView', 'CDocument' 등은 모두 동적 할당 을 통해 Heap 영역에 저장됩니다. 그리고 동적 할당을 통해 생성된 객체에서 사용하는 지역 변수들은 Stack영역에 만들어지고요... WM_LBUTTONDOWN과 같은 윈도우 메시지들은 코드영역에 자리를 잡습니다.이 외에도 함수들 즉, 메소드들도 코드영역에 자리를 잡습니다. 예를 들어 View라는 클..

#031_WIndow_System_힙(Heap)

안녕하세요 삽잡이입니다. 이번시간에는 가상 메모리에 대한 얘기를 이어서 해보려 합니다. 물리메모리에 두개의 Application A, B가 있다고 해보겠습니다.실제 A 어플리케이션에서 사용할 수 있는 주소는 가상 주소 공간밖에 없습니다.가상 주소 공간의 메모리가 실제 할당이 되면, 물리 메모리에 똑같이 할당이 되게 됩니다.실제 메모리와 매핑되는 메모리 영역을 우리는 커밋(확장)영역이라고 부릅니다. 그리고, 실제 메모리 영역에 할당이 안되어있으며, 얼마든지 다른 물리 메모리 영역에 할당할 수 있도록 만든 메모리즉, '내 입장에서는 연속적인 메모리이지만, 실제 물리 메모리에서는 연속적이지 않아도 되는 영역'을예약(리저브)영역이라고 합니다. 마지막으로 전혀 예약도 되지 않은 영역을 자유 영역이라고 하지요.....

#018_WIndow_System_쓰레드(thread) 란?

안녕하세요 삽잡이입니다.이번 시간에는 시스템 프로그래밍을 배우면서 가장 중요한 내용 중 하나!쓰레드에 대해서 알아보도록 하겠습니다. 요즘은 멀티코어 시대로써 여러개의 코어... 그러니까 CPU 자세하게는 연산 장치를 통해 프로그래밍을 할 수 있게 되었습니다. 우선 프로그램이 실행되기 위한 세가지 상태에 대해 알아보도록 하겠습니다.1. Running 상태2. Ready 상태3. Blocking 상태 start를Ready전에, End를 Blocking 후에 실행되게 됩니다.즉, 상태로는 크게 프로그램이 구동되고 실행되는 위의 세가지 상태로 나뉘게 된다는 것입니다. 프로그램이 실행되면 Ready 상태에 놓이게 됩니다.그리고 자기가 실행할 순서가 되면 Running 상태에 놓이게 됩니다.Running 상태에 놓..

곱씹어보자 C!_#017_삽잡이의 두서없이 막하는 Heap (엉덩이 아님)

죄송합니다... heap 보고 엉덩이라니...죄송합니다.... 아하하.... 아무튼... C언어에서 바라보는 프로그램은 명령어와 데이터로 나뉩니다.그런데 데이터는 우리 사용자에 의해서 저장이 되죠.... 데이터는 크게 세가지의 부분으로 나뉩니다.첫번째, Global Data, 두번째, Stack,세번쨰, Heap 입니다. 왜 나뉘느냐... 바로, 용도에 맞게 적정한 위치에 데이터를 보관하고자 하는 이유에서 입니다.그 중에서, 우리가 알아보고자 하는 영역은 바로 Heap 영역입니다. 그전에 Stack에서 대해서 잠깐 간단하게 설명하자면,Stack은 함수의 중괄호 블럭 시작과 함께 생성되고 종료될 때 소멸되는 공간을 말합니다. 아무튼... 우린 Heap 을 봐야됩니다...Global Data 영역에는 정적 ..