상세 컨텐츠

본문 제목

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

IT

by ALLSTATS 2023. 5. 23. 07:37

본문

반응형

이미지 출처는 구글검색입니다.

 

 

 

혼자 공부하는 컴퓨터구조+운영체제 라는 책입니다.

저도 아직 공부를 하는 입장으로써 많이 부족한 채로 리뷰를 쓸 수도 있다는 점을 양해바라고 리뷰를 읽어주시길 바랍니다.

 

책 서문에서부터 주니어 개발자들이 운영체제? 컴퓨터구조? 그런거 알아야해? 그냥 코드만 잘 짜면 되는거 아냐? 라는 생각을 가지고 있는 분들이 많고 그런 분들에게 있어서 도움이 되는 책이라고 설명이 되어 있습니다. 

 

이 책은 컴퓨터공학을 공부를 하다보면 나오는 여러가지 기반지식들이 있습니다. 예를 들어 C언어를 보면 메모리쪽을 보게 되고 임베디드를 공부하면 CPU를 웹,앱개발자들보다 훨씬 더 잘알아야 하고, 서버나 리눅스를 보다보면 프로세스 관리를 보게 될텐데

그런 토막지식들을 한번에 모아놓은 학문인 컴퓨터구조, 운영체제에 대해 쉽게 알려주는 책이라고 볼 수 있습니다.

 

즉 컴퓨터공학에 있어서 기본이 되는 베이스 지식들이 굉장히 잘 알려주기 때문에 프로그래밍 언어를 먼저 공부하고 이 책을 본다면 더더욱 잘 이해할수 있을거라고 생각합니다.

애초에 저자도 프로그래밍 언어 한두개쯤은 공부하고 온다면 더 잘 이해할수 있을거라고 써놨더군요

 

혼자 공부하는 시리즈는 비전공자나 초심자들에게 쉽게 알려준다는 취지와 함께 좀더 학습에 재미를 붙혀줌으로써 앞으로의 학습 방향을 스스로 잡아 나갈수 있게 해주는거 같습니다.

 

전공 비전공을 떠나서 어차피 할사람은 자기 스스로 자료를 찾아가며 열심히 하고 안할사람은 때려죽여도 안하더군요. 이 책은 재미를 붙혀주는 것만으로도 책의 지식의 심도와는 상관 없이 좋은 책인거 같습니다.

 

 

제가 느낀 단점으로는 아무래도 주제가 주제이니 만큼. 컴퓨터구조와 운영체제는 각 하나의 파트만으로도 넓은 스펙트럼을 가진 분야인데 약 500페이지의 책에 넣으려고 하다보니 전체적으로 심도있는건 아닌거 같습니다.

이 부분은 저자의 역량이 아니라 책의 취지상으로 어쩔수 없는 부분인거 같습니다. 하지만 이 책으로 기초를 잡고 다른책을 본다면 더 쉽게 이해할수 있을거라고 생각하며, 저자도 그렇게 하는것이 좋다고 설명하고 있으니 큰 단점은 아닌거 같습니다.

 

 

Chapter 01 컴퓨터 구조 시작하기

 

01-1 구조를 알아야 하는 이유

__문제 해결

__성능, 용량, 비용

[2가지 키워드로 정리하는 핵심 포인트]

[확인 문제]

 

01-2 컴퓨터 구조의 큰 그림

__컴퓨터가 이해하는 정보

__컴퓨터의 4가지 핵심 부품

[7가지 키워드로 정리하는 핵심 포인트]

[확인 문제]

 

 

Chapter 02 데이터

 

02-1 0과 1로 숫자를 표현하는 방법

__정보 단위

__이진법

__십육진법

[5가지 키워드로 정리하는 핵심 포인트]

[확인 문제]

 

02-2 0과 1로 문자를 표현하는 방법

__문자 집합과 인코딩

__아스키 코드

__EUC-KR

__유니코드와 UTF-8

[4가지 키워드로 정리하는 핵심 포인트]

[확인 문제]

 

 

Chapter 03 명령어

 

03-1 소스 코드와 명령어

__고급 언어와 저급 언어

__컴파일 언어와 인터프리터 언어

[좀 더 알아보기] 목적 파일 vs 실행 파일

[6가지 키워드로 정리하는 핵심 포인트]

[확인 문제]

 

03-2 명령어의 구조

__연산 코드와 오퍼랜드

__주소 지정 방식

[좀 더 알아보기] 스택과 큐

[4가지 키워드로 정리하는 핵심 포인트]

[확인 문제]

 

 

Chapter 04 CPU와 작동 원리

 

04-1 ALU와 제어장치

__ALU

__제어장치

[4가지 키워드로 정리하는 핵심 포인트]

[확인 문제]

 

04-2 레지스터

__반드시 알아야 할 레지스터

__특정 레지스터를 이용한 주소 지정 방식(1): 스택 주소 지정 방식 

__특정 레지스터를 이용한 주소 지정 방식(2): 변위 주소 지정 방식 

[좀 더 알아보기] 상용화된 CPU 속 레지스터 및 주소 지정 방식

[8가지 키워드로 정리하는 핵심 포인트]

[확인 문제]

 

04-3 명령어 사이클과 인터럽트

__명령어 사이클 

__인터럽트 

[좀 더 알아보기] 예외의 종류

[5가지 키워드로 정리하는 핵심 포인트]

[확인 문제]

 

 

Chapter 05 CPU 성능 향상 기법

 

05-1 빠른 CPU를 위한 설계 기법 

__클럭

__코어와 멀티 코어

__스레드와 멀티스레드

[5가지 키워드로 정리하는 핵심 포인트]

[확인 문제]

 

05-2 명령어 병렬 처리 기법 1

__명령어 파이프라인 

__슈퍼스칼라 

__비순차적 명령어 처리

[3가지 키워드로 정리하는 핵심 포인트]

[확인 문제]

 

05-3 CISC와 RISC

__명령어 집합

__CISC

__RISC  

[3가지 키워드로 정리하는 핵심 포인트]

[확인 문제]

 

 

Chapter 06 메모리와 캐시 메모리

 

06-1 RAM의 특징과 종류 

__RAM의 특징 

__RAM의 용량과 성능

__RAM의 종류

[6가지 키워드로 정리하는 핵심 포인트]

[확인 문제]

 

06-2 메모리의 주소 공간

__물리 주소와 논리 주소

__메모리 보호 기법

[5가지 키워드로 정리하는 핵심 포인트]

[확인 문제]

 

06-3 캐시 메모리 

__저장 장치 계층 구조 

__캐시 메모리

__참조 지역성 원리  

[4가지 키워드로 정리하는 핵심 포인트]

[확인 문제]

 

 

Chapter 07 보조기억장치

 

07-1 다양한 보조기억장치

__하드 디스크  

__플래시 메모리 

[6가지 키워드로 정리하는 핵심 포인트]

[확인 문제]

 

07-2 RAID의 정의와 종류

__RAID의 정의

__RAID의 종류 

[6가지 키워드로 정리하는 핵심 포인트]

[확인 문제]

 

 

Chapter 08 입출력장치

 

08-1 장치 컨트롤러와 장치 드라이버

__장치 컨트롤러 

__장치 드라이버 

[2가지 키워드로 정리하는 핵심 포인트]

[확인 문제]

 

08-2 다양한 입출력 방법

__프로그램 입출력

__인터럽트 기반 입출력

__ DMA 입출력

[6가지 키워드로 정리하는 핵심 포인트]

[확인 문제]

 

 

Chapter 09 운영체제 시작하기

 

09-1 운영체제를 알아야 하는 이유

__운영체제란

__운영체제를 알아야 하는 이유 

[2가지 키워드로 정리하는 핵심 포인트]

[확인 문제]

 

09-2 운영체제의 큰 그림

__운영체제의 심장, 커널

__이중 모드와 시스템 호출

__운영체제의 핵심 서비스 

[좀 더 알아보기] 가상 머신과 이중 모드의 발전

[좀 더 알아보기] 시스템 호출의 종류

[4가지 키워드로 정리하는 핵심 포인트]

[확인 문제]

 

 

Chapter 10 프로세스와 스레드

 

10-1 프로세스 개요

__프로세스 직접 확인하기

__프로세스 제어 블록

__문맥 교환

__프로세스의 메모리 영역 

[4가지 키워드로 정리하는 핵심 포인트]

[확인 문제]

 

10-2 프로세스 상태와 계층 구조

__프로세스 상태

__프로세스 계층 구조 

__프로세스 생성 기법

[4가지 키워드로 정리하는 핵심 포인트]

[확인 문제]

 

10-3 스레드

__프로세스와 스레드 

__멀티프로세스와 멀티스레드 

[3가지 키워드로 정리하는 핵심 포인트]

[확인 문제]

 

 

Chapter 11 CPU 스케줄링

 

11-1 CPU 스케줄링 개요

__ 프로세스 우선순위

__스케줄링 큐

__선점형과 비선점형 스케줄링 

[7가지 키워드로 정리하는 핵심 포인트]

[확인 문제]

 

11-2 CPU 스케줄링 알고리즘

__스케줄링 알고리즘의 종류

[5가지 키워드로 정리하는 핵심 포인트]

[확인 문제]

 

 

Chapter 12 프로세스 동기화

 

12-1 동기화란

__동기화의 의미

__ 생산자와 소비자 문제

__공유 자원과 임계 구역 

[4가지 키워드로 정리하는 핵심 포인트]

[확인 문제]

 

12-2 공유 자원과 임계 구역 

__뮤텍스 락

__세마포

__모니터

[3가지 키워드로 정리하는 핵심 포인트]

[확인 문제]

 

 

Chapter 13 교착 상태

 

13-1 교착 상태란

__식사하는 철학자 문제 

__자원 할당 그래프

__교착 상태 발생 조건 

[4가지 키워드로 정리하는 핵심 포인트]

[확인 문제]

 

13-2 교착 상태 해결 방법

__교착 상태 예방

__교착 상태 회피

__교착 상태 검출 후 회복

[3가지 키워드로 정리하는 핵심 포인트]

[확인 문제]

 

 

Chapter 14 가상 메모리

 

14-1 연속 메모리 할당

__스와핑

__메모리 할당

__외부 단편화

[4가지 키워드로 정리하는 핵심 포인트]

[확인 문제]

 

14-2 페이징을 통한 가상 메모리 관리 

__페이징이란

__페이지 테이블

__페이징에서의 주소 변환

__페이지 테이블 엔트리

[좀 더 알아보기] 페이징의 이점 - 쓰기 시 복사

[좀 더 알아보기] 계층적 페이징 

[4가지 키워드로 정리하는 핵심 포인트]

[확인 문제]

 

14-3 페이지 교체와 프레임 할당 

__요구 페이징

__페이지 교체 알고리즘 

__스래싱과 프레임 할당

[4가지 키워드로 정리하는 핵심 포인트]

[확인 문제]

 

 

Chapter 15 파일 시스템

 

15-1 파일과 디렉터리

__파일

__디렉터리

[좀 더 알아보기] 상대 경로를 나타내는 또 다른 방법

[7가지 키워드로 정리하는 핵심 포인트]

[확인 문제]

 

15-2 파일 시스템 

__파티셔닝과 포매팅

__파일 할당 방법

__파일 시스템 살펴보기

[좀 더 알아보기] 저널링 파일 시스템

[좀 더 알아보기] 마운트 

[7가지 키워드로 정리하는 핵심 포인트]

[확인 문제]

 

____정답 및 해설

____찾아보기

 

목차는 한빛미디어 홈페이지에서 가져왔습니다.

 

한빛미디어 유튜브

https://www.youtube.com/playlist?list=PLVsNizTWUw7FCS83JhC1vflK8OcLRG0Hl 

 

[컴퓨터 공학 기초 강의] 혼자 공부하는 컴퓨터 구조+운영체제

강민철 저자님과 함께하는 『혼자 공부하는 컴퓨터 구조+운영체제』 강의입니다. 다른 입문서에서는 알려주지 않았던 진짜 컴퓨터 공학 지식을 만나보세요! 👨‍🏫 누구를 위한 강의인가요? -

www.youtube.com

 

강민철 저자 유튜브

https://www.youtube.com/channel/UC4Hha9F0LZcOtqyL0F3aNkw

 

 

 

이 책의 장점은 유튜브에서 제공하는 저자 직강인데요 무료일뿐 아니라 퀄리티도 좋습니다.

쉽고 지루하지 않게 강의하려는 모습이 보이는데,

당연히 분야가 분야니만큼 사람마다 어렵게 느껴질수도 있으며, 그렇게 되면 당연히 지루함을 느낄수도 있을겁니다.

 

뭐 책없이 저자의 유튜브 직강만 봐도 충분히 공부는 할수 있습니다.

하지만 그래도 책에는 강의에서 나오지 못한 부분을 더 알려주기도 하고 앞으로 계속 공부하실 예정이라면 책 한권쯤은 가지고 있는것을 저는 추천드리나 선택은 개인의 몫이니까요

 

총평: 책의 이름에 맞게 초심자들이 혼자서 공부하기에 좋은 난이도, 컴퓨터구조와 운영체제의 공부를 시작하려고 할때 기초를 잡고 방향을 잡기에는 좋은 책

 

 

출판사 지원없이 제 개인적으로 사서 작성하는 리뷰입니다.

반응형

관련글 더보기