190703-2 교육을 받으면서 노트필기 했던 내용을 날것 그대로 업로드합니다. 동기화 : 비동기화 : 시간 t에 독립적으로 두개 이상 작업이 수행 (중첩, 겹침) 크리티컬 색션 : 동기화 객체라고 부른다. 동기화 객체 InterLocked~ Critical Section : User Level Mutex : Kernel Level Semaphore : Kernel Level : ↑ 데이터 보호를 위해 만들어졌다. Event : Kernel Level : 순서제어를 위해 만들어 졌다. 유저모드 동기화 크리티컬 섹션 : 메모리 접근 동기화 인터락 함수 : 메모리 접근 동기화 커널모드 동기화 뮤텍스 : 메모리 접근 동기화 (소유개념), 소유하면 비신호, 소유하고있지않으면 신호 상태가된다. 세마포어 : 메모리..
190701-2 - 핸들, 동기, 신호/비신호 (1일차) 교육을 받으면서 노트필기 했던 내용을 날것 그대로 업로드합니다. #include #include #include void main() { //const char* s = "Hello!"; // 상수 메모리 문자열 ////s[0] = 'a'; // 변경할 수 업 //printf("%s\n", s); char cur[MAX_PATH]; char sys[MAX_PATH]; char win[MAX_PATH]; // 현재 작업 디렉토리 GetCurrentDirectory(MAX_PATH, cur); //● 작업 디렉토리 : 프로세스는 자기만의 작업디렉토리가 있다. //SetCurrentDirectory("C:\\Temp"); //GetCurrentDirec..
윈도우즈 시스템 프로그래밍에 관련된 내용입니다. 190701-1 - 커널오브젝트, 아스키코드와 유니코드 (1일차) 교육을 받으면서 노트필기 했던 내용을 날것 그대로 업로드합니다. C/C++의 DLL등을 .Net에서 갖다가 그대로 쓸 수 있다. (유명한 C++/C 라이브러리는 C#으로 포팅 되어있다.) 다른 언어를 사용할 때 BCL을 사용해야한다. (이론적으로 모든 언어로 프로그래밍이 가능하다. 그러나 거의다 C#으로 개발함) Win32라이브러리에서 os와 밀접한 부분을 공부한다. 그 부분이 시스템 프로그래밍이다. 여기서는 프로세스와 쓰레드, 핸들 종류, 메모리, DLL(동적 링크 라이브러리), 동기화 객체, +a 등을 중요하게 공부할 것이다. 쓰레드와 동기화 부분은 다른 쪽으로 넘어가도 중요한 부분이 될..