본문 바로가기

전체 글22

Memory in Windows system y# Win16의 메모리 구조 80286프로세서에서는 최대 16MB까지의 메모리를 지원 하였으나 하위 호환성을 위해 1MB까지 밖에 보통을 사용하지 않았다. 1MB를 액세스 하기 위해서는 20bit의 주소 영역이 필요 하였으므로 평면적인 메모리 구조로는 접근이 불가했다. 따라서 이를 위해 세그먼트/오프셋 구조를 사용했으며, 모든 프로그램이 같은 주소 공간에서 실행되어 응용프로그램들 사이는 물론 시스템 영역까지도 침범이 가능했다. # 4GB 평면 메모리 모델 16비트 환경의 부족한 메모리와 구조적인 문제를 근본적으로 해결한 CPU는 80386이다(이후는 그냥 처리속도만 증가함). 80386CPU가 관리할 수 있는 메모리는 최대 4GB(2의 32승)의 주소공간을 지원한다(주소공간은 프로세스가 가지는 가상의 .. 2011. 5. 9.
Cloud computing model SaaS : Software/Storage as a Service의 약자입니다. 블로그를 예로 들어 보면? 마치 Naver 블로그나 tistory처럼 이미 완성되어 어플리케이션을 사용하여 유저는 컨텐츠 업로드하여 사용하기만 하면 됩니다. PaaS : Platform as a Service. SaaS가 어플리케이션을 서비스했다면 PaaS는 응용프로그램 대신 표준화된 플랫폼을 서비스합니다. 이 역시 블로그에 비유하자면 블로그를 설치해서 사용할 수 있는 웹 호스팅 서비스를 생각하시면 될 것 같습니다. IaaS : Infrastructure as a Service. IaaS는 Infra(CPU,Memory,스토리지)등과 같은 하드웨어 자원을 서비스 합니다. 쉽게 논리적인 VM을 서비스한다고 생각하면 됩니다. 대.. 2011. 5. 1.
Apr 24, 2011 - Windows System Programming Expert Seminar(2) 1. HANDLE과 HWND # 핸들? 32비트의 객체를 가리키는 id. 그 내부 구현은 다음과 같이 되어있다. struct HWND__ { }; typedef HWND__* HWND; 왜? typedef unsigned int HWND; typeid(HWND).name(); // HWND타입의 이름을 문자열 형태로 반환. 2. Process Handle process handle 을 구하려면 우선, process id를 알아야 한다. => DWORD pid; DWORD tid = GetWindowThreadProcessId}(hWnd, &pid); 그리고 pid를 이용해서 process handle을 구한다. => HANDLE hProcess = OpenProcess(PROCESS_TERMINATE, .. 2011. 4. 25.
Apr 24, 2011 - Windows System Programming Expert Seminar(1) 1. exe format exe file(PE file format을 따르는 파일)은 header와 section들로 구성이 된다. 그리고 그 구조는 다음과 같다. 모든 exe file의 header에는 자신이 올라갈 주소(Image Base, 주로 400,000번지로 지정이 된다.)와 Entry(맨 처음 기계어 코드가 시작되는 offset 즉, .text 섹션 까지의 offset)가 있다. 또한 .text 섹션은 보통 200byte 단위로 정렬 되므로 그 보다 적은 용량이 필요할 경우에도 200byte 단위로 메모리가 잡힌다. 따라서 그 남는 공간에 필요한 코드를 심는 해킹 기법이 존재한다. 2. The mechanism of calling function # C, C++은 함수의 인자 전달 시 마지막.. 2011. 4. 25.