- 책 이름: Computer Systems: A Programmer's Perspective, Global Edition (3rd Edition)
- 저자: Randal E. Bryant / David R, O'Hallaron
필자가 학부 2학년 때 수강했던 <컴퓨터 구조> 과목과 3학년 때 수강했던 <시스템 프로그래밍> 과목에서 공통으로 사용된 서적이다. 실제로 이 서적은 많은 대학교에서 컴퓨터 구조, 시스템, 그리고 운영체제와 관련한 학부 수업에서 사용할 만큼 유명하다. 물론 이 서적에서 다루는 내용은 너무나도 방대하기 때문에, 본 포스팅에서 모든 내용을 다룰 수는 없다. 대신, 필자가 수강했던 두 수업에서 비중 있게 다뤘던 내용들을 중심으로 포스팅을 해볼 예정이다. 그 내용을 정리하자면 다음과 같다.
「컴퓨터 구조」 과목에서 비중 있게 다룬 내용
- x86 ISA: 대부분의 현대 CPU에서 채택하는 ISA
- Sequential & Pipelined Implementation: CPU의 대표적인 두 가지 구현 방식
- Cache Memory & Virtual Memory: 캐시 메모리, 가상 메모리
「시스템 프로그래밍」 과목에서 비중 있게 다룬 내용
- Linking: 컴파일 및 링킹의 원리
- Exceptional Control Flow: 예외적인 제어 흐름
- System-Level IO: 시스템 수준의 입출력
- Network Programming: 네트워크 프로그래밍
- Concurrent Programming: 동시적 프로그래밍
위의 내용들도 전부 다 포스팅하는 것이 아니라, 필자의 판단하에 어느 정도 우선순위를 매겨서 중요한 것들을 중심으로 먼저 포스팅할 것이다. 워낙 내용 자체가 방대해서 어디까지 포스팅할 수 있을지는 장담할 순 없지만, 필자의 힘이 닿는 데까지 정성을 들여서 정리를 해보겠다. 필자 스스로에게도, 그리고 또 다른 누군가에도 도움이 되는 포스팅이었으면 좋겠다.