혼자 공부하는 컴퓨터 구조 + 운영체제

1:1 과외하듯 배우는 IT 지식 입문서. 독학으로 컴퓨터 구조와 운영체제를 배우는 입문자가 ‘꼭 필요한 내용을 제대로 학습’할 수 있도록 구성했다. 뭘 모르는지조차 모르는 입문자의 막연한

www.aladin.co.kr

 

computer science에 대한 기본 지식이 없어도 처음부터 차근차근 공부할 수 있는 책이다. 책과 유튜브 영상, 깃허브 추가자료까지 있고 저자가 유튜브 영상과 깃허브 추가자료에 댓글까지 달아 준다. 리눅스에 대한 기본적인 지식은 있지만 컴퓨터 구조에 대한 이해도 없고 귀동냥으로 들은 지식이 전부이기 때문에 체계적으로 정리할 필요가 있어 구매한 책이다. 

크게 컴퓨터 구조에 대한 부분과 운영체제에 대한 부분으로 나뉘어져 있다. 전반부에서는 컴퓨터 구조에 대한 큰 그림과 네가지 핵심인 CPU, 메모리, 보조기억장치, 입출력장치에 대해서 설명한다. 후반부에서는 운영체제에 대해서, 그리고 프로세스와 스레드, CPU 스케줄링, 메모리 관리기법, 파일 시스템에 대해서 설명한다. 

한정된 자원을 가지고 문제해결을 하는 개발자는 sw에 대한 이해 뿐만 아니라 hw에 대해서도 이해가 필요한데, 컴퓨터 공학과에서 4년 배우는 지식을 요약 정리한 책으로 보인다. 우리가 매일 접하는 웹사이트나 앱이 만들어지는 컴퓨터에 대한 기본 지식은 재미있지도 않고 어려운 지식이지만 IT 업계에서 일한다면 꼭 배워야 할 지식이다.                                                                                            

 

* 유튜브 영상

* 추가 공부자료

 

GitHub - kangtegong/self-learning-cs: 집필서적- 『혼자 공부하는 컴퓨터구조 & 운영체제』 (한빛미디어)

집필서적- 『혼자 공부하는 컴퓨터구조 & 운영체제』 (한빛미디어) 심화자료. Contribute to kangtegong/self-learning-cs development by creating an account on GitHub.

github.com

* 정답지

 

혼자 공부하는 컴퓨터 구조+운영체제

어려운 컴퓨터 구조와 운영체제의 원리를 누구나 쉽게 이해할 수 있도록 용어와 개념은 한 번 더 풀어쓰고, 적절한 예시와 이해하기 쉬운 그림으로 재미있게 구성했다. 또한 일상 소재를 활용한

www.hanbit.co.kr

 

 

목차

Chapter 01 컴퓨터 구조 시작하기
01-1 구조를 알아야 하는 이유 
__문제 해결 
__성능, 용량, 비용
01-2 컴퓨터 구조의 큰 그림 
__컴퓨터가 이해하는 정보
__컴퓨터의 4가지 핵심 부품
Chapter 02 데이터
02-1 0과 1로 숫자를 표현하는 방법 
__정보 단위
__이진법
__십육진법
02-2 0과 1로 문자를 표현하는 방법 
__문자 집합과 인코딩
__아스키 코드
__EUC-KR
__유니코드와 UTF-8
Chapter 03 명령어
03-1 소스 코드와 명령어 
__고급 언어와 저급 언어
__컴파일 언어와 인터프리터 언어
[좀 더 알아보기] 목적 파일 vs 실행 파일
03-2 명령어의 구조
__연산 코드와 오퍼랜드
__주소 지정 방식
[좀 더 알아보기] 스택과 큐
Chapter 04 CPU와 작동 원리
04-1 ALU와 제어장치 
__ALU
__제어장치
04-2 레지스터 
__반드시 알아야 할 레지스터
__특정 레지스터를 이용한 주소 지정 방식(1): 스택 주소 지정 방식 
__특정 레지스터를 이용한 주소 지정 방식(2): 변위 주소 지정 방식 
[좀 더 알아보기] 상용화된 CPU 속 레지스터 및 주소 지정 방식
04-3 명령어 사이클과 인터럽트 
__명령어 사이클 
__인터럽트 
[좀 더 알아보기] 예외의 종류
Chapter 05 CPU 성능 향상 기법
05-1 빠른 CPU를 위한 설계 기법  
__클럭
__코어와 멀티 코어
__스레드와 멀티스레드
05-2 명령어 병렬 처리 기법 1
__명령어 파이프라인 
__슈퍼스칼라 
__비순차적 명령어 처리
05-3 CISC와 RISC
__명령어 집합
__CISC
__RISC  
Chapter 06 메모리와 캐시 메모리
06-1 RAM의 특징과 종류  
__RAM의 특징 
__RAM의 용량과 성능
__RAM의 종류
06-2 메모리의 주소 공간
__물리 주소와 논리 주소
__메모리 보호 기법
06-3 캐시 메모리 
__저장 장치 계층 구조 
__캐시 메모리
__참조 지역성 원리  
Chapter 07 보조기억장치
07-1 다양한 보조기억장치 
__하드 디스크  
__플래시 메모리 
07-2 RAID의 정의와 종류
__RAID의 정의
__RAID의 종류 
Chapter 08 입출력장치
08-1 장치 컨트롤러와 장치 드라이버
__장치 컨트롤러 
__장치 드라이버 
08-2 다양한 입출력 방법
__프로그램 입출력
__인터럽트 기반 입출력
__ DMA 입출력
Chapter 09 운영체제 시작하기
09-1 운영체제를 알아야 하는 이유
__운영체제란
__운영체제를 알아야 하는 이유 
09-2 운영체제의 큰 그림
__운영체제의 심장, 커널
__이중 모드와 시스템 호출
__운영체제의 핵심 서비스 
[좀 더 알아보기] 가상 머신과 이중 모드의 발전
[좀 더 알아보기] 시스템 호출의 종류
Chapter 10 프로세스와 스레드
10-1 프로세스 개요
__프로세스 직접 확인하기
__프로세스 제어 블록
__문맥 교환
__프로세스의 메모리 영역 
10-2 프로세스 상태와 계층 구조
__프로세스 상태
__프로세스 계층 구조 
__프로세스 생성 기법
10-3 스레드
__프로세스와 스레드 
__멀티프로세스와 멀티스레드 
Chapter 11 CPU 스케줄링
11-1 CPU 스케줄링 개요
__ 프로세스 우선순위
__스케줄링 큐
__선점형과 비선점형 스케줄링 
11-2 CPU 스케줄링 알고리즘
__스케줄링 알고리즘의 종류
Chapter 12 프로세스 동기화
12-1 동기화란
__동기화의 의미
__ 생산자와 소비자 문제
__공유 자원과 임계 구역 
12-2 공유 자원과 임계 구역 
__뮤텍스 락
__세마포
__모니터
Chapter 13 교착 상태
13-1 교착 상태란
__식사하는 철학자 문제 
__자원 할당 그래프
__교착 상태 발생 조건 
13-2 교착 상태 해결 방법
__교착 상태 예방
__교착 상태 회피
__교착 상태 검출 후 회복
Chapter 14 가상 메모리
14-1 연속 메모리 할당
__스와핑
__메모리 할당
__외부 단편화
14-2 페이징을 통한 가상 메모리 관리 
__페이징이란
__페이지 테이블
__페이징에서의 주소 변환
__페이지 테이블 엔트리
[좀 더 알아보기] 페이징의 이점 - 쓰기 시 복사
[좀 더 알아보기] 계층적 페이징 
14-3 페이지 교체와 프레임 할당 
__요구 페이징
__페이지 교체 알고리즘 
__스래싱과 프레임 할당
Chapter 15 파일 시스템
15-1 파일과 디렉터리
__파일
__디렉터리
[좀 더 알아보기] 상대 경로를 나타내는 또 다른 방법
15-2 파일 시스템 
__파티셔닝과 포매팅
__파일 할당 방법
__파일 시스템 살펴보기
[좀 더 알아보기] 저널링 파일 시스템
[좀 더 알아보기] 마운트 

+ Recent posts