Programming/Windows System 26

[Windows System] 프로세스간 통신(IPC) 기법_메일슬롯(MailSlot) 방식

IPC (Inter-Process Communication) : 프로세스 사이의 통신 메일 슬롯(Mail Slot)의 원리 : 프로세스는 자신에게 할당된 메모리 공간 이외에는 접근할 수가 없다. 따라서 Mail Slot (우체통)을 이용하여 데이터를 송·수신한다. 데이터를 수신하고자 하는 프로세스 A(Receiver)가 Mail Slot 을 생성한다. 데이터를 송신하고자 하는 프로세스 B(Sender)가 프로세스 A의 Mail Slot 의 주소로 데이터를 송신한다. 프로세스 A가 자신의 Mail Slot 을 통해 데이터를 얻게 된다. 메일 슬롯(Mail Slot) 구성 : Recevier : Mail Slot 를 생성한다. HANDLE CreateMailslot( LPCTSTR lpName, // 메일슬..

[Windows System] 커널 오브젝트(Kernel Objects)_0x01

커널 오브젝트 : Windows 운영체제에서 리소스(Resource : 프로세스, 쓰레드, 파일)들을 관리하기 위한 데이터를 저장하는 메모리 블록 Windows에서 관리하는 리소스 특성을 변경하기 위해서는 해당 리소스의 커널 오브젝트를 조작해야한다. 해당 리소스의 정보를 저장하고 있는 커널 오브젝트에 접근하기 위해서는 커널 오브젝트들을 구별하는 커널 오브젝트 핸들(Object Handle)을 얻어야 한다. 커널 오브젝트와 핸들 : 커널 오브젝트는 Windows 운영체제에 종속적이다. 사용자가 리소스 생성을 요청하면 운영체제에서 사용자가 요청한 대로 리소스를 생성하게 되고 이를 관리하기 위해 커널 오브젝트를 생성한다. 즉, 커널 오브젝트는 Windows 운영체제에 의해 생성 및 소멸이 결정된다. 리소스가 ..

[Windows System] 프로세스 생성함수_CreateProcess()

CreateProcess Process A -------> Process B (부모 프로세스) CreateProcess (자식 프로세스) BOOL CreateProcess( LPCTSTR lpApplicationName, // 생성될 프로세스의 이름 LPTSTR lpCommandLine, // 생성될 프로세스에 인자 전달(변수만 가능) LPSECURITY_ATTRIBUTES lpProcessAttributes, // 프로세스의 보안 속성 지정 LPSECURITY_ATTRIBUTES lpThreadAttributes, // 쓰레드의 보안 속성 지정 BOOL bInheritHandles, // TRUE : 부모 프로세스가 소유하는 상속 가능한 핸들을 상속한다. DWORD dwCreationFlags, // ..

[Windows System] 프로세스의 생성과 소멸

프로세스(Process)란 실행 중에 있는 프로그램을 의미한다. 하드디스크에 존재하는 특정 프로그램에 대해서 실행을 요청한 경우, 이 프로그램의 바이너리 코드들이 메모리에 적재되어 명령어를 실행하게 되는데 이를 프로세스라 한다. 프로세스 구성요소 - 메모리 구조 : 프로그램의 실행으로 생성되는 프로세스에 대해 제공되는 메모리 공간은 다음과 같이 나뉜다. 。Data 영역 : 전역변수나 static 변수의 할당을 위한 영역 。Stack 영역 : 지역변수 할당과 함수 호출 시 전달되는 인자값들의 저장을 위한 영역 。Heap 영역 : 동적 할당(malloc, calloc, new에 의한 할당)을 위한 영역 。Code 영역 : 실행파일을 구성하는 명령어들이 올라가는 메모리 영역 위 그림은 프로세스 생성 시 만들어..

[Windows System] 64비트 기반 프로그래밍

1. 64비트와 32비트 구분 : 1. I/O BUS를 통해서 한번에 송 · 수신할 수 있는 데이터 크기 2. 데이터 처리능력 32비트 -> 64비트 : 1. 더 넓은 메모리 공간(가상 메모리) 활용(32비트 : 표현할수 있는 주소 4GB -> 64비트 : 표현할수 있는 주소 16TB) 2. 연산속도의 증가(32비트 : 최대 32비트 데이터 처리 --> 64비트 : 최대 64비트 데이터 처리) 2. 64비트 기반 프로그래밍 1) LLP64, LP64 : 운영체제 모델 char short int long 포이터 Windows LLP64 1바이트 2바이트 4바이트 4바이트 8바이트 UNIX LP64 1바이트 2바이트 4바이트 8바이트 8바이트 Windows에서는 포인터만 8바이트로 표현함으로써 32비트 시스..

[Windows System] 문자셋 (Character Sets)

1. 문자셋(Character Set)의 종류와 특성 SBCS(Single Byte Character Set) : 1바이트로 문자를 표현한다. 대표적으로 아스키 코드(ascii code)가 있다. MBCS(Multi Byte Character Set) : 문자를 표현 하는데 있어서 아스키 코드는 1바이트로, 그 외에는 2바이트로 처리한다. WBCS(Wide Byte Character Set) : 모든 문자를 2바이트로 표현한다. 대표적으로 유니코드(UNICODE)가 있으며, 전세계의 모든 문자를 표현할 수 있다. 2. WBCS 기반 프로그래밍 기본적으로 운영체제에서는 문자열을 MBCS 기반으로 처리한다. 예) #include #include int main() { char str[] = "AB가나"; i..