본문 바로가기

리디 접속이 원활하지 않습니다.
강제 새로 고침(Ctrl + F5)이나 브라우저 캐시 삭제를 진행해주세요.
계속해서 문제가 발생한다면 리디 접속 테스트를 통해 원인을 파악하고 대응 방법을 안내드리겠습니다.
테스트 페이지로 이동하기

윈도우 시스템 프로그램을 구현하는 기술 상세페이지

컴퓨터/IT 개발/프로그래밍

윈도우 시스템 프로그램을 구현하는 기술

IT EXPERT
소장종이책 정가50,000
전자책 정가30%35,000
판매가35,000
윈도우 시스템 프로그램을 구현하는 기술 표지 이미지

윈도우 시스템 프로그램을 구현하는 기술작품 소개

<윈도우 시스템 프로그램을 구현하는 기술>

이 책은 동기·비동기 입출력 관점에서 윈도우 시스템 프로그래밍을 하는 방법을 다룬다. 크게 1부와 2부로 나누어 1부에서는 동기화 객체와 관련 함수, 스레드를 통해 스레드 동기화를 구현하는 다양한 방법을 다룬다. 2부에서는 OVERLAPPED 구조체를 이용한 비동기 또는 중첩 입출력, 그리고 이와 관련된 IOCP, 비동기 소켓, 쓰레드 풀에 대하여 설명하고 IPC에 활용하는 방법을 다룬다. 실무에 유용한 함수 230여 개와 샘플 코드 224개를 제시하고 있어 윈도우 개발자라면 누구나 소장해야 하는 최고의 실전 바이블이다. ‘한빛미디어 IT EXPERT 시리즈’ 첫 번째 리뉴얼 도서인 『윈도우 시스템 프로그램을 구현하는 기술』은 여러분을 윈도우 시스템 프로그래밍 전문가로 이끌어 줄 것이다.


【이 책의 특징】
이 책은 동기·비동기 입출력 관점에서 윈도우 시스템 프로그래밍을 하는 방법을 다루고 있다. 이 책은 크게 1부와 2부로 나뉘며, 1부는 비동기 입출력을 알아보기 전에 비동기 입출력의 전제가 되는 스레드와 동기화, 동기화의 요소가 되는 윈도우 객체 및 관련 함수, 그리고 스레드 동기화를 구현하는 다양한 방법들에 대해 예제를 통해 상세하게 설명한다. 2부에서는 본격적으로 비동기 입출력 또는 중첩 입출력에 대해 설명한다. OVERLAPPED 구조체를 통해 수행되는 비동기 입출력의 세 가지 패턴(파일 핸들 시그널 방식, APC와 경보 가능 대기 방식, IOCP 방식)을 설명하고 가장 핵심이 되는 입출력 완료 포트(IOCP)에 대해 상세하게 논의한다. 또한, 윈도우에서 확장성과 성능 향상을 위해 제공되는, IOCP를 기반으로 하는 스레드 풀을 설명하고 그 활용법에 대해 상세하게 논의한다. 그리고 비동기 입출력 기술을 활용할 수 있는 가장 대표적인 예인 비동기 소켓 입출력 활용법에 대해, 마지막으로 프로세스 간 통신(IPC) 시 비동기 입출력의 활용법에 대해 다룬다.


【이 책의 독자층】
이 책은 윈도우 시스템 개발자를 대상으로 한다. 기본적으로는 동기화의 개념을 조금이라도 알고 윈도우 시스템 개발 경험이 있다면 어렵지 않게 볼 수 있을 것이다. 동기화와 윈도우 시스템에 대한 기본적인 내용부터 다루고 쉽게 풀어 설명하고 있어서 중고급 개발자는 물론이고 초급 개발자도 충분히 이해할 수 있을 것이다.


저자 프로필

이호동

  • 학력 연세대학교 전자공학과
  • 경력 노틸러스 효성 Win32 시스템 관련 및 .NET 기반 솔루션 개발 담당 과장

2016.06.03. 업데이트 작가 프로필 수정 요청


저자 소개

연세대 전자공학과를 졸업하였지만 학창시절 C와 어셈블리어에 빠진 이후 계속 소프트웨어 개발자의 길을 걷고 있다. 96년 IT 환경이 무르익기 전부터 IT 월간매체에 기사를 연재하면서 그의 정보공유와 집필 욕구가 싹트기 시작했다. 그것도 쉬운 주제가 아니라 자신이 학습하면서 막혔던 분야를 선택하여 오랜 기간 연구와 학습이 병행되면서도 고급 개발 영역에서 꼭 필요한 분야를 집필하게 된다. 이 책에 저자가 평소 하고 싶었던 말("나는 창조적 코더이고 싶었다")을 머리말로 세우며 마침표를 찍고 4년 여 동안의 오랜 집필 여정의 결실을 맺게 된다. 주로 다루는 언어는 어셈블리, C++, COM, C#이며, 현재 "노틸러스 효성"에서 Win32 시스템 관련 및 .NET 기반 솔루션 개발 담당 과장을 맡고 있으며 또 어떤 연구를 위해 숱한 밤을 새울지 기대된다.

목차

[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 대기가능 타이머(Waitable Timer)
2.4 통지를 위한 추가사항 고찰
2.4.1 스레드 메시지 큐와의 연동
2.4.2 콜백 함수와의 결합
2.4.3 .NET BackgroundWorker 클래스의 구현

03장 유저 모드 동기화
3.1 유저 영역의 동기화 객체
3.1.1 크리티컬 섹션(Critical Section)
3.1.2 SRW-락(Slim Reader-Writer Lock)
3.1.3 조건 변수(Condition Variables)
3.2 상호잠금(Interlocked) API
3.2.1 상호잠금 함수의 사용 예
3.2.2 상호잠금을 이용한 스핀락 구현
3.3 새로운 동기화 수단
3.3.1 동기화 장벽(Synchronization Barrier)
3.3.2 주솟값에 대한 대기
3.3.3 원-타임 초기화(One-Time Initialization)


[2부] 비동기 입출력

04장 파일, 비동기 입출력과 IOCP
4.1 파일 커널 객체
4.1.1 파일 생성 및 입출력
4.1.2 파일에 대한 작업
4.1.3 CreateFile을 통한 다른 장치 열기
4.1.4 동기적 입출력의 취소
4.2 비동기 입출력의 기본
4.2.1 비동기 입출력을 위한 사전 지식
4.2.2 장치 또는 이벤트 시그널링
4.3 경보가능 입출력(Alertable I/O)과 APC
4.3.1 비동기 프로시저 호출(APC)
4.3.2 경보가능 입출력의 사용
4.3.3 입출력과 상관없는 APC의 사용
4.4 입출력 완료 포트(IOCP)
4.4.1 IOCP의 생성
4.4.2 스레드 풀 구성하기
4.4.3 입출력과 상관없는 IOCP의 사용
4.4.4 IOCP 내부 들여다보기
4.4.5 IOCP 확장 함수
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.3 IOCP의 사용
5.4 MS 소켓 확장 API
5.4.1 확장성을 위한 준비
5.4.2 비동기 입출력 접속
5.4.3 AcceptEx 함수와 소켓 풀
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.1 IPC를 위한 준비 작업
7.1.1 프로세스의 생성
7.1.2 커널 객체의 공유
7.1.3 프로세스 간 데이터 공유
7.2 서비스와 커널 객체 보안
7.2.1 윈도우 서비스의 기본
7.2.2 서비스와 접근 제어
7.2.3 서비스에서의 프로세스 생성
7.3 메모리 매핑 파일
7.3.1 MMF의 의미와 사용
7.3.2 공유 메모리
7.3.3 서비스에서의 MMF 사용
7.4 파이프
7.4.1 파이프 소개
7.4.2 파이프의 사용
7.4.3 서비스에서의 파이프 사용


리뷰

구매자 별점

4.7

점수비율
  • 5
  • 4
  • 3
  • 2
  • 1

6명이 평가함

리뷰 작성 영역

이 책을 평가해주세요!

내가 남긴 별점 0.0

별로예요

그저 그래요

보통이에요

좋아요

최고예요

별점 취소

구매자 표시 기준은 무엇인가요?

'구매자' 표시는 리디에서 유료도서 결제 후 다운로드 하시거나 리디셀렉트 도서를 다운로드하신 경우에만 표시됩니다.

무료 도서 (프로모션 등으로 무료로 전환된 도서 포함)
'구매자'로 표시되지 않습니다.
시리즈 도서 내 무료 도서
'구매자’로 표시되지 않습니다. 하지만 같은 시리즈의 유료 도서를 결제한 뒤 리뷰를 수정하거나 재등록하면 '구매자'로 표시됩니다.
영구 삭제
도서를 영구 삭제해도 ‘구매자’ 표시는 남아있습니다.
결제 취소
‘구매자’ 표시가 자동으로 사라집니다.

이 책과 함께 구매한 책


이 책과 함께 둘러본 책



본문 끝 최상단으로 돌아가기

spinner
모바일 버전