소프트웨어 개발

개발책 - 혼자 공부하는 컴퓨터구조+운영체제 (1-3장)

인어공쭈 2024. 1. 21. 12:08

최근에 운영체제 공부 때문에 강의랑 책을 구매해서 듣게 되었다.

 

주말에 틈내서 읽게 되었는데 좀더 기억에 남기기 위해서 한번 내가 읽은 내용을 정리해 보았다.

(독후감 겸 내 생각도 들어가져 있음 ㅎㅎ)

 

비전공자라 운영체제와 컴퓨터 구조가 너무 막연하고 어렵게 느껴졌었는데 비유와 대체로운 그림이 조금 더 쉽게 느껴지는 책이었다.

 

전체적으로 목차를 보면 아래와 같다.

 

 

 

C 1. 컴퓨터 구조를 알아야하는 이유

컴퓨터 구조는 실력있는 개발자가 되려면 반듯이 알아야하는 기본 지식!

컴퓨터 구조를 이해하고 있다면 문제 상황을 좀더 빠르게 해결 가능하다. 오류가 생겻을떄 단순히 디버깅만 해서 끝내는 하수가 아니라 근본적인 원인 해결을 위해서 다가가는 고수의 발판이 아닐까?

단순히 코드만 짜는 개발자가 아니라 다양한 문제를 스스로 해결할줄 아는 개발자가 되기 위함이다.

또한 성능/용량/비용을 고려할줄 아는 개발자!

 

컴퓨터구조

  • 컴퓨터가 이해하는 정보 (데이터/명령어)
  • 컴의 4가지 부품 (cpu,메모리,보조기억장치,입출력장치)

 

C 2. 컴퓨터가 이해하는 정보 알아보기

컴퓨터는 0과 1로 데이터를 표현한다. 어떻게 모든 정보를 그 두가지로 표현한다니 신기방기

 

  • 비트: 0과1을 나타내는 가장 작은 단위 
  • 바이트: 8개의 비트를 묶은 단위...1kB/1MB/1GB/1TB => 이후 1000개씩 업덴 단위
  • 이진법에서 음수는 2의 보수로 표현
  • 십육진법은 15를 넘어가는 시점에서 자리를 올림하여 수를 표현하는 방법
  • 문자집합: 컴이 인식할수 있는 문자모음
  • 아스키 문자: 0~127까자의 수의 아스키 문자집합(영어만됌 영어외언어랑 특수문자 표현불가)
  • EUC-KR: 한글 인코딩 방식
  • 유니코드: 여러나라의 문자를 표현하는 문자집합 (UTF-8, etc)

 

C 3. 명령어

컴퓨터는 명령어를 처리하는 기계, 우리가 짠 코드가 컴 내부에서 어떻게 명령어가 되고 실행되는 과정을 알아보자

우리가 짠 소스는 고급언어인데 이게 결국 저급언어로 변환되서 실행되는 것이다.

  • 고급언어: 사람을 위한 언어, 소스코드
  • 저급언어: 컴 언어 (기계어, 어셈블리어), 목적코드

 

변환에는 두가지 방식이 있다.

  • 컴파일언어: 소스 전체가 변환되어 실행 (예시 C)
  • 인터프리터: 소스 코드가 한줄씩 실행 (예시 python) 

 

명령어는 연산코드와 오퍼랜드로 구성되어져 있다.

  • 연산코드:  명령어가 수행할 연산, 연산자 (데이터 전송, 산술,제어흐름 변경,입출력제어)
  • 오퍼랜드: 연산에 사용할 데이터, 데이터가 저장된 위치, 피연산자 (주소 명령어)

 

반응형