학교에서 컴퓨터구조와 운영체제 수업을 듣기 전 개념들을 공부해보고 싶어서 처음 개념을 확실하고 이해하기 쉽게 혼공컴운 책과 강의를 활용하여 공부할 예정이다. 책과 강의가 같이 있어서 이해 안되는 부분은 강의를 보며 잘 이해가 되고, 정리하면서 할 수 있어서 좋았다. 남은 기간동안 매주 열심히 공부해보자 !
✤ 컴퓨터 구조를 이해하면 문법뿐만 아니라 성능, 용량, 비용을 고려하며 개발 가능
✤ 컴퓨터 구조 : 컴퓨터가 이해하는 정보(데이터, 명령어) / 4가지 핵심 부품(CPU, 메모리, 보조기억장치, 입출력장치)
✤ 컴퓨터 구조 (in 메인보드)
- 메모리 : 현재 실행되는 프로그램의 명령어와 데이터를 저장하는 부품
- CPU : 메모리에 저장된 명령어를 읽어들이고, 해석하고, 실행하는 부품 (제어장치, 레지스터, 산술연산장치)
- 보조기억장치 : 전원이 꺼져도 보관할 프로그램을 저장하는 부품
- 입출력장치 : 컴퓨터 외부에 연결되어 컴퓨터 내부와 정보를 교환할 수 있는 부품
- 시스템버스 : 컴퓨터의 4가지 핵심부품들이 서로 정보를 주고받는 통로
✤ 주요 용어
- 비트 : 0과 1로 표현할 수 있는 가장 작은 정보 단위
- 바이트 : 비트보다 더 큰 정보 단위 (1bite = 8bit)
- 이진법 (16진법으로 변형하여 자주 사용)
- 2의보수 : 이진법에서 음수를 표현하는 방법
✤ 문자 집합
- 문자 집합 : 컴퓨터가 인식할 수 있는 문자의 모음, 이 집합의 문자를 인코딩해서 0과 1로 표현가능
- 아스키 코드 : 아스키 문자 집합에 0~127까지 수가 할당되어 아스키 코드로 인코딩함.
- EUC-KR : 한글을 2bite 크기로 인코딩할 수 있는 인코딩 방식.
- 유니코드 : 여러나라의 문자들을 광범위하게 표현할 수 있는 통일된 문자 집합. (UTF-8, UTF-16, UTF-32)
✤ 컴퓨터 언어 종류
- 고급 언어 : 사람 중심의 언어
- 저급 언어 : 컴퓨터 중심의 언어
- 기계어 : 저급언어 종류이고, 0과 1로 이루어진 명령어
- 어셈블리어 : 저급언어 종류이고, 기계어를 사람이 읽기 편한 형태로 변역한 언어
- 컴파일 언어 : 컴파일러에 의해 소스 코드 전체가 저급 언어로 변환되어 실행되는 언어
- 인터프리터 언어 : 인터프리터에 의해 소스코드가 한줄씩 저급언어로 변환되어 실행되는 언어
✤ 명령어
- 명령어 : 연산코드 + 오퍼랜드
- 연산코드 : 명령어가 수행할 연산 (데이터 전송 / 산술,논리 연산 / 제어 흐름 변경 / 입출력 제어)
- 오퍼랜드 : 연산에 사용할 데이터 or 연산에 사용할 데이터가 저장된 주소
- 주소 지정 방식 : 연산에 사용할 데이터 위치를 찾는 방법 (즉시 주소 지정 방식 / 직접 주소 지정 방식 / 간접 주소 지정 방식 / 레지스터 주소 지정 방식 / 레지스터 간접 주소 방식)
1) 51p 확인문제 3번
프로그램이 실행되려면 반드시 (메모리) 에 저장되어 있어야 합니다.
2) 65p 확인문제 3번
1101(2) 을 음수로 표현한 값은 0011(2) 입니다.
1101 → 0010 → 0011
1) 100p 스택과 큐의 개념을 정리하기
- 스택 : 가장 마지막에 입력된 데이터가 가장 처음에 나오는 형태 (반대로, 가장 처음에 입력된 데이터가 가장 마지막에 나오는 형태)
= LIFO (Last In First Out)
- 큐 : 가장 마지막에 입력된 데이터가 순서대로 마지막에 나오는 형태
= FIFO (First In First Out)