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