책 이미지
책 정보
· 분류 : 국내도서 > 컴퓨터/모바일 > 프로그래밍 언어 > 자바
· ISBN : 9788979146820
· 쪽수 : 668쪽
책 소개
목차
1장 소개
1.1 공유 객체와 동기화
1.2 우화
1.3 생산자-소비자 문제
1.4 독자-저자 문제
1.5 병렬화의 잔혹한 현실
1.6 병렬 프로그래밍
1.7 일러두기
1.8 연습문제
2장 상호 배제
2.1 시간
2.2 임계영역
2.3 2-스레드 해법
2.4 필터 잠금
2.5 공정성
2.6 램포트의 빵집 알고리즘
2.7 유한 타임스탬프
2.8 (메모리) 위치 개수에 대한 하한
2.9 일러두기
2.10 연습문제
3장 병행 객체
3.1 병행성과 정확성
3.2 순차 객체
3.3 정지 무모순성
3.4 순차 무모순성
3.5 선형화 가능성
3.6 수학적 정의
3.7 진행조건
3.8 Java 메모리 모델
3.9 주의할 것
3.10 일러두기
3.11 연습문제
4장 공유 메모리의 기초
4.1 레지스터의 공간
4.2 레지스터 만들기
4.3 원자적인 스냅샷
4.4 일러두기
4.5 연습문제
5장 동기화 연산 요소들의 상대적인 능력
5.1 합의 수
5.2 원자적인 레지스터
5.3 합의 프로토콜
5.4 FIFO 큐
5.5 다중 대입 객체
5.6 읽기-변경-쓰기 연산
5.7 Common2 RMW 연산
5.8 CAS 연산
5.9 일러두기
5.10 연습문제
6장 합의의 만능성
6.1 소개
6.2 만능성
6.3 무잠금 만능 구성
6.4 무대기 만능 구성
6.5 일러두기
6.6 연습문제
7장 스핀락과 경쟁
7.1 현실 세계에 온 것을 환영한다
7.2 test-and-set 잠금
7.3 TAS 기반의 잠금 재검토
7.4 지수적인 백오프
7.5 큐 잠금
7.6 시간제한이 있는 큐 잠금
7.7 복합 잠금
7.8 계층적 잠금
7.9 모든 상황을 처리할 수 있는 하나의 잠금
7.10 일러두기
7.11 연습문제
8장 모니터와 멈춤 동기화
8.1 소개
8.2 모니터 잠금과 조건 변수
8.3 독자-저자 잠금
8.4 직접 만든 재진입성 잠금
8.5 세마포어
8.6 일러두기
8.7 연습문제
9장 연결리스트: 잠금의 역할
9.1 소개
9.2 리스트로 만든 집합
9.3 병행 추론
9.4 성긴 동기화
9.5 세밀한 동기화
9.6 낙천적인 동기화
9.7 게으른 동기화
9.8 비멈춤 동기화
9.9 토의
9.10 일러두기
9.11 연습문제
10장 병행 큐와 ABA 문제
10.1 소개
10.2 큐
10.3 제한된 부분 큐
10.4 무제한 완전 큐
10.5 무제한 무잠금 큐
10.6 메모리 재사용과 ABA 문제
10.7 이중 자료구조
10.8 일러두기
10.9 연습문제
11장 병행 스택과 소거
11.1 소개
11.2 무제한 무잠금 스택
11.3 소거
11.4 소거 백오프 스택
11.5 일러두기
11.6 연습문제
12장 숫자 세기, 정렬 그리고 분산 협조
12.1 소개
12.2 공유된 세기
12.3 소프트웨어 결합
12.4 정지 무모순한 풀과 카운터
12.5 계산 네트워크
12.6 회절 트리
12.7 병렬 정렬
12.8 정렬 네트워크
12.9 샘플 정렬
12.10 분산 협조
12.11 일러두기
12.12 연습문제
13장 병행 해시와 자연적인 병렬성
13.1 소개
13.2 닫힌 주소법 해시 집합
13.3 무잠금 해시 집합
13.4 열린 주소법 해시 집합
13.5 일러두기
13.6 연습문제
14장 스킵리스트와 균형 잡힌 검색
14.1 소개
14.2 순차 스킵리스트
14.3 잠금 기반의 병행 스킵리스트
14.4 무잠금 병행 스킵리스트
14.5 병행 스킵리스트
14.6 일러두기
14.7 연습문제
15장 우선순위 큐
15.1 소개
15.2 배열 기반의 제한된 우선순위 큐
15.3 트리 기반의 제한된 우선순위 큐
15.4 힙 기반의 무제한 우선순위 큐
15.5 스킵리스트 기반의 무제한 우선순위 큐
15.6 일러두기
15.7 연습문제
16장 미래, 스케줄링, 그리고 작업 분배
16.1 소개
16.2 병렬성 분석
16.3 현실적인 다중프로세서 스케줄링
16.4 작업 분배
16.5 작업 훔치기 덱
16.6 일러두기
16.7 연습문제
17장 배리어
17.1 소개
17.2 배리어 구현
17.3 센스리버싱 배리어
17.4 트리 결합 배리어
17.5 정적 트리 배리어
17.6 종료 감지 배리어
17.7 일러두기
17.8 연습문제
18장 트랜잭션 메모리
18.1 소개
18.2 트랜잭션과 원자성
18.3 소프트웨어 트랜잭션 메모리
18.4 하드웨어 트랜잭션 메모리
18.5 일러두기
18.6 연습문제
부록 A 소프트웨어의 기초
A.1 소개
A.2 Java
A.3 C#
A.4 Pthreads
A.5 일러두기
부록 B 하드웨어의 기초
B.1 소개(와 수수께끼)
B.2 프로세서와 스레드
B.3 인터커넥트
B.4 메모리
B.5 캐시
B.6 캐시를 고려한 프로그래밍 또는 수수께끼는 풀렸다!
B.7 다중코어와 다중스레드 구조
B.8 하드웨어 동기화 명령
B.9 일러두기
B.10 연습문제
참고문헌
찾아보기