HOME > 상세정보

상세정보

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

(칠판 구조와 다중 에이전트 시스템 위주의 )C++ 병렬·분산 프로그래밍 (9회 대출)

자료유형
단행본
개인저자
Hughes, Cameron , 1960- Hughes, Tracey , 지음 류광 , 옮김.
서명 / 저자사항
(칠판 구조와 다중 에이전트 시스템 위주의 )C++ 병렬·분산 프로그래밍 / Cameron Hughes , Tracey Hughes 지음 ; 류광 옮김.
발행사항
서울 :   정보문화사 ,   2008.  
형태사항
795 p. : 삽도 ; 24 cm.
원표제
Parallel and distributed programming using C++
ISBN
9788956744513:
일반주기
부록: A, UML 다이어그램. - B, 시스템 인터페이스 레퍼런스.  
서지주기
참고문헌(p. 773-775)및 색인 수록
비통제주제어
병렬프로그래밍 , 데이타처리 , C++ (프로그래밍 언어) ,,
000 01068camccc200301 k 4500
001 000045506371
005 20100807111940
007 ta
008 081202s2008 ulka b 001c kor
020 ▼a 9788956744513: ▼c \30,000
035 ▼a (KERIS)BIB000011490453
040 ▼d 244007 ▼a 244007 ▼c 244007 ▼d 222001 ▼d 244002
041 1 ▼a kor ▼h eng
082 0 4 ▼a 005.133 ▼2 22
090 ▼a 005.133 ▼b C110 2008z55
100 1 ▼a Hughes, Cameron , ▼d 1960-
245 2 0 ▼a (칠판 구조와 다중 에이전트 시스템 위주의 )C++ 병렬·분산 프로그래밍 / ▼d Cameron Hughes , ▼e Tracey Hughes 지음 ; ▼e 류광 옮김.
246 1 9 ▼a Parallel and distributed programming using C++
260 ▼a 서울 : ▼b 정보문화사 , ▼c 2008.
300 ▼a 795 p. : ▼b 삽도 ; ▼c 24 cm.
500 ▼a 부록: A, UML 다이어그램. - B, 시스템 인터페이스 레퍼런스.
504 ▼a 참고문헌(p. 773-775)및 색인 수록
653 ▼a 병렬프로그래밍 ▼a 데이타처리 ▼a C++ (프로그래밍 언어)
700 1 ▼a Hughes, Tracey , ▼e 지음
700 1 ▼a 류광 , ▼e 옮김.
900 1 1 ▼a 휴즈, 캐머론
900 1 1 ▼a 휴즈, 트레이시

소장정보

No. 소장처 청구기호 등록번호 도서상태 반납예정일 예약 서비스
No. 1 소장처 세종학술정보원/과학기술실(5층)/ 청구기호 005.133 C110 2008z55 등록번호 151269399 (9회 대출) 도서상태 대출가능 반납예정일 예약 서비스 B M ?

컨텐츠정보

책소개

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

이 책에 포함된 내용 :
- 에이전트와 칠판 아키텍처를 이용해서 병렬 프로그래밍을 좀 더 쉽게 만드는 방법을 보여준다.
- 다중 태스킹 및 다중 스레딩에 대한 객체지향적 접근방식을 제시한다.
- 병렬 프로그래밍 또는 분산 프로그래밍이 요구되는 설계를 UML을 이용해 문서화하는 방법을 보여준다.
- Pthreads 라이브러리에 대한 새로운 POSIX/UNIX IEEE 표준을 수록했다.


정보제공 : Aladin

저자소개

Cameron Hughes(지은이)

<Linux Rapid Application Development>

Tracey Hughes(지은이)

<Linux Rapid Application Development>

류광(옮긴이)

도널드 커누스 교수의 《컴퓨터 프로그래밍의 예술》 시리즈를 비롯해 다양한 IT 전문서를 번역한 전문 번역가이다. 생성형 AI 관련 번역서로는 《마스터링 트랜스포머》 《실전! RAG 기반 생성형 AI 개발》 《LLM 인 프로덕션》 《AI 에이전트 인 액션》 등이 있다. 개인 웹사이트 류광의 번역 이야기(https://occamsrazr.net)와 IT 및 게임 개발 정보 공유 사이트 GpgStudy.com(https://gpgstudy.com)을 운영한다.

정보제공 : Aladin

목차

목차
제1장 동시적 프로그래밍의 즐거움 = 21
 1.1 동시성이란 무엇인가? = 23
  1.1.1 동시성 달성을 위한 기본적인 접근방식 두 가지 = 25
 1.2 병렬 프로그래밍의 이점 = 27
  1.2.1 가장 단순한 병렬 모형: PRAM = 28
  1.2.2 가장 간단한 병렬 분류법 = 29
 1.3 분산 프로그래밍의 이점 = 30
  1.3.1 가장 단순한 분산 프로그래밍 모형 = 31
  1.3.2 다중 에이전트(동위간) 분산 모형 = 32
 1.4 필요한 최소의 노력 = 33
  1.4.1 분해 = 33
  1.4.2 통신 = 34
  1.4.3 동기화 = 35
 1.5 소프트웨어 동시성의 기본 계층들 = 35
  1.5.1 명령 수준의 동시성 = 35
  1.5.2 루틴 수준의 동시성 = 36
  1.5.3 객체 수준의 동시성 = 36
  1.5.4 응용프로그램의 동시성 = 36
 1.6 C++은 병렬성을 위한 키워드를 제공하지 않는다 = 37
  1.6.1 C++로 병렬성을 구현하는 데 사용할 수 있는 수단들 = 38
  1.6.2 MPI 표준 = 39
  1.6.3 PVM: 클러스터 프로그래밍의 한 표준 = 39
  1.6.4 CORBA 표준 = 40
  1.6.5 표준에 기초한 라이브러리 구현들 = 41
 1.7 병렬 및 분산 프로그래밍을 위한 프로그래밍 환경들 = 42
 요약 - 동시성을 향해 = 42
제2장 병렬 및 분산 프로그래밍의 어려움 = 45
 2.1 패러다임의 대전환 = 47
 2.2 중재 문제 = 51
 2.3 하드웨어가 고장나거나 소프트웨어가 종료되기도 한다 = 57
 2.4 과도한 병렬화나 분산이 부정적인 결과를 내기도 한다 = 58
 2.5 적합한 아키텍처를 선택하려면 연구가 필요하다 = 58
 2.6 다른 종류의 검사 및 디버깅 기법들이 필요하다 = 60
 2.7 병렬 또는 분산 설계의 의사소통이 필요하다 = 61
 요약 = 62
제3장 C++ 프로그램을 여러 개의 태스크들로 분할하기 = 63
 3.1 프로세스의 정의 = 65
  3.1.1 두 종류의 프로세스 = 65
  3.1.2 프로세스 제어 블록 = 66
 3.2 프로세스의 해부 = 67
 3.3 프로세스 상태 = 71
 3.4 프로세스 스케줄링 = 74
  3.4.1 스케줄링 정책 = 75
  3.4.2 ps 유틸리티 사용법 = 77
  3.4.3 프로세스 우선순위 설정 및 조회 = 80
 3.5 문맥 전환 = 83
 3.6 프로세스 생성 = 83
  3.6.1 프로세스들의 부모-자식 관계 = 84
   3.6.1.1 pstree 유틸리티 = 87
  3.6.2 시스템 함수 fork() = 88
  3.6.3 exec류 시스템 함수들 = 88
   3.6.3.1 execl() 함수들 = 90
   3.6.3.2 execv() 함수들 = 91
   3.6.3.3 exec()류 함수들에 대한 제약 파악 = 92
   3.6.3.4 환경 변수 읽고 쓰기 = 93
  3.6.4 system() 함수로 프로세스 생성하기 = 94
  3.6.5 POSIX 함수들로 프로세스 생성하기 = 95
  3.6.6 프로세스 관리 함수들로 부모 및 자식 프로세스 식별하기 = 101
 3.7 프로세스 종료하기 = 102
  3.7.1 시스템 함수 exit(), kill(), abort() = 103
 3.8 프로세스 자원 = 104
  3.8.1 자원의 종류 = 107
  3.8.2 자원 한계를 설정하는 POSIX 함수들 = 108
 3.9 비동기 프로세스와 동기 프로세스 = 110
  3.9.1 fork(), exec(), system(), posix_spawn() 함수를 이용한 동기 및 비동기 프로세스 생성 = 113
  3.9.2 wait() 함수 호출 = 113
 3.10 프로그램을 여러 태스크들로 분할하기 = 116
  3.10.1 함수 또는 객체에 의한 프로세스 생성 = 124
 요약 = 125
제4장 C++ 프로그램을 여러 개의 스레드들로 분할하기 = 127
 4.1 스레드의 정의 = 129
  4.1.1 스레드 문맥 요구사항 = 130
  4.1.2 스레드와 프로세스의 비교 = 132
   4.1.2.1 주소 공간 공유 = 132
   4.1.2.2 다른 스레드의 제어 = 133
  4.1.3 스레드의 장점 = 134
   4.1.3.1 좀 더 가벼운 문맥 전환 = 134
   4.1.3.2 더 나은 산출량 = 134
   4.1.3.3 동시에 수행되는 부분들 사이의 좀 더 간단한 의사소통 = 135
   4.1.3.4 프로그램 구조의 단순화 = 136
  4.1.4 스레드의 단점 = 136
   4.1.4.1 스레드는 프로세스의 자료를 망치기 쉽다 = 136
   4.1.4.2 잘못된 스레드 하나가 프로그램 전체를 죽일 수 있다 = 137
   4.1.4.3 스레드는 다른 프로그램에서 재사용할 수 없다 = 137
 4.2 스레드의 해부 = 138
  4.2.1 스레드 특성들 = 140
 4.3 스레드 스케줄링 = 143
  4.3.1 스레드 상태 = 144
  4.3.2 스케줄링과 스레드 경쟁 범위 = 145
  4.3.3 스케줄링 정책과 우선순위 = 146
   4.3.3.1 스레드 우선순위의 변경 = 148
 4.4 스레드 자원 = 149
 4.5 스레드 모형 = 150
  4.5.1 위임 모형 = 152
  4.5.2 동급간 모형 = 153
  4.5.3 파이프라인 모형 = 154
  4.5.4 생산자-소비자 모형 = 155
  4.5.5 스레드 모형의 SPMD와 MPMD = 156
 4.6 Pthreads 라이브러리 소개 = 157
 4.7 간단한 다중 스레드 프로그램의 해부 = 158
  4.7.1 다중 스레드 프로그램의 컴파일과 링크 = 160
 4.8 Pthreads 라이브러리로 스레드 만들기 = 161
  4.8.1 스레드 ID 얻기 = 165
  4.8.2 스레드 결합 = 165
  4.8.3 탈착된 스레드 생성 = 166
  4.8.4 Pthreads 특성 객체 = 167
   4.8.4.1 Pthreads 특성 객체를 이용해서 탈착된 스레드 만들기 = 168
 4.9 스레드 관리 = 170
  4.9.1 스레드의 종료 = 171
   4.9.1.1 취소 지점 = 174
   4.9.1.2 종료 이전의 마무리 작업 = 180
  4.9.2 스레드 스택 관리 = 182
  4.9.3 스레드 스케줄링 정책과 우선순위 설정 = 186
   4.9.3.1 스레드의 경쟁 범위 설정 = 191
  4.9.4 sysconf() 함수 = 191
  4.9.5 임계 영역의 관리 = 194
 4.10 스레드 안전성과 라이브러리 = 201
 4.11 프로그램을 여러 스레드들로 분할하기 = 204
  4.11.1 위임 모형 = 204
  4.11.2 동급간 모형 = 209
  4.11.3 파이프라인 모형 = 210
  4.11.4 생산자-소비자 모형 = 211
  4.11.5 다중 스레드 객체 만들기 = 213
 요약 = 215
제5장 동시에 수행되는 태스크들의 동기화 = 217
 5.1 수행 순서의 중재 = 220
  5.1.1 동기화되는 태스크들 사이의 관계 = 221
  5.1.2 시작-시작 관계 = 222
  5.1.3 완료-시작 관계 = 223
  5.1.4 시작-완료 관계 = 223
  5.1.5 완료-완료 관계 = 223
 5.2 자료 접근의 동기화 = 224
  5.2.1 PRAM 모형 = 226
   5.2.1.1 동시 및 독점 메모리 접근 = 226
 5.3 세마포와 동기화 메커니즘들 = 228
  5.3.1 세마포 연산 = 229
  5.3.2 뮤텍스 세마포 = 230
   5.3.2.1 뮤텍스 특성 객체 = 232
   5.3.2.2 뮤텍스 세마포를 이용한 임계 영역 보호 = 236
  5.3.3 읽기-쓰기 자물쇠 = 238
   5.3.3.1 읽기-쓰기 자물쇠를 이용한 접근 정책 구현 = 239
  5.3.4 조건 변수 = 242
   5.3.4.1 조건 변수를 이용한 동기화 관계의 관리 = 245
 5.4 동기화: 객체지향적 접근 = 248
 요약 = 248
제6장 PVM을 이용한 C++ 병렬 프로그래밍 = 251
 6.1 PVM이 지원하는 고전적인 병렬성 모형들 = 253
 6.2 C++용 PVM 라이브러리 = 255
  6.2.1 C++/PVM 프로그램의 컴파일과 링크 = 260
  6.2.2 PVM 프로그램을 독립적으로 실행 = 260
   6.2.2.1 PVM 콘솔로 PVM 프로그램을 실행 = 261
   6.2.2.2 XPVM을 이용해서 PVM 프로그램을 실행 = 261
  6.2.3 PVM의 운용에 필요한 설정 사항들 = 262
  6.2.4 C++ 런타임 라이브러리와 PVM 라이브러리의 결합 = 265
  6.2.5 PVM 태스크들의 구성 = 266
   6.2.5.1 PVM과 C++을 이용한 SPMD(SIMD) 모형의 구현 = 267
   6.2.5.2 PVM과 C++을 이용한 MPMD(MIMD) 모형의 구현 = 275
 6.3 PVM의 기본적인 작동 방식 = 278
  6.3.1 프로세스 관리 및 제어 함수들 = 280
  6.3.2 메시지 포장과 전송 = 282
 6.4 PVM 태스크에서 표준 입력(stdin)과 표준 출력(stdout) 사용하기 = 290
  6.4.1 자식 태스크의 표준 출력 가로채기 = 291
 요약 = 291
제7장 오류 처리, 예외, 소프트웨어 신뢰성 = 293
 7.1 소프트웨어 신뢰성이란? = 296
 7.2 소프트웨어 계층들과 하드웨어 구성요소들의 실패 = 298
 7.3 결함의 정의는 소프트웨어 명세에 따라 다르다 = 300
 7.4 결함과 예외의 구분 = 300
 7.5 소프트웨어 신뢰성을 위한 간단한 계획 하나 = 303
  7.5.1 계획 A: 재개 모형, 계획 B: 종료 모형 = 304
 7.6 오류 처리에서 map 객체 활용하기 = 305
 7.7 C++의 예외 처리 메커니즘 = 309
  7.7.1 C++ 표준 예외 클래스 = 310
   7.7.1.1 runtime_error 클래스들 = 310
   7.7.1.2 logic_error 클래스들 = 312
   7.7.1.3 새 예외 클래스의 파생 = 312
   7.7.1.4 예외 클래스가 예외를 던지지 않게 하는 방법 = 314
 7.8 사건 다이어그램, 논리 표현식, 논리 다이어그램 = 315
 요약 = 318
제8장 C++을 이용한 분산 객체지향 프로그래밍 = 321
 8.1 작업의 분해 및 캡슐화 = 324
  8.1.1 분산 객체들 사이의 통신 = 327
  8.1.2 지역 객체와 원격 객체의 상호작용 동기화 = 328
  8.1.3 분산 환경에서의 오류 및 예외 처리 = 328
 8.2 다른 주소 공간에 있는 객체에 접근하기 = 329
  8.2.1 원격 객체에 대한 IOR 접근 = 332
  8.2.2 ORB = 332
  8.2.3 IDL과 CORBA 객체 = 336
 8.3 기본적인 CORBA 소비자 프로그램의 해부 = 341
 8.4 CORBA 생산자 프로그램의 해부 = 343
 8.5 CORBA 응용프로그램의 기본 청사진 = 345
  8.5.1 IDL 컴파일러 = 348
  8.5.2 원격 객체의 IOR 얻기 = 350
 8.6 명명 서비스 = 351
  8.6.1 명명 서비스 활용 및 명명 문맥의 생성 = 355
  8.6.2 명명 서비스 소비자/클라이언트 = 358
 8.7 객체 적응자 = 362
 8.8 구현 저장소와 인터페이스 저장소 = 364
 8.9 CORBA를 이용한 간단한 분산 웹 서비스 = 365
 8.10 교역 서비스 = 367
 8.11 클라이언트/서버 패러다임 = 369
 요약 = 371
제9장 템플릿과 MPI를 이용한 SPMD와 MPMD = 373
 9.1 MPI를 위한 작업 분할 구조 = 376
  9.1.1 등급에 따른 태스크 차별화 = 377
  9.1.2 통신자를 기준으로 한 태스크 그룹 분류 = 379
  9.1.3 MPI 태스크의 해부 = 382
 9.2 템플릿 함수를 이용한 MPI 태스크 구현 = 384
  9.2.1 템플릿을 이용해서 서로 다른 형식의 자료를 다루는 SPMD 구현 = 384
  9.2.2 다형성을 이용한 MPMD의 구현 = 386
  9.2.3 함수 객체를 이용한 MPMD 구현 = 392
 9.3 MPI 통신의 단순화 = 394
  9.3.1 MPI 통신을 위한〈〈,〉〉연산자의 중복적재 = 398
 요약 = 402
제10장 동시ㆍ분산 시스템 설계의 시각화 = 403
 10.1 구조의 시각화 = 405
  10.1.1 클래스와 객체 = 406
   10.1.1.1 특성과 서비스 명세 = 409
   10.1.1.2 특성과 서비스의 순서 = 413
   10.1.1.3 템플릿 클래스 = 414
  10.1.2 클래스와 객체의 관계 표현 = 417
   10.1.2.1 인터페이스 클래스 = 421
  10.1.3 상호작용적인 객체들의 조직화 = 422
 10.2 동시적 행동의 시각화 = 424
  10.2.1 협동 객체 = 425
   10.2.1.1 프로세스와 스레드 = 427
   10.2.1.2 다수의 제어 흐름들과 통신들의 표현 = 429
  10.2.2 객체들 사이의 메시지 시퀀스 = 431
  10.2.3 객체의 활동 = 434
  10.2.4 상태기계 = 438
   10.2.4.1 동시적인 하위상태들 = 442
  10.2.5 배치 다이어그램 = 444
 10.3 시스템 전체의 시각화 = 445
  10.3.1 시스템 배치의 시각화 = 446
  10.3.2 시스템 아키텍처의 시각화 = 447
 요약 = 449
제11장 동시성을 지원하는 구성요소의 설계 = 451
 11.1 인터페이스 클래스의 활용 = 455
 11.2 객체지향적 뮤텍스와 인터페이스 클래스 = 461
  11.2.1 동시성을 지원하는 덜 두터운 인터페이스 = 462
 11.3 스트림 비유의 유지 = 471
  11.3.1 PVM 스트림에 대한〈〈,〉〉연산자의 중복적재 = 474
 11.4 PVM 스트림에 사용할 사용자 정의 클래스의 설계 = 478
 11.5 저수준 구축 요소로서의 객체지향적 파이프와 FIFO = 481
  11.5.1 파일 서술자를 이용해서 파이프를 iostream 객체에 붙이기 = 486
  11.5.2 ostream_iterator를 이용한 익명 파이프 접근 = 491
  11.5.3 FIFO(명명된 파이프), iostream, ostream_iterator 클래스들 = 500
   11.5.3.1 FIFO 인터페이스 클래스 = 506
 11.6 동시성을 지원하는 프레임워크 클래스 구성요소 = 507
 요약 = 513
제12장 에이전트 지향적 아키텍처의 구현 = 515
 12.1 에이전트란 무엇인가? = 517
  12.1.1 에이전트의 첫 번째 정의 = 518
  12.1.2 에이전트의 종류 = 519
  12.1.3 객체와 에이전트의 차이 = 520
 12.2 에이전트 지향적 프로그래밍이란 무엇인가? = 524
  12.2.1 분산 프로그래밍에서 에이전트가 유용한 이유 = 524
  12.2.2 에이전트와 병렬 프로그래밍 = 526
 12.3 에이전트의 기본 구성요소 = 528
  12.3.1 인지적 자료구조 = 529
   12.3.1.1 추론 메서드 = 531
 12.4 C++로 에이전트 구현하기 = 537
  12.4.1 명제 자료형식과 믿음 자료구조 = 537
  12.4.2 에이전트 클래스 = 543
   12.4.2.1 에이전트 루프 = 546
   12.4.2.2 에이전트의 추론 메서드 = 547
  12.4.3 간단한 자율성 = 557
 12.5 다중 에이전트 시스템 = 559
 요약 = 560
제13장 PVM, 스레드, C++ 구성요소를 이용한 칠판 아키텍처 = 561
 13.1 칠판 모형 = 563
 13.2 여러 가지 칠판 구조화 방식 = 567
 13.3 지식원의 해부 = 570
 13.4 칠판 제어 전략 = 572
 13.5 CORBA 객체를 이용한 칠판 구현 = 576
  13.5.1 CORBA 칠판의 예 = 576
  13.5.2 black_board 인터페이스 클래스의 구현 = 579
  13.5.3 칠판 생성자에서 지식원들을 생성, 실행 = 582
   13.5.3.1 PVM 태스크를 이용한 지식원 실행 = 583
   13.5.3.2 칠판과 지식원들을 연결하기 = 588
  13.5.3.3 posix_spawn 함수를 이용한 지식원 실행 = 590
 13.6 전역 객체를 이용한 칠판 구현 = 595
 13.7 Pthreads를 이용한 지식원 활성화 = 598
 요약 = 601
부록 A UML 다이어그램 = 603
 A.1 클래스 다이어그램과 객체 다이어그램 = 605
 A.2 상호작용 다이어그램 = 607
  A.2.1 협동 다이어그램 = 607
  A.2.2 시퀀스 다이어그램 = 607
  A.2.3 활동 다이어그램 = 609
 A.3 상태 다이어그램 = 613
 A.4 패키지 다이어그램 = 614
부록 B 시스템 인터페이스 레퍼런스 = 615
참고문헌 = 773
찾아보기 = 776

관련분야 신착자료

Harvard Business Review (2025)