목록IT/윈도우 프로그래밍 (66)
LISTORY
뇌를 자극하는 윈도우즈 시스템 프로그래밍 책 관련 유투브 강의 내용 정리이다. 이번 시간은 저번 시간에 이어, 이벤트 예제를 다뤄보도록 하겠다. YouTube 주소 : 이벤트(Event) 더하기 뮤텍스(Mutex) 이벤트(Event) 더하기 뮤텍스(Mutex) 이벤트 기반 동기화 예제로 예제는 StringEvent.cpp 를 다루겠다. 수동 리셋 모드 이벤트 관련한 예제는 StringEvent2.cpp, StringEvent3.cpp를 보도록 하겠다. 예제를 자세히 보려면 책으로 확인하길 바란다. StringEvent.cpp 먼저 보도록 하겠다. 이벤트는 수동 리셋 모드로 생성하였다. 또한 생성과 동시에 non-signaled 상태로 설정되도록 하였다. 이름없는 Event는 13장 강의를 확인하면 알 수..
뇌를 자극하는 윈도우즈 시스템 프로그래밍 책 관련 유투브 강의 내용 정리이다. 이번에 정리할 내용은 14장. 쓰레드 동기화 기법2 부분이다. YouTube 주소 : 실행 순서에 있어서의 동기화 쓰레드 동기화 기법 13장에서는 임계영역의 접근 동기화에 대해 다루었다. 이번 시간은 지난 시간에 이어 쓰레드의 순서 동기화 부분에 대해 다루도록 하겠다. 쓰레드의 순서는 왜 동기화 해야하는걸까? 교제에서는 생산자/소비자 모델을 제시하였다. ⊙ 생산자/소비자 모델 이 모델은 보는 관점에 따라 I/O 모델이기도 하고, 쓰레드 모델이기도 하고, 둘 다이기도 하다. 하는 일은 간단하다. 일단, 데이터를 입려해야 한다. 보통 데이터 입력을 말하면 콘솔 생각을 하는 경우가 많은데, 좀더 다양하게 생각해 봐야 한다. 여기서는..
뇌를 자극하는 윈도우즈 시스템 프로그래밍 책 관련 유투브 강의 내용 정리이다. 저번 시간에 이어 커널 모드 동기화 부분을 설명하겠다. YouTube 강의 주소 : 커널 모드 동기화(2) 커널 모드 동기화 ⊙ 이름있는 뮤텍스 기반의 프로세스 동기화 이번 강의는 알면 좋지만 몰라도 크게 상관없는 내용이라고 한다... 프로세스 A, 프로세스 B 존재하고, 쓰레드가 각각의 프로세스에 또 존재한다. 이 쓰레드들이 동기화가 가능할까? 결론은 가능하다. 상황을 만들어 보자. 동기화를 위해 뮤텍스 하나를 공유하는 것이 의미가 있다. 프로세스 A가 뮤텍스 생성하였다. 프로세스 A에서 생성된 뮤텍스는 당연히 프로세스 A 내에 있는 쓰레드에게 접근이 가능하다. 여기서 프로세스 B의 쓰레드와 동기화가 가능하려면 프로세스 B에..
뇌를 자극하는 윈도우즈 시스템 프로그래밍 책 관련 유투브 강의 정리이다. 오늘 정리할 내용은 커널 모드 동기화 부분이다. YouTube 강의 주소 : 커널 모드 동기화(1) 커널 모드 동기화 이번 시간엔 세마포어 동기화 기법, 뮤텍스 동기화 기법에 대해 공부할 건데, 그전에 우선 세마포어, 뮤텍스 이 두가지의 특성부터 설명하고 사용방법을 설명하도록 하겠다. 운영체제 책에서 설명하는 세마포어는 동기화 기법의 이름이다. 그리고 이 세마포어 중에서 바이너리 세마포어를 뮤텍스라고 한다. 즉, 세마포어가 있고 세마포어의 일부로서 뮤텍스 존재하는 것이다. 세마포어는 세마포어가 있고 뮤텍스도 있지만, 윈도우즈에서는 이 각각을 기법 이름으로 가져다 쓴다. 운영체제에서 이야기하는 세마포어와 유사한 기법이 세마포어 기법이..
뇌를 자극하는 윈도우즈 시스템 프로그래밍 책 관련 유투브 강의 정리이다. 이번 시간에 다룰 내용은 유저모드의 동기화 부분이다. YouTube 주소 : 유저 모드 동기화 유저 모드의 동기화 동기화 기법은 우리에게 단순히 제공이 되는 기능이다. API 상으로 동기화 기법은 추상적으로 밖에 보이지 않는다. 어떻게 동기화가 이루어 지는지 실질적으로 보기 위해선 하드웨어적 지식이 필요하다. 하지만 동기화의 경우, 어떻게 이루어지는 아는 것보다, 사용을 하되 적절한 사용을 고려하는 것이 훨씬 더 중요하다. 메모리에 대한 모든 동기화 기법은 key를 생각하면 된다. 둘 이상의 쓰레드가 동시에 접근하는 것을 막기 위해선 열쇠를 가지고 접근을 허용한다고 생각하면 된다. 예제 코드를 보겠다. CRITICAL_SECTION..