이미지 검색을 사용해 보세요
검색창 이전화면 이전화면
최근 검색어
인기 검색어

소득공제
Win32 멀티스레드 프로그래밍
CD 1
애런 코헨 등저 / 김기정 역
한빛미디어 2001.03.31.
가격
32,000
10 28,800
YES포인트?
1,600원 (5%)
5만원 이상 구매 시 2천원 추가 적립
결제혜택
카드/간편결제 혜택을 확인하세요

이미 소장하고 있다면 판매해 보세요.

  •  해외배송 가능?
  •  문화비소득공제 가능

책소개

목차

1. 소개
멀티스레드 프로그래밍이란 무엇인가?
왜 멀티스레드 프로그램을 작성하는가?
스레드를 사용하면 안 되는 경우
멀티스레드 프로그래밍으로 넘어가기

2. 스레드 스케줄링과 기본 개념
스레드 스캐줄링
멀티스레드 프로그래밍 개념

3. 프로세스와 스레드 API
커널 객체
프로세스
스레드 역학
프로세스 수명에 대한 재조명

4. 스레드 동기화 방법
Interlocked 함수
임계 영역
WaitForSingleObject와 WaitForMultipleObjects 함수
뮤텍스
세마포어
이벤트

5. 스레드간 통신
공유 메모리와 메모리 맵 파일
익명 파이프
스레드와 메시지 처리
MsgWaitForMultipleObjects 함수

6. Mcl: 멀티스레드 프로그래밍을 위한 C++ 클래스 라이브러리
CMcl 라이브러리 클래스 계층도
CMcl 클래스 라이브러리 구현

7. Mcl: 상위 레벨 클래스
CMclShreadMemory
CMclLinkedLists
CMclMailBox
CMclMonitor
CMcl 클래스 라이브러리를 위한 Makefile

8. 기초적 스레드 동기화
자원의 상호 배제
단일 허용 관문
경계적 대기
제한된 자원에 대한 경쟁
생산자와 소비자 문제의 변형

9. 고급 캡슐화 기법
객체와 스레드 동기화
스레드 로컬 저장소

10. 고급 스레드 관리 기법
요구에 따른 스레드
스레드 풀

11. 멀티스레드 프로그램에서의 DLL
32비트 DLL의 상세 분석과 의미 구조
DllMain 함수
함수와 데이터의 익스포팅
함수와 데이터의 임포팅
신중한 형태의 DLL을 구현하기
DLL에서의 정적 C++ 객체와 전역 C++ 객체

12. 멀티스레드 사용자 인터페이스와 MFC
Win32 윈도우 시스템의 기본 구조
멀티스레드 프로그램과 사용자 인터페이스
왜 MFC를 사용하는가?
멀티스레드 프로그램에서 MFC 사용하기
MFC 프로그램에서 Mcl 사용하기
Mcl4Mfc 클래스 라이브러리

13. 기초적인 멀티스레드 GUI 설계
세 가지 기본 디자인 패턴
스스로 움직이는 컨트롤
식사하는 철학자 문제의 애니메이션을 이용한 시뮬레이션
자발적인 다이알로그 박스

14. 구조적 예외 처리
구조적 예외 처리의 개요
구조적 예외 처리의 일반적인 사용 예
예외 처리를 위한 전략
C++ 와 구조적 예외 처리의 활용

15. 멀티스레드 프로그램 디버깅
병렬적으로 사고하기
하이젠버그 불확실성 원리
코드를 단계별로 흝어라
비주얼 C++ 스레드와 콜스택 윈도우 사용하기
어떤 것이 주 스레드인가?
어떤 스레드를 디버깅하는지 파악해라
디버깅하는 동안 발생하는 문맥 교환에 주의해라
시간은 디버거 안에서도 기다리지 않는다
어떤 스레드가 어떤 윈도우를 소유하고 있는지 파악해라
OutputDebugString을 사용해라
메모리를 나눠라

저자 소개

저자 : 애런 마이클 코헨
1977년 취미로 RCA 1802라는 단일 보드 마이크로 컴퓨터로 컴퓨터 프로그래밍을 시작했고, 1980년대 초반 의과대학에 다니면서 Atari 800, 매킨토시, IBM PC와 같은 여러 환경의 컴퓨터 플래폼을 다루어 보았다. 자신이 프로그래밍에 재능이 있다는 사실을 깨달은 그는 의대를 떠나서 소프트웨어 개발 분야에서 자신의 경력을 쌓기로 결심했다. 첫 직업으로 컴퓨터에 기반한 고해상도의 이미지와 비디오 압축을 요구하는 의학 영상에 관련된 일을 하였다. 현재 그는 인텔에서 윈도우 95와 NT를 사용해서 화상 회의 시스템을 개발하는 작업을 하고 있다. 애런은 공학에 관련된 지식이 있으며, 미시건 대학에서 위학 박사 학위를 취득하였다.
역자 : 김기정
1998년 서울대학교 전기공학부를 졸업했고, 현재는 서울대학교 의료 전자 연구실 박사 과정 중에 있다. 자바 가상 머신(JVM) Kaffe포팅과 초음파 진단기용 임베디드 파일시스템(VFAT)을 구축하는 프로젝트와 JVM Kaffe를 Arx 운영체제에 포팅, GE사의 초음파 진단기용 임베디드 파일시스템(VFAT)을 구축하는 프로젝트를 수행하였다.
저자 : 마이크 우드링
윈도우 3.0 시절부터 인텔 플랫폼에서 디바이스 드라이버, DLL, 윈도우 애플리케이션을 프로그래밍했다. 인텔의 소프트웨어 시스템 선임 연구원으로 있을 때 전화, 인터넷, 화상 회의 기능이 있는 제품을 위해서 C++로 실시간 ISDN 통신 소프트웨어를 개발했다. 현재 마이크는 독립적으로 컨설팅 업무를 하고 있으며 Win32 프로그래밍을 가르치고 있다. 마이크는 몬타나 주립대학에서 컴퓨터공학과 학사 학위를 취득하였다.

품목정보

발행일
2001년 03월 31일
쪽수, 무게, 크기
808쪽 | 1639g | 크기확인중
ISBN13
9788979141009

책 속으로

WIn32 플랫품에서 프로세스란 자신만의 4기가바이트의 주소 공간을 갖는 단위를 의미한다. 하위 2기가바이트는 순수하게 프로세스만 할당되는 영역이며, 여기에는 애플리케이션의 실행 이미지(.EXE 파일)의 코드와 데이터가 포함되고, 또한 애플리케이션이 사용하는 동적 연결 라이브러리(DLL)가 포함된다. 상위 2기가바이트에는 시스템 코드, 공유 시스템 DLL, 프로세스 사이에 공유되는 코드와 데이터가 위치한다. 운영체제는 프로세스에 대한 다른 정보들도 유지해 나간다. 예를 들면, 현재 어떤 코드와 데이터가 RAM에 있는지, 보안 속성은 어떠한지, 접근 권한, 커널 객체 레퍼런스, 자원의 쿼터(quota) 설정 등이 운영체제에 의해서 유지된다. 물론 이런 정보는 기록을 위한 것이며, 실제로 수행되는 것은 아니다.

실제로 프로세스가 어떤 일을 하기 위해서는 적어도 하나의 스레드가 포함되어야 한다. 스레드는 프로세스 안에서 자신만의 스택과 운영체제에 의해서 스케쥴링되는 CPU 시간을 할당받는 수행의 단위이다. 프로세스는 동시에 수행하는 하나 이상의 스레드를 가질 수 있으며 이런 스레드는 스레드를 포함하고 있는 프로세스의 주소 공간의 문맥(context)안에서 수행된다. 즉 하나의 프로세스 안에 존재하는 모든 스레드는 메모리의 같은 주소에 있는 데이터에 대해서 동일한 값을 얻게 된다. 스레드에 의해서 코드의 수행이 점진적으로 이루어지고 데이터를 수정하며, 바람직한 경우에는 쓸만한 결과를 내면서 진행이 이루어지게 된다.

Win 32 API를 사용해서 멀티스레드 애플리케이션을 작성하는 기법에 대해서 이야기하기 전에 먼저 운영체제가 스레드를 어떻게 다루는지에 대해서 살펴보도록 한다. 모든 종류의 멀티태스킹 운영체제의 가장 중심 부분은 스케줄러(scheduler)이다. 스케줄러의 역할은 주어진 시간 동안에 CPU에서 어떤 스레드를 동작하게 할지를 결정하는 것이다. 하나의 CPU가 있는 시스템에서는 실제로 어떤 경우라도 하나의 스레드만이 동작할 수 있다. 따라서 운영체제는 사용자에게 멀티테스킹(multitasking, 다수의 프로세스나 스레드가 동시에 동작하는 것)이 되는 것처럼 보여주기 위해서 시스템에서 동작할 스레드를 선택하고, 스레드가 동작하기 위해 필요한 것들을 준비한 후에 잠깐 동안 스레드를 동작시킨다. 잠시 후에 운영체제는 다시 시스템의 제어권(control)을 얻게 되고(이 과정에 대해서는 뒤에서 자세하게 설명한다), 어떤 스레드를 다음에 동작시킬지 결정한 후에 선택한 스레드를 동작시켜서 또 다시 여러 가지 일을 처리하게 한다. 운영체제의 스케줄러가 갖는 목표는 CPU를 가장 효율적으로 사용해서 컴퓨터의 성능을 최대한으로 발휘하게 하는 것이다. 운영체제가 위와 같은 결정을 내리는 과정은 스케줄링 정책(policy)에 의해서 이루어지며, 이것은 운영체제의 두뇌에 해당된다고 할 수 있다.

--- p.32

리뷰/한줄평4

리뷰

6.8 리뷰 총점

한줄평

첫번째 한줄평을 남겨주세요.