IT Expert 윈도우시스템 프로그램을 구현하는 기술 200개 이상의 함수와 예제로 배우는 윈도우 비동기 프로그래밍 가이드

IT Expert 윈도우시스템 프로그램을 구현하는 기술 200개 이상의 함수와 예제로 배우는 윈도우 비동기 프로그래밍 가이드

$50.00
Description
[IT EXPERT 윈도우시스템 프로그램을 구현하는 기술]은 동기ㆍ비동기 입출력 관점에서 윈도우 시스템 프로그래밍을 하는 방법을 다룬다. 크게 1부와 2부로 나뉘며, 1부는 비동기 입출력을 알아보기 전에 비동기 입출력의 전제가 되는 스레드와 동기화, 동기화의 요소가 되는 윈도우 객체 및 관련 함수, 그리고 스레드 동기화를 구현하는 다양한 방법들에 대해 예제를 통해 상세하게 설명한다. 2부에서는 본격적으로 비동기 입출력 또는 중첩 입출력에 대해 설명한다. 또한, 윈도우에서 확장성과 성능 향상을 위해 제공되는, IOCP를 기반으로 하는 스레드 풀을 설명하고 그 활용법에 대해 상세하게 논의한다. 그리고 비동기 입출력 기술을 활용할 수 있는 가장 대표적인 예인 비동기 소켓 입출력 활용법에 대해, 마지막으로 프로세스 간 통신(IPC) 시 비동기 입출력의 활용법에 대해 다룬다.
저자

이호동

저자이호동은연세대전자공학과를졸업하였지만,학창시절C와어셈블리언어에빠진이후계속소프트웨어개발자의길을걸어왔다.학창시절환경이무르익기전부터‘IT월간’매체에기사를연재하면서정보공유와집필욕구가싹트기시작했다.15년간직장생활을통해경험한대용량서버사이드개발,클라이언트보안및디바이스드라이버개발등을바탕으로오랜기간동안연구하고학습하여고급개발영역에서꼭필요한분야를집필하게되었다.주로어셈블리,C++,COM,C#을다룬다.저서로는『Windows시스템실행파일의구조와원리』가있다.

목차

목차
[1부]동기화
01장스레드와동기화
_1.1동기화를위한사전지식
__1.1.1프로세스
__1.1.2커널객체와핸들테이블
__1.1.3스레드
__1.1.4스레드스케줄링
_1.2스레드동기화란?
__1.2.1동기화의필요성
__1.2.2동기화의목적과방법
02장커널객체와동기화
_2.1스레드동기화API
__2.1.1스레드대기함수
__2.1.2대기함수와커널객체
_2.2데이터보호를위한동기화객체
__2.2.1뮤텍스(Mutex)
__2.2.2세마포어(Semaphore)
_2.3흐름제어를위한동기화객체
__2.3.1이벤트(Event)
__2.3.2대기가능타이머(WaitableTimer)
_2.4통지를위한추가사항고찰
__2.4.1스레드메시지큐와의연동
__2.4.2콜백함수와의결합
__2.4.3.NETBackgroundWorker클래스의구현
03장유저모드동기화
_3.1유저영역의동기화객체
__3.1.1크리티컬섹션(CriticalSection)
__3.1.2SRW-락(SlimReader-WriterLock)
__3.1.3조건변수(ConditionVariables)
_3.2상호잠금(Interlocked)API
__3.2.1상호잠금함수의사용예
__3.2.2상호잠금을이용한스핀락구현
_3.3새로운동기화수단
__3.3.1동기화장벽(SynchronizationBarrier)
__3.3.2주솟값에대한대기
__3.3.3원-타임초기화(One-TimeInitialization)
[2부]비동기입출력
04장파일,비동기입출력과IOCP
_4.1파일커널객체
__4.1.1파일생성및입출력
__4.1.2파일에대한작업
__4.1.3CreateFile을통한다른장치열기
__4.1.4동기적입출력의취소
_4.2비동기입출력의기본
__4.2.1비동기입출력을위한사전지식
__4.2.2장치또는이벤트시그널링
_4.3경보가능입출력(AlertableI/O)과APC
__4.3.1비동기프로시저호출(APC)
__4.3.2경보가능입출력의사용
__4.3.3입출력과상관없는APC의사용
_4.4입출력완료포트(IOCP)
__4.4.1IOCP의생성
__4.4.2스레드풀구성하기
__4.4.3입출력과상관없는IOCP의사용
__4.4.4IOCP내부들여다보기
__4.4.5IOCP확장함수
_4.5비동기입출력의취소
__4.5.1핸들닫기
__4.5.2취소함수
05장비동기소켓
_5.1소켓API의기본
__5.1.1동기모델의C/S
__5.1.2동기함수의비동기화
_5.2비동기소켓
__5.2.1고전적방식(select)
__5.2.2윈도우메시지(WSAAsyncSelect)
__5.2.3이벤트시그널링(WSAEventSelect)
_5.3비동기입출력이용
__5.3.1장치또는이벤트시그널링
__5.3.2경보가능입출력의사용
__5.3.3IOCP의사용
_5.4MS소켓확장API
__5.4.1확장성을위한준비
__5.4.2비동기입출력접속
__5.4.3AcceptEx함수와소켓풀
__5.4.4파일전송
06장스레드풀
_6.1스레드풀의의미와구현
_6.2윈도우2000의스레드풀
__6.2.1작업(QueueUserWorkItem)
__6.2.2대기(RegisterWaitForSingleObject)
__6.2.3타이머(CreateTimerQueueTimer)
__6.2.4입출력(BindIoCompletionCallback)
_6.3새로운스레드풀I
__6.3.1작업항목객체와스레드풀
__6.3.2작업(TP_WORK)객체
__6.3.3대기(TP_WAIT)객체
__6.3.4타이머(TP_TIMER)객체
__6.3.5입출력(TP_IO)객체
__6.3.6콜백인스턴스사용하기
_6.4새로운스레드풀II
__6.4.1스레드풀객체
__6.4.2콜백환경객체
__6.4.3정리그룹객체
07장IPC와비동기입출력
_7.1IPC를위한준비작업
__7.1.1프로세스의생성
__7.1.2커널객체의공유
__7.1.3프로세스간데이터공유
_7.2서비스와커널객체보안
__7.2.1윈도우서비스의기본
__7.2.2서비스와접근제어
__7.2.3서비스에서의프로세스생성
_7.3메모리매핑파일
__7.3.1MMF의의미와사용
__7.3.2공유메모리
__7.3.3서비스에서의MMF사용
_7.4파이프
__7.4.1파이프소개
__7.4.2파이프의사용
__7.4.3서비스에서의파이프사용

출판사 서평

출판사서평
이책은동기ㆍ비동기입출력관점에서윈도우시스템프로그래밍을하는방법을다룬다.크게1부와2부로나누어1부에서는동기화객체와관련함수,스레드를통해스레드동기화를구현하는다양한?방법을다룬다.2부에서는OVERLAPPED구조체를이용한비동기또는중첩입출력,그리고이와관련된IOCP,비동기소켓,쓰레드풀에대하여설명하고IPC에활용하는방법을다룬다.실무에유용한함수230여개와샘플코드224개를제시하고있어윈도우개발자라면누구나소장해야하는최고의실전바이블이다.‘한빛미디...
이책은동기ㆍ비동기입출력관점에서윈도우시스템프로그래밍을하는방법을다룬다.크게1부와2부로나누어1부에서는동기화객체와관련함수,스레드를통해스레드동기화를구현하는다양한방법을다룬다.2부에서는OVERLAPPED구조체를이용한비동기또는중첩입출력,그리고이와관련된IOCP,비동기소켓,쓰레드풀에대하여설명하고IPC에활용하는방법을다룬다.실무에유용한함수230여개와샘플코드224개를제시하고있어윈도우개발자라면누구나소장해야하는최고의실전바이블이다.‘한빛미디어ITEXPERT시리즈’첫번째리뉴얼도서인『윈도우시스템프로그램을구현하는기술』은여러분을윈도우시스템프로그래밍전문가로이끌어줄것이다.
출판사리뷰
★이책의특징
이책은동기ㆍ비동기입출력관점에서윈도우시스템프로그래밍을하는방법을다루고있다.이책은크게1부와2부로나뉘며,1부는비동기입출력을알아보기전에비동기입출력의전제가되는스레드와동기화,동기화의요소가되는윈도우객체및관련함수,그리고스레드동기화를구현하는다양한방법들에대해예제를통해상세하게설명한다.2부에서는본격적으로비동기입출력또는중첩입출력에대해설명한다.OVERLAPPED구조체를통해수행되는비동기입출력의세가지패턴(파일핸들시그널방식,APC와경보가능대기방식,IOCP방식)을설명하고가장핵심이되는입출력완료포트(IOCP)에대해상세하게논의한다.또한,윈도우에서확장성과성능향상을위해제공되는,IOCP를기반으로하는스레드풀을설명하고그활용법에대해상세하게논의한다.그리고비동기입출력기술을활용할수있는가장대표적인예인비동기소켓입출력활용법에대해,마지막으로프로세스간통신(IPC)시비동기입출력의활용법에대해다룬다.
_1장.스레드와동기화
스레드동기화에필요한윈도우시스템요소와동기화의개념및그필요성에대해설명한다.
_2장.커널객체와동기화
윈도우에서제공하는동기화대기함수들과동기화전용커널객체들을상세하게설명한다.또한흔히간과하고있는스레드또는윈도우메시지에대해서도그유용성과활용법을동기화와연결해설명한다.
_3장.유저모드동기화
동기화의또다른수단인유저모드에서제공되는기존의다양한동기화객체들과상호잠금함수에대해살펴보고,윈도우8에서새롭게제공되는‘동기화장벽’동기화객체와‘주소값대기’동기화함수에대해상세하게설명한다.
_4장.파일,비동기입출력과IOCP
비동기입출력의기본대상이되는파일의다양한의미와그동기적사용법에대해설명한다.그리고비동기입출력의세가지패턴인‘파일핸들시그널방식’,‘APC와경보가능대기방식’,그리고이책의핵심인‘IOCP를이용하는방식’에대해상세하게설명한다.
_5장.비동기소켓
비동기입출력을응용할수있는대표적인커널객체인소켓을비동기입출력응용에초점을맞춰설명한다.
_6장.스레드풀
윈도우2000에서소개된스레드풀과비스타에서대폭개선된새로운스레드풀에대해상세하게설명한다.스레드풀의의미와구조,사용법및다양한응용을예제를통해서논의한다.
_7장.IPC와비동기입출력
윈도우에서프로세스사이에서서로데이터를교환하기위한메커니즘으로프로세스간통신(IPC)에대해상세하게논의하고,IPC와비동기입출력의연동에대해설명한다.
★이책의독자층
이책은윈도우시스템개발자를대상으로한다.기본적으로는동기화의개념을조금이라도알고윈도우시스템개발경험이있다면어렵지않게볼수있을것이다.동기화와윈도우시스템에대한기본적인내용부터다루고쉽게풀어설명하고있어서중고급개발자는물론이고초급개발자도충분히이해할수있을것이다.
추천평
“이책은프로그래밍을하다보면반드시필요하게되는동기화및비동기처리에대한내용을일관된흐름으로기술합니다.이점이바로다른윈도우프로그래밍서적과의차별화된장점이라고생각합니다.또한각각의기술을단순히설명만하는게아니라해당기술이왜필요한지,어떤상황에사용하면좋은지,문제점이나단점은무엇인지를알려주고,예전기술로해결하는방법과새로운기술로해결하는방법을단계적으로설명함으로써좀더깊이있는이해를돕습니다.”
_강상욱,시큐어플랫폼즈테크놀로지연구소팀장
“이책은스레드간메시지및데이터동기화를왜해야되는지에대한필요성부터동기화방법및MS차세대동기화수단등을샘플코드와함께자세하고체계적으로설명해이해를돕습니다.아울러문제해결을위한여러방법을함께제시하고있어서이예제를확장하여실제상황에적용한다면상당한도움이될것입니다.”
_김형민,UBIVELOX솔루션개발부그룹장