본문 바로가기

Windows/_System Programming34

CreateProcess 함수 CreateProcess Process A -------> Process B (부모 프로세스) CreateProcess (자식 프로세스) BOOL CreateProcess( LPCTSTR lpApplicationName, // 생성될 프로세스의 이름 LPTSTR lpCommandLine, // 생성될 프로세스에 인자 전달(변수만 가능) LPSECURITY_ATTRIBUTES lpProcessAttributes, // 프로세스의 보안 속성 지정 LPSECURITY_ATTRIBUTES lpThreadAttributes, // 쓰레드의 보안 속성 지정 BOOL bInheritHandles, // TRUE : 부모 프로세스가 소유하는 상속 가능한 핸들을 상속한다. DWORD dwCreationFlags, // .. 2010. 2. 10.
프로세스(Process) 생성 소스 /* 자식 프로세스(Child Process) */ #include #include #include #include INT_PTR _tmain(INT_PTR argc, TCHAR* argv[]) { _tsetlocale(LC_ALL, _T("Korean")); _tprintf(_T("자식 프로세스(Child Process) \n")); system("pause"); return 0; } /* 부모 프로세스(Parent Process : CreateProcess 이용) */ #include #include #include #include #define DIR_LEN MAX_PATH+1 INT_PTR _tmain(INT_PTR argc, TCHAR* argv[]) { _tsetlocale(LC_ALL, _T.. 2010. 2. 10.
프로세스의 생성과 소멸 프로세스(Process) : 메모리에 로드되어 실행중인 프로그램 1. 프로세스를 구성하는 요소 메모리 구조 : 프로세스 생성시 만들어진다. Register Set : 프로세스 실행을 위해 필요한 데이터들로 채워진다. 2. 프로세스의 스케줄링과 상태 변화 프로세스의 스케줄링(Scheduling) : 프로세스의 CPU 할당 순서 및 방법을 결정짓는 일 (스케줄링 알고리즘(Scheduling Algorithms) : 스케줄링에 사용되는 알고리즘) 스케줄러(Scheduler) : 스케줄링 알고리즘을 적용해서 실제로 프로세스를 관리하는 운영체제 요소(모듈) (참고 : 멀티 프로세스(Multi-Process) 운영체제의 CPU 사용 실행해야 할 프로세스 여러개라면 멀티 프로세스는 모든 프로세스를 일단 실행시킨 후 .. 2010. 2. 9.
명령 프롬프트(Cmd) 작성 #include #include #include #include #include #define STR_LEN 256 // 문자열 길이 #define CMD_TOKEN_NUM 10 // 입력가능한 최대 문자열 개수 TCHAR ERROR_CMD[100] = _T(" '%s'는 실행할 수 있는 프로그램이 아닙니다. \n"); INT_PTR CmdProcessing(); TCHAR* StrLower(TCHAR*); INT_PTR _tmain(INT_PTR argc, TCHAR* argv[]) { _tsetlocale(LC_ALL, _T("Korean")); // 유니코드 한글을 입력받기 위해 INT_PTR isExit; while(TRUE) // 무한루프 { isExit = CmdProcessing(); if(.. 2010. 2. 9.
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비트 시스.. 2010. 2. 8.
Windows에서의 문자셋(Character Sets) 1. 문자셋의 종류와 특성 SBCS(Single Byte Character Set) : 1바이트로 문자를 표현한다. 대표적으로 아스키 코드(ASCII CODE)가 있다. MBCS(Multi Byte Character Set) : 문자를 표현 하는데 있어서 ASCII CODE 는 1바이트로 그 외에는 2바이트로 처리한다. WBCS(Wide Byte Character Set) : 모든 문자를 2바이트로 표현한다. 대표적으로 유니코드(UNICODE)가 있다. 2. WBCS 기반 프로그래밍 기본적으로 운영체제에서는 문자열을 MBCS 기반으로 처리한다. 예) #include #include int main() { char str[] = "AB가나"; int len = strlen(str); printf("%d",.. 2010. 2. 8.