동시성 프로그래밍 (Rust, C, 어셈블리어로 구현하며 배우는 동시성 프로그래밍 A to Z)

동시성 프로그래밍 (Rust, C, 어셈블리어로 구현하며 배우는 동시성 프로그래밍 A to Z)

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

다카노유키

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

목차

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

CHAPTER2프로그래밍기본
2.1어셈블리언어
2.2C언어
2.3Rust언어

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

CHAPTER4동시성프로그래밍특유의버그와문제점
4.1데드락
4.2라이브락과굶주림
4.3은행원알고리즘
4.4재귀락
4.5의사각성
4.6시그널
4.7메모리배리어

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

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

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

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

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

APPENDIXBx86-64아키텍처
B.1레지스터
B.2AT&T기법
B.3기본연산명령

출판사 서평

동시성프로그래밍구현과이론을이정도로넓게다룬책은없다

네트워크로연결된모든시스템에는동시성프로그램이적용되었다고해도과언이아닐것입니다.스마트폰으로노래를들으면서웹서핑을하고,화면을분할해동영상을보면서연락을주고받는것은모두동시성프로그래밍덕분입니다.이렇게우리삶과밀접하고다양하게이용되는동시성프로그래밍의전반을한권에담았습니다.저자는이책을이렇게설명합니다.

“어셈블리부터알고리즘,계산모델에이르는광범위한주제를총체적으로다룬세계최초의책입니다.”

주로Rust언어를이용해설명하고C언어와어셈블리언어도사용합니다.Rust언어는동시성프로그래밍관점에서심사숙고해만들어진프로그래밍언어입니다.프로그래밍에안정성을제공하고메모리를고려해코드를작성할수있으며async/wait등고급개념을적용하고있기때문에Rust와동시성프로그래밍은떼어놓고생각할수없습니다.

동시성개념부터동시성프로그래밍이갖는독특한특징(동기처리,레이스컨디션,락,비동기처리,IO다중화,멀티태스킹등),어셈블리언어와알고리즘,계산모델에이르는광범위한주제를담았습니다.성능향상은물론구조적인허점을피해더안전하고유지보수성이높은소프트웨어를만들고싶다면동시성프로그래밍을시작할때입니다.

★주요내용
● 1장동시성의개념과주변기술
● 2장프로그래밍언어의기본개념과구문
● 3장동기처리알고리즘
● 4장동시성프로그래밍에서특히발생하는버그
● 5장비동기프로그래밍(IO다중화,Rust의async/await)
● 6장멀티태스크(Rust를이용해액터모델을사용자공간에서구현)
● 7장공평한동기처리,소프트웨어트랜잭셔널메모리(STM),락프리데이터구조
● 8장계산모델측면에서의동시성프로그래밍

★대상독자
● C나Rust기본을습득하고본격적으로소프트웨어를구현하는단계에들어선전공자나개발자
● 프로그래밍경험이있으며동시성프로그래밍을체계적으로학습하고자하는개발자