컨텐츠상세보기

동시성 프로그래밍 : Rust, C, 어셈블리어로 구현하며 배우는 동시성 프로그래밍 A to Z
동시성 프로그래밍 : Rust, C, 어셈블리어로 구현하며 배우는 동시성 프로그래밍 A to Z
  • 저자다카노 유키 저/김모세 역
  • 출판사한빛미디어
  • 출판일2022-04-11
  • 등록일2022-12-16
보유 1, 대출 1, 예약 0, 누적대출 6, 누적예약 1

책소개

동시성 프로그래밍에 목마른 개발자에게
단비와도 같은 책!


동시성 프로그래밍은 어렵다는 말을 많이 한다. 그 ‘어려움’은 두 가지로 나눌 수 있다. 동시성 프로그래밍의 구조를 이해하지 못하는 데서 느끼는 어려움과 동시성 프로그래밍의 본질적인 어려움이다. 이 책은 전자의 어려움을 해소하고 후자의 어려움에 본격적으로 도전할 수 있도록 돕기 위해 쓰였다. Rust 언어를 중심으로 어셈블리어, C 언어를 사용해 CPU 아토믹 처리, 소프트웨어 트랜잭셔널 메모리, async/await 등 동시성 프로그래밍과 관련된 이론적 배경부터 구현까지 설계자 입장에서 살펴본다. 광범위한 시점과 다양한 측면에서 다루기 때문에 고도의 프로그래밍을 목표로 하는 개발자, 안정성과 성능 중심 기술 구현에 관심이 있는 개발자가 두고두고 볼 수 있는 책이다.

저자소개

정보공학 박사학위를 수료했고 컴퓨터 사이언티스트이자 해커다. 이시카와 고등전문학교, 호쿠리쿠 첨단과학기술대학원을 거쳐 2012년에 정보통신 연구에 합류했다. 2018년 10월부터 오사카대학 특임 준교수로 교편을 잡았다. 현재 시스템 소프트웨어와 프로그래밍 언어 이론을 융합하기 위해 Rust 언어로 프로그래밍 언어 처리 계열, OS, 펌웨어, 세션형 시스템 등을 설계 및 구현하고 있다.

목차

CHAPTER 1 동시성과 병렬성 

1.1 프로세스 
1.2 동시성
1.3 병렬성
1.4 동시 처리와 병렬 처리의 필요성

CHAPTER 2 프로그래밍 기본  

2.1 어셈블리 언어
2.2 C 언어
2.3 Rust 언어

CHAPTER 3 동기 처리 1  

3.1 레이스 컨디션
3.2 아토믹 처리
3.3 뮤텍스
3.4 세마포어
3.5 조건 변수
3.6 배리어 동기
3.7 Readers-Writer 락 
3.8 Rust 동기 처리 라이브러리
3.9 베이커리 알고리즘

CHAPTER 4 동시성 프로그래밍 특유의 버그와 문제점  

4.1 데드락
4.2 라이브락과 굶주림
4.3 은행원 알고리즘 
4.4 재귀락 
4.5 의사 각성 
4.6 시그널 
4.7 메모리 배리어

CHAPTER 5 비동기 프로그래밍  

5.1 동시 서버 
5.2 코루틴과 스케줄링 
5.3 async/await
5.4 비동기 라이브러리 

CHAPTER 6 멀티태스크  

6.1 멀티태스크 
6.2 협조적 그린 스레드 구현 
6.3 액터 모델 구현 

CHAPTER 7 동기 처리 2  

7.1 공평한 배타 제어 
7.2 소프트웨어 트랜잭셔널 메모리 
7.3 락프리 데이터 구조와 알고리즘 

CHAPTER 8 동시 계산 모델  

8.1 수학적 표기 
8.2 λ 계산 
8.3 액터 모델 
8.4 π 계산 

APPENDIX A AArch64 아키텍처  

A.1 레지스터 
A.2 기본 연산 명령  
A.3 메모리 읽기 쓰기
A.4 조건부 명령 실행과 점프 
A.5 호출 규약 
A.6 예 

APPENDIX B x86-64 아키텍처  

B.1 레지스터 
B.2 AT&T 기법
B.3 기본 연산 명령 

한줄 서평