메뉴 바로가기 검색 및 카테고리 바로가기 본문 바로가기

동시성 프로그래밍

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

한빛미디어

번역서

판매중

  • 저자 : 다카노 유키
  • 번역 : 김모세
  • 출간 : 2022-04-05
  • 페이지 : 428 쪽
  • ISBN : 9791162245422
  • eISBN : 9791162245903
  • 물류코드 :10542
  • 초급 초중급 중급 중고급 고급
1 2 3 4 5
4.8점 (32명)
좋아요 : 8

책소개

동시성 프로그래밍에 목마른 개발자에게

단비와도 같은 책!

 

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

저자소개

다카노 유키 저자

다카노 유키

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

김모세 역자

김모세

소프트웨어 엔지니어, 소프트웨어 품질 엔지니어, 애자일 코치 등 다양한 분야의 소프트웨어 개발에 참여했다. 재미있는 일, 나와 조직이 성장하도록 돕는 일에 보람을 느껴 2019년부터 번역을 하고 있다.

목차

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 기본 연산 명령 

출판사리뷰

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

 

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

 

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

 

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

 

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

 

 

★주요 내용

 

1장 동시성의 개념과 주변 기술

2장 프로그래밍 언어의 기본 개념과 구문

3장 동기 처리 알고리즘

4장 동시성 프로그래밍에서 특히 발생하는 버그

5장 비동기 프로그래밍(IO 다중화, Rust의 async/await)

6장 멀티태스크(Rust를 이용해 액터 모델을 사용자 공간에서 구현)

7장 공평한 동기 처리, 소프트웨어 트랜잭셔널 메모리(STM), 락프리 데이터 구조

8장 계산 모델 측면에서의 동시성 프로그래밍

 

 

★대상 독자 

C나 Rust 기본을 습득하고 본격적으로 소프트웨어를 구현하는 단계에 들어선 전공자나 개발자

프로그래밍 경험이 있으며 동시성 프로그래밍을 체계적으로 학습하고자 하는 개발자 

독자리뷰

오탈자 보기

결제하기
• 문화비 소득공제 가능
• 배송료 : 2,000원배송료란?

배송료 안내

  • 20,000원 이상 구매시 도서 배송 무료
  • 브론즈, 실버, 골드회원 무료배송
닫기

리뷰쓰기

닫기
* 상품명 :
동시성 프로그래밍
* 제목 :
* 별점평가
1 2 3 4 5
* 내용 :

* 리뷰 작성시 유의사항

글이나 이미지/사진 저작권 등 다른 사람의 권리를 침해하거나 명예를 훼손하는 게시물은 이용약관 및 관련법률에 의해 제재를 받을 수 있습니다.

1. 특히 뉴스/언론사 기사를 전문 또는 부분적으로 '허락없이' 갖고 와서는 안됩니다 (출처를 밝히는 경우에도 안됨).
2. 저작권자의 허락을 받지 않은 콘텐츠의 무단 사용은 저작권자의 권리를 침해하는 행위로, 이에 대한 법적 책임을 지게 될 수 있습니다.

오탈자 등록

닫기
* 도서명 :
동시성 프로그래밍
* 구분 :
* 상품 버전
종이책 PDF ePub
* 페이지 :
* 위치정보 :
* 내용 :

도서 인증

닫기
도서명*
동시성 프로그래밍
구입처*
구입일*
부가기호*
부가기호 안내

* 온라인 또는 오프라인 서점에서 구입한 도서를 인증하면 마일리지 500점을 드립니다.

* 도서인증은 일 3권, 월 10권, 년 50권으로 제한되며 절판도서, eBook 등 일부 도서는 인증이 제한됩니다.

* 구입하지 않고, 허위로 도서 인증을 한 것으로 판단되면 웹사이트 이용이 제한될 수 있습니다.

닫기

해당 상품을 장바구니에 담았습니다.이미 장바구니에 추가된 상품입니다.
장바구니로 이동하시겠습니까?