본문 바로가기
혼공단

[혼공단 10기] 혼자 공부하는 컴퓨터 구조+운영체제 1주차

by ra388 2023. 7. 8.
더보기

1장 내용 정리

컴퓨터의 핵심 부품 설명

  • 메모리(주기억장치): 현재 실행되는 프로그램의 명령어와 데이터를 저장하며 저장된 값의 위치는 주소이다.
  • CPU(중앙처리장치): 메모리에 저장된 명령어를 읽어 들이고 실행하는 부품, 산술논리연산장치, 레지스터, 제어장치로 구성되어있다.
  • 보조기억장치: 전원이 꺼져도 보관될 프로그램을 저장하는 부품, HDD, SSD, USB, DVD 등등의 저장장치
  • 입출력장치: 컴퓨터 외부에서 컴퓨터 내부와 정보를 교환하는 장치, 키보드, 마우스, 헤드셋 등
  • 메인보드와 시스템 버스: 핵심 부품들을 메인보드라는 판에 연결, 메인보드 내부의 '버스'라 부르는 통로로 정보를 주고 받는다. 이때 핵심 부품을 연결하는 버스가 시스템 버스

2장 내용 정리

0과 1로 데이터를 표현하는 방법

  • 단위: 비트(bit) < 바이트(byte) < 킬로바이트(kB) < 메가바이트(MB) < 기가바이트(GB) < 테라바이트
  • 이진수: 이진법으로 나타낸 수, 수학에선 뒤에 (2)를 붙이고 코드상에선 앞에 0b를 붙인다.
    • 이진수의 음수 표현: 2의 보수를 음수로 간주한다. 1) 모든 0과 1을 뒤집는다. 2) 1을 더한다
  • 십육진수: 이진수 4글자를 십육진수 1글자로 변환 가능하여 숫자의 길이를 줄일 수 있다.
  • 문자 집합: 아스키, EUC-KR, 유니코드, UTF-8 등 컴퓨터가 인식하고 표현할 수 있는 문자의 모음
  • 인코딩: 문자 집합 속 문자를 0과 1로 변환한 문자 코드
  • 디코딩: 문자 코드를 문자로 변환하는 과정
  • 아스키 코드: 7비트로 표현한 문자 모음으로 숫자, 영어, 일부 특수 문자의 집합이다.
  • 유니 코드: 모든 나라 언어의 문자 집합과 인코딩 방식을 통일한 문자 집합이다.

 3장 내용 정리

명령어

  • 고급 언어: 대부분의 프로그래밍 언어로 사람이 이해하고 작성하기 쉽도록 만든 언어
  • 저급 언어: 컴퓨터가 직접 이해하고 실행할 수 있는 언어로 기계어와 어셈블리어가 있다.
  • 기계어와 어셈블리어: 이진수 또는 십육진수로 이루어진게 기계어, 이를 읽기 쉽게 번역한 언어
  • 컴파일 언어: 컴파일러에 의해 소스 코드 전체가 저급 언어로 변환되어 실행되는 고급언어로 C언어가 대표적이다. 소스 코드 내에 오류가 하나라도 있으면 실행되지 않는다. --> 컴퓨터가 변환된 코드를 한번에 받기 때문에 인터프리터 방식보다 빠르다.
  • 인터프리터 언어: 인터프리터에 의해 소스 코드가 한 줄씩 실행되는 고급 언어로 Python이 대표적이다. N번째 줄에 문법 오류가 있더라도 그 전 줄까지는 올바르게 수행된다. --> 컴퓨터가 한줄 한줄 이해하기 때문에 느려짐

명령어의 구조

  • 연산 코드: 더해라, 빼라, 저장해라 등 명령어가 수행할 연산, 연산자라고도 부른다.
    • 데이터 전송, 산술/논리 연산, 제어 흐름 변경, 입출력 제어
  • 오퍼랜드: 연산에 사용할 데이터 또는 데이터의 위치로 피연산자라고도 부른다.
    • 오퍼랜드 필드에 데이터를 직접 명시하기 보단 데이터가 저장된 메모리 주소나 레지스터 이름이 담기는 경우가 많다.
    • 오퍼랜드 수에 따라 _-주소 명령어라고 한다.

기본 미션

1) p.51 확인 문제 3번
>>> 프로그램이 실행되려면 반드시 ( 메모리 )에 저장되어 있어야 합니다.
2) p.65의 확인 문제 3번
>>> (1101) 모든 0과 1 뒤집기 --> (0010) 1더하기 --> (0011)

선택 미션

p.100의 스택과 큐의 개념을 정리하기
>>> 스택: 데이터가 컵에 쌓이는 모양, 후입 선출
>>> 큐: 데이터가 대기줄에 쌓이는 모양, 선입 선출