✨혼공학습단 11기✨
📌1주차 목표

📚Chapter01 : 컴퓨터 구조 시작하기
📘01-2 컴퓨터 구조의 큰 그림
데이터
| 컴퓨터가 이해하는 정적인 정보(숫자,문자,이미지,동영상).컴퓨터와 주고받는 정보나 컴퓨터에 저장된 정보를 가리킬때 편하게 통칭하기도 |
명령어
| 데이터를 움직이고 컴퓨터를 작동시키는 정보. |
중앙처리장치(CPU)
| 메모리에 저장된 명령어를 읽어 들이고 해석하고 실행하는 부품 |
-ALU(산술논리연산장치)
계산기. 컴퓨터 내부에 수행되는 대부분의 계산을 처리
-레지스터
cpu 내부의 작은 임시 저장장치. 프로그램을 실행하는데 필요한 값을 임시로 저장함.여러개의 레지스터가 존재
-제어장치
제어신호(컴퓨터 부품을 관리하고 작동시키기 위한 일종의 전기신호)라는 전기 신호를 내보내고 명령어를 해석함
주기억장치(메모리 (보통RAM))
| 현재 실행되는 프로그램의 명령어와 데이터를 저장하는 부품 |
- 저장된 값에 빠르고 효율적으로 접근하기 위해 주소라는 개념 사용
-가격이 비싸 저장용량이 적음. 전원이 꺼지면 저장된 내용을 모두 잃음
보조기억장치
| 전원이 꺼져도 보관할 프로그램을 저장하는 부품 |
-하드디스크,SSD,USB,DVD,CD-ROM
입출력장치
| 컴퓨터 외부에 연결되어 컴퓨터 내부와 정보를 교환할 수 있는 부품 |
-마우스,스피커,프린터,마우스,키보드
메인보드
| 컴퓨터의 핵심 부품들이 연결된 판 |
-메인보드 내 버스라는 통로를 통해 연결된 부품들이 서로 정보를 주고 받음
시스템 버스
| 컴퓨터의 네 가지 핵심 부품들이 서로 정보를 주고받는 통로 |
- 주소버스,데이터버스,제어버스 존재
📚Chapter02 : 데이터
📘02-1 0과 1로 숫자를 표현하는 방법
비트
0과 1을 나타내는 가장 작은 정보단위
byte⇒KB⇒MB⇒GB⇒TB
| 1 byte | 8bit |
| 1kB | 1,000byte |
| 1MB | 1,000KB |
| 1GB | 1,000MB |
| 1TB | 1,000GB |
이진법
| 0과1만으로 모든 숫자를 표현.아래첨자(2)를 붙이거나 이진 수 앞에 0b를 붙여 표시 |
이진수의 음수 표현
| 2의 보수 사용(모든 0과 1을 뒤집고, 거기에 1을 더한 값) |
-> 실제 이진수만 봐서는 음수인지 양수인지 구분 어렵기 때문에 컴퓨터내부에서 플래그붙여 표시됨
십육진법
| 이진수로는 숫자의 길이가 너무 길어진다는 단점 발견.15를 넘어가는 기점에서 올림. 아래첨자(16)을 붙이거나 0x를 붙여 구분 |
십진수 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
십육진수0 1 2 3 4 5 6 7 8 9 A B C D E F 10 11
십육진수를 이진수로 변환하기
| 십육진수 한글자를 4비트의 이진수로 간주 |
ex) 1A2B(16) = > 1(16) A(16) 2(16) B(16) =>0001(2),1010(2),0010(2),1011(2) =>0001101000101011(2)
이진수를 십육 진수로 변환하기
| 이진수 숫자를 네개씩 끊고 끊어준 네개의 숫자를 하나의 십육진수로 변환 후 이어붙이면 됨. |
ex)11010101(2)=>1101(2),0101(2) =>D(16),5(16) =>D5(16)
*)이진수를 십육진수로 십육진수를 이진수로 변환하기 쉽기때문에 사용
📘02-2 0과 1로 문자를 표현하는 방법
문자 인코딩
| 문자를 0과 1로 변환. 컴퓨터가 이해하게 |
문자 디코딩
| 0과1을 문자로 변환. 사람이 이해하게 |
아스키 코드
| 아스키문자 집합에 0부터 127까지의 수가 할당됨 |
EUC-KR
| 한글을 2바이트 크기로 인코딩 하는 완성형 인코딩 방식 |
유니코드
| 여러 나라의 문자들을 광범위 하게 표현할 수 있는 통일된 문자 집합.UTF-8,UTF-16,UTF-32 는 유니코드 문자의 인코딩 방식 |
📚Chapter03 : 명령어
📘03-1 소스 코드와 명령어
저급언어
| 컴퓨터가 직접 이해하고 실행 할 수 있는 언어. 명령어로 이루어짐. |
-기계어
0과 1의 명령어 비트로 이루어진 언어
-어셈블리어
0과 1로 표현된 명령어(기계어)를 읽기 편한 형태로 번역한 언어.
고급언어
| 사람을 위한 언어 |
->고급 언어로 작성된 소스 코드가 실행되려면 반드시 저급 언어(명령어)로 변환되야 함.
컴파일 언어
| 컴파일러에 의해 소스코드 전체가 저급 언어로 변환되어 실행되는 고급언어. |
-컴파일
코드 전체가 저급언어로 변환되는 과정
-컴파일러
컴파일을 수행해주는 도구
-목적코드
컴파일러를 통해 저급언어로 변환한 코드
인터프리터 언어
| 인터프리터에 의해 소스 코드가 한 줄씩 실행되는 고급언어 (ex 파이썬) |
-인터프리터
소스코드를 한 줄씩 저급 언어로 변환해 실행해주는 도구
-> 소스코드 전체를 저급 언어로 변환하는 시간을 기다릴 필요 x
| 컴파일 언어 | 인터프리터 언어 | |
| 방식 | 소스 전체 | 소스 한 줄씩 |
| 오류 | 소스 코드내 오류 하나라도 있으면 컴파일 불가능 | 소스 코드 N번째에 문법 오류가 있으면 N-1 번째 까지 실행 |
| 속도 | 컴파일을 통해 나온 목적코드가 저급언어이기때문에 빠름 | 소스 한줄 한줄 저급언어로 해석하며 실행해야해 느림 |
📘03-2 명령어의 구조
명령어 = 연산코드 + 오퍼랜드
| 연산코드(필드) | 오퍼랜드(필드) |
연산코드(연산자)
| 명령어가 수행할 연산 |
유형 4가지
1)데이터전송(MOVE,STORE,LOAD(FETCH),PUSH,POP)
2)산술/논리 연산(ADD,SUBTRACT.MULTIPLY,DIVIDE,…)
3)제어 흐름 변경(JUMP,CONDITIONAL JUMP,HALT,CALL,RETURN)
4)입출력 제어(READ(INPUT),WRITE(OUTPUT), START IO,TEST IO)
->명령어의 종류와 생김새는 cpu 마다 다르기때문에 연산 코드의 종류와 생김새 또한 cpu 마다 다름
오퍼랜드(피연산자)
| 연산에 사용할 데이터, 사용할 데이터가 저장된 위치 |
0-주소 명령어: 오퍼랜드 x
1-주소 명령어: 오퍼랜드1개
2-주소 명령어: 오퍼랜드2개
3-주소 명령어: 오퍼랜드3개
-> 연산에 사용할 데이터(숫자,문자) 직접적 명시보다는 저장된 위치, 메모리 주소나 레지스터 이름이 주로 담김 따라서 주소 필드라고 부르기도 함.
주소지정방식
| 명령어의 길이 때문에 주소를 담는 형식을 사용. 연산에 사용할 데이터 위치를 찾는 방법. |
즉시 주소 지정 방식 (데이터크기가 작아짐, 빠름)
| 연산코드 | 연산에 사용할 데이터 |
직접 주소 지정 방식
| 연산코드 | 유효 주소(->메모리에 데이터) |
간접 주소 지정 방식
| 연산코드 | 유효 주소의 주소(->메모리에 유효주소->메모리에서 데이터) |
레지스터 주소 지정 방식
| 연산코드 | 유효주소 (->레이스터안의 데이터로) |
레지스터 간접 주소 지정 방식
| 연산코드 | 유효주소를 저장한 레지스터(->레지스터안에 유효주소->메모리에 데이터) |
💥기본미션💥
👉🏻p.51 확인문제 3번
| 3. 다음 설명의 빈칸에 들어갈 알맞은 내용을 써 보세요. 프로그램이 실행되려면 반드시(메모리)에 저장되어 있어야 합니다. |
👉🏻p.65 확인문제 3번
| 3. 1101(2)의 음수를 2의 보수 표현법으로 구해보세요. 1101 ⬇️ 0010 ⬇️ 0011 1101(2)를 음수로 표현한 값은 0011(2) 입니다. |
* 보수= 0과 1 뒤집기 +1
☄️특별미션☄️
👉🏻p. 100 스택과 큐의 개념 정리하기
스택
| 한 쪽 끝이 막혀있는 통 같은 저장공간. 나중에 저장한 데이터를 가장 먼저빼내는 데이터 관리방식(후입선출)이라 LIFO(리포) 자료 구조라고 부름 |
ex) 1-2-3-4-5 로 저장하면 뺄때는 5-4-3-2-1
-push
새로운 데이터 저장하는 명령어
-pop
데이터 꺼내는 명령어
큐
| 양쪽이 뚫려있는 통 같은 저장공간. 가장먼저 저장된 데이터 부터 빼내는 데이터 관리방식(선입선출) 이라 FIFO (피포) 자료구조라고 부름 |
ex)5-4-3-2-1 로 저장하면 뺄때도 5-4-3-2-1
'혼공단' 카테고리의 다른 글
| [혼공컴운]6주차(chap 14~15) (0) | 2024.02.12 |
|---|---|
| [혼공컴운]5주차(chap 12~13) (0) | 2024.02.04 |
| [혼공컴운]4주차(chap09~11)정신없는 요즘..시간날때 추가하기 (1) | 2024.01.28 |
| [혼공컴운]2주차(chap04~05) 코어와 스레드 (1) | 2024.01.14 |