도서/책가격비교 노란북
 
노란비디오
추천도서 베스트셀러 많이 본 책 신간도서 서점이벤트 재정가도서 통합가격비교
데이터 마이닝 개념과 기법
9788960777026
45,000원
인공지능 세트
9791185890470
64,800원
마인크래프트 공략집
9788993784268
16,200원
된다! 김메주의 유튜브 영상 만들기
9791188612956
14,400원
AutoCAD 오토캐드 2017
9791187640004
23,850원
ASP 웹프로그래밍
9788984680760
15,300원
파이썬 라이브러리 레시피
9788965401261
22,500원
9788956744513 2,023
C++ 병렬.분산 프로그래밍 - 칠판 구조와 다중 에이전트 시스템 위주의
국내도서 > 컴퓨터/모바일 > 프로그래밍 언어

C++ 병렬.분산 프로그래밍 - 칠판 구조와 다중 에이전트 시스템 위주의

Cameron Hughes, Tracey Hughes 지음, 류광 옮김
2008년 11월 19일 출간 정가 30,000원 페이지 795 Page

제1장 동시적 프로그래밍의 즐거움
1.1 동시성이란 무엇인가?
1.1.1 동시성 달성을 위한 기본적인 접근방식 두 가지
1.2 병렬 프로그래밍의 이점
1.2.1 가장 단순한 병렬 모형: PRAM
1.2.2 가장 간단한 병렬 분류법
1.3 분산 프로그래밍의 이점
1.3.1 가장 단순한 분산 프로그래밍 모형
1.3.2 다중 에이전트(동위간) 분산 모형
1.4 필요한 최소의 노력
1.4.1 분해
1.4.2 통신
1.4.3 동기화
1.5 소프트웨어 동시성의 기본 계층들
1.5.1 명령 수준의 동시성
1.5.2 루틴 수준의 동시성
1.5.3 객체 수준의 동시성
1.5.4 응용프로그램의 동시성
1.6 C++은 병렬성을 위한 키워드를 제공하지 않는다
1.6.1 C++로 병렬성을 구현하는 데 사용할 수 있는 수단들
1.6.2 MPI 표준
1.6.3 PVM: 클러스터 프로그래밍의 한 표준
1.6.4 CORBA 표준
1.6.5 표준에 기초한 라이브러리 구현들
1.7 병렬 및 분산 프로그래밍을 위한 프로그래밍 환경들
요약 - 동시성을 향해

제2장 병렬 및 분산 프로그래밍의 어려움
2.1 패러다임의 대전환
2.2 중재 문제
2.3 하드웨어가 고장나거나 소프트웨어가 종료되기도 한다
2.4 과도한 병렬화나 분산이 부정적인 결과를 내기도 한다
2.5 적합한 아키텍처를 선택하려면 연구가 필요하다
2.6 다른 종류의 검사 및 디버깅 기법들이 필요하다
2.7 병렬 또는 분산 설계의 의사소통이 필요하다
요약

제3장 C++ 프로그램을 여러 개의 태스크들로 분할하기
3.1 프로세스의 정의
3.1.1 두 종류의 프로세스
3.1.2 프로세스 제어 블록
3.2 프로세스의 해부
3.3 프로세스 상태
3.4 프로세스 스케줄링
3.4.1 스케줄링 정책
3.4.2 ps 유틸리티 사용법
3.4.3 프로세스 우선순위 설정 및 조회
3.5 문맥 전환
3.6 프로세스 생성
3.6.1 프로세스들의 부모-자식 관계
3.6.1.1 pstree 유틸리티
3.6.2 시스템 함수 fork()
3.6.3 exec류 시스템 함수들
3.6.3.1 execl() 함수들
3.6.3.2 execv() 함수들
3.6.3.3 exec()류 함수들에 대한 제약 파악
3.6.3.4 환경 변수 읽고 쓰기
3.6.4 system() 함수로 프로세스 생성하기
3.6.5 POSIX 함수들로 프로세스 생성하기
3.6.6 프로세스 관리 함수들로 부모 및 자식 프로세스 식별하기
3.7 프로세스 종료하기
3.7.1 시스템 함수 exit(), kill(), abort()
3.8 프로세스 자원
3.8.1 자원의 종류
3.8.2 자원 한계를 설정하는 POSIX 함수들
3.9 비동기 프로세스와 동기 프로세스
3.9.1 fork(), exec(), system(), posix_spawn() 함수를 이용한 동기 및 비동기 프로세스 생성
3.9.2 wait() 함수 호출
3.10 프로그램을 여러 태스크들로 분할하기
3.10.1 함수 또는 객체에 의한 프로세스 생성
요약

제4장 C++ 프로그램을 여러 개의 스레드들로 분할하기
4.1 스레드의 정의
4.1.1 스레드 문맥 요구사항
4.1.2 스레드와 프로세스의 비교
4.1.2.1 주소 공간 공유
4.1.2.2 다른 스레드의 제어
4.1.3 스레드의 장점
4.1.3.1 좀 더 가벼운 문맥 전환
4.1.3.2 더 나은 산출량
4.1.3.3 동시에 수행되는 부분들 사이의 좀 더 간단한 의사소통
4.1.3.4 프로그램 구조의 단순화
4.1.4 스레드의 단점
4.1.4.1 스레드는 프로세스의 자료를 망치기 쉽다
4.1.4.2 잘못된 스레드 하나가 프로그램 전체를 죽일 수 있다
4.1.4.3 스레드는 다른 프로그램에서 재사용할 수 없다
4.2 스레드의 해부
4.2.1 스레드 특성들
4.3 스레드 스케줄링
4.3.1 스레드 상태
4.3.2 스케줄링과 스레드 경쟁 범위
4.3.3 스케줄링 정책과 우선순위
4.3.3.1 스레드 우선순위의 변경
4.4 스레드 자원
4.5 스레드 모형
4.5.1 위임 모형
4.5.2 동급간 모형
4.5.3 파이프라인 모형
4.5.4 생산자-소비자 모형
4.5.5 스레드 모형의 SPMD와 MPMD
4.6 Pthreads 라이브러리 소개
4.7 간단한 다중 스레드 프로그램의 해부
4.7.1 다중 스레드 프로그램의 컴파일과 링크
4.8 Pthreads 라이브러리로 스레드 만들기
4.8.1 스레드 ID 얻기
4.8.2 스레드 결합
4.8.3 탈착된 스레드 생성
4.8.4 Pthreads 특성 객체
4.8.4.1 Pthreads 특성 객체를 이용해서 탈착된 스레드 만들기
4.9 스레드 관리
4.9.1 스레드의 종료
4.9.1.1 취소 지점
4.9.1.2 종료 이전의 마무리 작업
4.9.2 스레드 스택 관리
4.9.3 스레드 스케줄링 정책과 우선순위 설정
4.9.3.1 스레드의 경쟁 범위 설정
4.9.4 sysconf() 함수
4.9.5 임계 영역의 관리
4.10 스레드 안전성과 라이브러리
4.11 프로그램을 여러 스레드들로 분할하기
4.11.1 위임 모형
4.11.2 동급간 모형
4.11.3 파이프라인 모형
4.11.4 생산자-소비자 모형
4.11.5 다중 스레드 객체 만들기
요약

제5장 동시에 수행되는 태스크들의 동기화
5.1 수행 순서의 중재
5.1.1 동기화되는 태스크들 사이의 관계
5.1.2 시작-시작 관계
5.1.3 완료-시작 관계
5.1.4 시작-완료 관계
5.1.5 완료-완료 관계
5.2 자료 접근의 동기화
5.2.1 PRAM 모형
5.2.1.1 동시 및 독점 메모리 접근
5.3 세마포와 동기화 메커니즘들
5.3.1 세마포 연산
5.3.2 뮤텍스 세마포
5.3.2.1 뮤텍스 특성 객체
5.3.2.2 뮤텍스 세마포를 이용한 임계 영역 보호
5.3.3 읽기-쓰기 자물쇠
5.3.3.1 읽기-쓰기 자물쇠를 이용한 접근 정책 구현
5.3.4 조건 변수
5.3.4.1 조건 변수를 이용한 동기화 관계의 관리
5.4 동기화: 객체지향적 접근
요약

제6장 PVM을 이용한 C++ 병렬 프로그래밍
6.1 PVM이 지원하는 고전적인 병렬성 모형들
6.2 C++용 PVM 라이브러리
6.2.1 C++/PVM 프로그램의 컴파일과 링크
6.2.2 PVM 프로그램을 독립적으로 실행
6.2.2.1 PVM 콘솔로 PVM 프로그램을 실행
6.2.2.2 XPVM을 이용해서 PVM 프로그램을 실행
6.2.3 PVM의 운용에 필요한 설정 사항들
6.2.4 C++ 런타임 라이브러리와 PVM 라이브러리의 결합
6.2.5 PVM 태스크들의 구성
6.2.5.1 PVM과 C++을 이용한 SPMD(SIMD) 모형의 구현
6.2.5.2 PVM과 C++을 이용한 MPMD(MIMD) 모형의 구현
6.3 PVM의 기본적인 작동 방식
6.3.1 프로세스 관리 및 제어 함수들
6.3.2 메시지 포장과 전송
6.4 PVM 태스크에서 표준 입력(stdin)과 표준 출력(stdout) 사용하기
6.4.1 자식 태스크의 표준 출력 가로채기
요약

제7장 오류 처리, 예외, 소프트웨어 신뢰성
7.1 소프트웨어 신뢰성이란?
7.2 소프트웨어 계층들과 하드웨어 구성요소들의 실패
7.3 결함의 정의는 소프트웨어 명세에 따라 다르다
7.4 결함과 예외의 구분
7.5 소프트웨어 신뢰성을 위한 간단한 계획 하나
7.5.1 계획 A: 재개 모형, 계획 B: 종료 모형
7.6 오류 처리에서 map 객체 활용하기
7.7 C++의 예외 처리 메커니즘
7.7.1 C++ 표준 예외 클래스
7.7.1.1 runtime_error 클래스들
7.7.1.2 logic_error 클래스들
7.7.1.3 새 예외 클래스의 파생
7.7.1.4 예외 클래스가 예외를 던지지 않게 하는 방법
7.8 사건 다이어그램, 논리 표현식, 논리 다이어그램
요약

제8장 C++을 이용한 분산 객체지향 프로그래밍
8.1 작업의 분해 및 캡슐화
8.1.1 분산 객체들 사이의 통신
8.1.2 지역 객체와 원격 객체의 상호작용 동기화
8.1.3 분산 환경에서의 오류 및 예외 처리
8.2 다른 주소 공간에 있는 객체에 접근하기
8.2.1 원격 객체에 대한 IOR 접근
8.2.2 ORB
8.2.3 IDL과 CORBA 객체
8.3 기본적인 CORBA 소비자 프로그램의 해부
8.4 CORBA 생산자 프로그램의 해부
8.5 CORBA 응용프로그램의 기본 청사진
8.5.1 IDL 컴파일러
8.5.2 원격 객체의 IOR 얻기
8.6 명명 서비스
8.6.1 명명 서비스 활용 및 명명 문맥의 생성
8.6.2 명명 서비스 소비자/클라이언트
8.7 객체 적응자
8.8 구현 저장소와 인터페이스 저장소
8.9 CORBA를 이용한 간단한 분산 웹 서비스
8.10 교역 서비스
8.11 클라이언트/서버 패러다임
요약

제9장 템플릿과 MPI를 이용한 SPMD와 MPMD
9.1 MPI를 위한 작업 분할 구조
9.1.1 등급에 따른 태스크 차별화
9.1.2 통신자를 기준으로 한 태스크 그룹 분류
9.1.3 MPI 태스크의 해부
9.2 템플릿 함수를 이용한 MPI 태스크 구현
9.2.1 템플릿을 이용해서 서로 다른 형식의 자료를 다루는 SPMD 구현
9.2.2 다형성을 이용한 MPMD의 구현
9.2.3 함수 객체를 이용한 MPMD 구현
9.3 MPI 통신의 단순화
9.3.1 MPI 통신을 위한 <<, >> 연산자의 중복적재
요약

제10장 동시·분산 시스템 설계의 시각화
10.1 구조의 시각화
10.1.1 클래스와 객체
10.1.1.1 특성과 서비스 명세
10.1.1.2 특성과 서비스의 순서
10.1.1.3 템플릿 클래스
10.1.2 클래스와 객체의 관계 표현
10.1.2.1 인터페이스 클래스
10.1.3 상호작용적인 객체들의 조직화
10.2 동시적 행동의 시각화
10.2.1 협동 객체
10.2.1.1 프로세스와 스레드
10.2.1.2 다수의 제어 흐름들과 통신들의 표현
10.2.2 객체들 사이의 메시지 시퀀스
10.2.3 객체의 활동
10.2.4 상태기계
10.2.4.1 동시적인 하위상태들
10.2.5 배치 다이어그램
10.3 시스템 전체의 시각화
10.3.1 시스템 배치의 시각화
10.3.2 시스템 아키텍처의 시각화
요약

제11장 동시성을 지원하는 구성요소의 설계
11.1 인터페이스 클래스의 활용
11.2 객체지향적 뮤텍스와 인터페이스 클래스
11.2.1 동시성을 지원하는 덜 두터운 인터페이스
11.3 스트림 비유의 유지
11.3.1 PVM 스트림에 대한 <<, >> 연산자의 중복적재
11.4 PVM 스트림에 사용할 사용자 정의 클래스의 설계
11.5 저수준 구축 요소로서의 객체지향적 파이프와 FIFO
11.5.1 파일 서술자를 이용해서 파이프를 iostream 객체에 붙이기
11.5.2 ostream_iterator를 이용한 익명 파이프 접근
11.5.3 FIFO(명명된 파이프), iostream, ostream_iterator 클래스들
11.5.3.1 FIFO 인터페이스 클래스
11.6 동시성을 지원하는 프레임워크 클래스 구성요소
요약

제12장 에이전트 지향적 아키텍처의 구현
12.1 에이전트란 무엇인가?
12.1.1 에이전트의 첫 번째 정의
12.1.2 에이전트의 종류
12.1.3 객체와 에이전트의 차이
12.2 에이전트 지향적 프로그래밍이란 무엇인가?
12.2.1 분산 프로그래밍에서 에이전트가 유용한 이유
12.2.2 에이전트와 병렬 프로그래밍
12.3 에이전트의 기본 구성요소
12.3.1 인지적 자료구조
12.3.1.1 추론 메서드
12.4 C++로 에이전트 구현하기
12.4.1 명제 자료형식과 믿음 자료구조
12.4.2 에이전트 클래스
12.4.2.1 에이전트 루프
12.4.2.2 에이전트의 추론 메서드
12.4.3 간단한 자율성
12.5 다중 에이전트 시스템
요약

제13장 PVM, 스레드, C++ 구성요소를 이용한 칠판 아키텍처
13.1 칠판 모형
13.2 여러 가지 칠판 구조화 방식
13.3 지식원의 해부
13.4 칠판 제어 전략
13.5 CORBA 객체를 이용한 칠판 구현
13.5.1 CORBA 칠판의 예
13.5.2 black_board 인터페이스 클래스의 구현
13.5.3 칠판 생성자에서 지식원들을 생성, 실행
13.5.3.1 PVM 태스크를 이용한 지식원 실행
13.5.3.2 칠판과 지식원들을 연결하기
13.5.3.3 posix_spawn 함수를 이용한 지식원 실행
13.6 전역 객체를 이용한 칠판 구현
13.7 Pthreads를 이용한 지식원 활성화
요약

부록 A UML 다이어그램
A.1 클래스 다이어그램과 객체 다이어그램
A.2 상호작용 다이어그램
A.2.1 협동 다이어그램
A.2.2 시퀀스 다이어그램
A.2.3 활동 다이어그램
A.3 상태 다이어그램
A.4 패키지 다이어그램

부록 B 시스템 인터페이스 레퍼런스
참고문헌
찾아보기

출처 : 알라딘 
내용이 없습니다.
이 책 "C++ 병렬.분산 프로그래밍"은 다중 프로세서 컴퓨터의 장점을 취할 수 있는 프로그램의 구축 방법을 자세히 소개한다. 병렬 가상 기계의 프로그래밍을 위한 간단한 접근 방식을 제시하며, 클러스터 응용프로그램 개발의 기초들도 설명한다. 다중 스레드 프로그래밍에 대한 이해하기 쉬운 개요를 통해서, 이 책은 네트워크 상에서 협동적으로 문제를 풀고 작업을 수행하는 소프트웨어 구성요소들을 작성하는 방법도 보여준다.

이 책에 포함된 내용 :
- 에이전트와 칠판 아키텍처를 이용해서 병렬 프로그래밍을 좀 더 쉽게 만드는 방법을 보여준다.
- 다중 태스킹 및 다중 스레딩에 대한 객체지향적 접근방식을 제시한다.
- 병렬 프로그래밍 또는 분산 프로그래밍이 요구되는 설계를 UML을 이용해 문서화하는 방법을 보여준다.
- Pthreads 라이브러리에 대한 새로운 POSIX/UNIX IEEE 표준을 수록했다.
출처 : 알라딘 
9788956744513
27,000원
노란북 링크 공유사이트 : *자기경영노하우(카페)
노란북 개인정보취급방침 광고/제휴문의  세종특별자치시 가름로 255-21(2차푸르지오시티) 1452호
사업자번호 203-02-92535 인종일 신고번호 제 2015-세종-0075호 E-mail dlsjong@naver.com 010-2865-2225
COPYRIGHT(c) noranbook.net All rights Reserved.