본문 바로가기

Program18

[Programming] (윈도우 시스템 프로그래밍) Windows 32bit 와 64bit WIN32 vs WIN64 64bit 와 32bit 구분법 한번에 송수신 가능한 데이터 크기 (BUS) CPU 에서 처리 가능한 명령어의 크기 (Register 의 크기) 32bit -> 64bit 의 특징 프로그램으로 표현할 수 있는 범위의 증가 활용 가능한 메모리의 확장 (메모리에서 접근할 수 있는 범위 증가) 32bit 시스템에서는 포인터가 32bit 크기이고, 2^32-1 만큼 표현할 수 있다. 64bit 시스템에서는 포인터가 64bit 크기이고, 2^64-1 만큼 표현할 수 있다. ! 내컴퓨터 비트수 확인 제어판에 시스템에서 확인할 수 있다 ! 프로그래머 입장에서 64bit 특징 활용 가능한 메모리가 50byte 라고 가정해보자. (프로그램을 실행할때 할당하는 메모리는 고려하지 않는다.) exa.. 2020. 8. 12.
[Programming] (윈도우 시스템 프로그래밍) MBCS 와 WBCS 동시지원 MBCS 와 WBCS 동시지원 MBCS 는 기존 작성된 프로그램과의 호환성, Unicode 를 지원하지 못하는 환경에서 프로그램을 동작시킬때와 같은 이유로, WBCS 의 장점에도 불구하고 WBCS 로만 프로그램을 작성할 수 없다. 서버프로그램은 문제가 되지 않는다. 서버는 업데이트가 편리하고. 개인에게 요구 하지 않기 때문이다. 기업을 대상으로 하는 프로그램은 WBCS기반 프로그래밍이 가능하다. 하지만 최종 클라이언트(유저) 고려하면, MBCS 와 WBCS 동시지원하는 프로그램을 만드는게 좋다. 만약 MBCS, WBCS 기반의 프로그램을 각각 만든다면, 하나의 프로그램인데 두개가 존재하기때문에 하나바꾸면 다른 하나를 또 바꿔야하기때문에 유지보수가 어렵고, 배포하는과정에서도 문제가 나타난다. 이러한 이유로.. 2020. 8. 9.
[Programming] (윈도우 시스템 프로그래밍) 윈도우에서 유니코드 윈도우에서 유니코드 문자셋의 종류와 특성 SBCS ( Single Byte Character Set ) 1byte 로 문자를 표현. example : ASCII Code MBCS ( Multy Byte Character Set ) 한글은 2, 영어는 1 byte로 문자를 표현. WBCS ( Wide Byte Character Set ) 2byte 로 문자를 표현. example : UNICODE #include #include int main(void){ char str[]="ABC한글"; printf("%d\n%d\n", sizeof(str), strlen(str)); return 0; } 실행결과 10 9 sizeof 연산자는 NULL 문자를 포함하기 때문에 ,길이가 1 늘어납니다. 영어는 1 byt.. 2020. 8. 6.
[Programming] (윈도우 시스템 프로그래밍) 프로그램 컴파일과정/Stored Program Concept/System Bus 프로그램 실행과정 프로그램 컴파일 과정 전처리기에 의한 치환 : # 으로 시작하는 지시자를 처리한다 (#include, #define) 컴파일러에 의한 번역 : CPU 의 명령어로 번역한다. 어셈블러에 의한 바이너리 코드 생성 : CPU 의 명령어를 바이너리 코드로 번역한다. CPU 아키텍쳐마다 다르다 (x86,ARM,MIPS .. ) example : ADD -> 0011, MIN -> 0010, MUL -> 0100 링커에 의한 연결과 결합 : 라이브러리와 결합 Stored Program Concept 폰 노이만 : 컴퓨터 구조가 프로그램의 메모리에 저장되어야하는 컨셉으로 디자인되어야한다. (폰노이만 아키텍쳐라고도 불린다) Fetch (cpu 내부로 명령어 이동) Decode (컨트롤 유닛 -> 명령.. 2020. 8. 4.