지금을 사는 사람

혼자 공부하는 컴퓨터 구조 + 운영체제 1주차 본문

스터디/혼공학습단

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

지금회 2023. 7. 8. 23:12
728x90

짬짬히 공부를 해왔다고 생각했지만 공부한 흔적이 남아있는 것이 없어 무엇을 했는지 모르겠다.

그렇게 생각하던 중 혼공학습단 모집 공고를 보고 지원하게 되었고 선발되었다.

 

앞으로 6주간 '혼자 공부하는 컴퓨터 구조+운영체제' 책을 공부 할 예정이다.

도서정보와 학습 커리큘럼은 아래와 같다.

https://m.hanbit.co.kr/media/books/book_view.html?p_code=B9177037040 

 

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

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

m.hanbit.co.kr

 

 

이번주는 Chapter 01 ~ 03을 공부하고 정리하였다.

 

기본 미션

p51의 확인 문제 3번

프로그램이 실행되려면 반드시 ( 메모리 )에 저장되어 있어야 합니다.
p65의 확인 문제 3번

1101(2)의 음수를 2의 보수 표현법으로 구해 보세요

1) 1101의 모든 0과 1을 뒤집는다. 0010
2) 1)의 결과에 1을 더한다. 0011

 

선택 미션

p100의 스택과 큐의 개념을 정리하기

스택(stack)
- 접시를 쌓는 것과 같은 개념의 자료구조
- 상단에서만 자료를 입력하고 출력한다.
- LIFO(Last In First Out) 후입선출 구조라고 부른다.
- 스택의 명령어. 입력 또는 저장(PUSH), 출력(POP)

큐(queue)
- 물건을 사기 위해 줄을 서는 것과 같은 개념의 자료구조
- 앞쪽에서는 자료를 출력하고 뒷쪽에서는 자료를 입력한다.
- FIFO(First In First Out) 선입선출 구조라고 부른다.
- 큐의 명령어. 입력 또는 저장(PUSH), 출력(POP)

* 스택에서 POP 사용 시 가장 나중에 입력된 자료가 출력되지만
  큐에서 POP 사용 시 가장 먼저 입력된 자료가 출력된다.

 

01. 컴퓨터 구조 시작하기

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

  • 컴퓨터 구조를 이해하면 문제 해결 능력이 향상 됨
  • 성능, 용량, 비용을 고려하며 개발할 수 있음

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

  • 컴퓨터가 이해하는 정보는 데이터(data)와 명령어(instruction)
  • 컴퓨터 4가지 핵심 부품, CPU, 주기억장치(메모리), 보조기억장치, 입출력장치
    • CPU 내부 구성 요소 중 가장 중요한 세 가지
      • 산술논리연산장치 (ALU; Arithmetic Logic Unit)
        • 컴퓨터 내부에서 수행되는 대부분의 계산을 수행함
      • 레지스터(register)
        • 작은 임시 저장 장치
      • 제어장치 (Control Unit)
        • 제어 신호(Control signal)라는 전기 신호를 내보내고 명령어를 해석하는 장치
    • 주기억장치는 RAM(Random Access Memory)과 ROM(Read Only Memory) 두 가지가 있음.
    • 메모리는 보통 RAM을 지칭함
    • 보조기억장치 : HDD, SDD 등
    • 입출력장치 : 마우스, 키보드, 모니터 등
  • 4가지 핵심 부품은 메인보드에 연결 되며 다양한 버스(통로)를 통해서 정보를 주고 받는다.
    • 시스템 버스 내부
      • 주소 버스 (address bus)
      • 데이터 버스 (data bus)
      • 제어 버스 (control bus)

 

02. 데이터

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

  • 컴퓨터는 0과 1로 모든 정보를 표현하고 0과 1로 표현된 정보만 이해할 수 있다.
  • 0과 1을 나타내는 가장 작은 정보 단위는 비트(bit)
  • 워드(word)란 CPU가 한 번에 처리할 수 있는 데이터 크기
    • 하프 워드(half word), 1배 크기(full word), 2배 크기(double word)
  • 현대 컴퓨터의 워드 크기는 대부분 32비트 또는 64비트이다.
    • 인텔의 x86 CPU는 32비트 워드, x64 CPU는 64비트 워드 CPU이다.
  • 이진법(binary)의 음수 표현 방법 중 대표는 2의 보수를 구해 이 값을 음수로 간주하는 방법입니다.
    • 2의 보수의 사전적 의미는 ‘어떤 수를 그보다 큰 2^n에서 뺀값’을 의미합니다.
  • 컴퓨터 내부에서 어떤 수를 다룰 때는 이 수가 양수인지 음수인지를 구분하기 위해 플래그를 사용함.
  • 십육진법(hexadecimal), 15를 넘어가는 시점에 자리 올림하여 수를 표현하는 방법

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

  • 문자 집합 : 컴퓨터가 인식하고 표현할 수 있는 문자의 모음, 문자 집합에 속한 문자를 0과 1로 표현할 수 있음.
  • 아스키 문자 집합에 0부터 127까지의 수가 할당되어 아스키 코드(ASCII)로 인코딩 됨.

 

03. 명령어

03-1. 소스 코드와 명령어

  • 고급 언어
    • 대부분의 프로그래밍 언어
    • 사람이 이해하고 작성하기 쉽게 만들어진 언어
  • 저급 언어
    • 컴퓨터가 직접 이해하고 실행할 수 있는 언어
    • 기계어
      • 0과 1의 명령어 비트로 이루어진 언어, 가독성을 위해 십육진수로 표현되기도 함.
    • 어셈블리어
      • 0과 1로 이루어진 기계어를 읽기 편한 형태로 번역한 저급 언어
      • 임베디드 개발자, 게임 개발자, 정보 보안 분야에서 많이 사용
  • 고급 언어가 저급 언어로 변환되는 방식
    • 컴파일 : 고급언어를 기계언어로 번역
    • 인터프리트 : 고급언어를 중간 언어로 번역하여 바로 실행 가능하게 한 것
  • 컴파일 언어
    • 컴파일러에 의해 소스 코드 전체가 저급 언어로 변환되어 실행되는 고급 언어
    • 컴파일러를 통해 저급언어로 변환된 코드를 목적 코드(object code) 라고 함.
    • 소스 코드 내에 오류가 하나라도 있으면 컴파일이 불가능
  • 인터프리터 언어
    • 인터프리터에 의해 소스 코드가 한 줄 씩 실행되는 고급 언어
    • 소스 코드 N번째에 오류가 있어어도 N-1번째 줄까지 올바르게 수행 됨.

03-2. 명령어의 구조

  • 명령어는 연산 코드와 오퍼랜드로 구성되어 있음.
    • 연산 코드(operation code); 연산자
    • 오퍼랜드(operand); 피연산자
728x90