320x100

쿼리큘럼 개인적 정리 30

가상메모리,힙 이해

https://jungwoong.tistory.com/47 [window] 프로세스의 힙 메모리 힙 메모리 힙은 크기가 작은 데이터 블록을 할당 하는데 매우 유용한 방법으로 가상 메모리와 달리 할당 단위나 페이지 경계와 같은 특성을 고려할 필요 없이 메모리 할당 할 수 있습니다. jungwoong.tistory.com https://woo-dev.tistory.com/187 Heap 메모리 장단점(Windows) 내가 퍼온 출처 : egloos.zum.com/dstein/v/1785346 출처 : http://msdn.microsoft.com/library/kor/default.asp?url=/library/KOR/dntaloc/html/heap3.asp Murali R. Krishnan Microsof..

윈도우 GDI

GDI란? Graphics Device Interface의 약자로 Windows에서 제공하는 그래픽 출력 기능을 의미한다. 출력 장치(모니터 등)에 Line, Shape, Bitmap등을 표현할 수 있다. 색상, 두께등 세부적인 기능을 정의할 수 있는데, 일일히 설정하기에는 복잡하기 때문에 DC라는 개념이 생겨났다. DC란? Device Context의 약자로 Windows에서 화면 출력을 위해 정의된 구조체를 의미한다. Windows에서는 모든 윈도우들이 개별의 DC 핸들(HDC)를 가지고 있고, 수정시 해당 핸들을 가져와 데이터를 변경시켜야 한다. https://blog.naver.com/pigeonkim/140038936613 GDI 와 DC 개념잡기 GDI와 DC의 개념 윈도우에서의 그래픽 출력은..

유니코드

유니코드(영어: Unicode)는 전 세계의 모든 문자를 컴퓨터에서 일관되게 표현하고 다룰 수 있도록 설계된 산업 표준이며, 유니코드 협회(Unicode Consortium)가 제정한다. 또한 이 표준에는 ISO 10646 문자 집합, 문자 인코딩, 문자 정보 데이터베이스, 문자들을 다루기 위한 알고리즘 등을 포함하고 있다. 문자 인코딩 - 위키백과, 우리 모두의 백과사전 문자 인코딩(영어: character encoding), 줄여서 인코딩은 사용자가 입력한 문자나 기호들을 컴퓨터가 이용할 수 있는 신호로 만드는 것을 말한다. 넓은 의미의 컴퓨터는 이러한 신호를 입력받고 처리 ko.wikipedia.org 유니코드 표 http://www.unicode.org/charts/PDF/UAC00.pdf SQL..

메모리 누수 추적 라이브러리

https://docs.microsoft.com/ko-kr/visualstudio/debugger/finding-memory-leaks-using-the-crt-library?view=vs-2019 CRT 라이브러리로 메모리 누수 찾기 - Visual Studio (Windows) C/C++ 디버거 및 CRT(C 런타임 라이브러리)를 통해 메모리 누수를 찾는 방법을 알아봅니다. 포함되는 기술로는 메모리 누수 보고서와 메모리 스냅샷 비교가 있습니다. docs.microsoft.com http://lab.gamecodi.com/board/view.php?id=GAMECODILAB_PDS&page=1&sn1=&divpage=1&sn=off&ss=on&sc=on&select_arrange=hit&desc=des..

CPU 캐시 메모리

https://aidanbae.github.io/code/devops/computer/cpucache/ CPU 캐시 이해하기 CPU 캐시 이해하기 - 아이단의 블로그 aidanbae.github.io https://smallake.kr/?p=10552 CPU Shared Cache를 잘 사용하는 방법 | 그대안의 작은 호수 함께 놀자! Linux와 Python 1. LinkedIn에 올란 글중 Function Pointer와 관련한 글을 읽다가 찾은 글입니다. shared cache 를 위한 소프트웨어 테크닉 이 글은 Software Techniques for Shared-Cache Multi-Core Systems을 요약 smallake.kr

윈도우 메모리구조와 메모리분석 기초

물리 메모리 물리 메모리라 하면 우리는 흔히 RAM만을 생각한다. 하지만 실제 4GB램을 장착하더라도 사용할 수 있는 메모리는 4GB 이하이다. 이는 시스템이 관리하는 모든 메모리란 램 하나만을 의미하는 것이 아닌 장치 메모리(Device Memory)가 존재하기 때문인데, 이로 인해 우리가 사용할 수 있는 공간은 4GB 램일 경우 [4GB-장치 메모리]가 된다. 안 그래도 부족한 4GB 메모리가 이로 인해 더욱 부족하게 되는 것이다. 그렇기에 가상 메모리라는 개념을 사용하게 되었는데, 가상 메모리라 해도 결국 이 실제 메모리에서 활동하게 되는 것이다. 하지만 가상 메모리라 해도 결국 실제 메모리에서 활동한다고 하였는데, 여러 프로세스를 실행하면 이 주소 공간이 부족하지 않을까? 이를 위해 존재하는 것이..

C 언어의 어셈블리 분석

1.어셈블리어(Assembly Language) 기초 명령 아래는 기초 명령의 리스트이다(Intel Style의 명령이라 가정한다). mov A, B : B에서 A로 값을 이동 cmp A, B : 두 값을 비교하여 결과를 Flags 레지스터에 업데이트 rep instruction : insturction을 CX 레지스터의 값 만큼 반복 수행 call X : Stack에 Return Address를 삽입하고 jump 수행 jmp X : 무조건 해당 주소로 jump je, ja X : 조건 분기 명령. Flags 레지스터의 플레그 값에 따라서 jmp 수행(보통 cmp와 같은 명령어와 함께 사용) push X: 스택에 값을 저장 pusha, pushad : 스택에 모든 레지스터 값을 저장. EAX, ECX, ..

어셈블리어의 기본 정리

기본 형식 : [operation dst, src] operation - 명령 dst - 목적지 : 연산의 결과가 저장 되는 곳으로 레지스터나 메모리가 온다. src - 출발지 : 레지스터, 메모리, 상수 모두 가능하다. dst와 src의 크기는 동일해야함!! 범용 레지스터 EAX(ExtendAccumulatorRegister): 사칙연산등 산술 연산에 사용되며, 함수의 반환값을 처리할 때도 사용됨 EBX(ExtendBaseRegister): 간접 번지 지정에 사용되며, 산수 및 변수를 저장함 ECX(ExtendCountRegister): 반복에서 카운트 역할을 수행함 EDX(ExtendDataRegister): EAX를 보조하는 역할을 수행함 인덱스 레지스터 ESI(ExtendSourceIndex): ..

320x100