혼공 족장? 님이 공지사항이랑 같이 올려주신 짤인데
너무 귀엽고 맘에 들어서 저장함
책 내용 생각보다 어려워서 지금 약간 '안되면 울기' 상태
흑흑
숙제
다음 설명의 빈칸에 들어갈 알맞은 내용을 써 보세요. (51쪽 3번 문제)
프로그램이 실행되려면 반드시 (주기억장치(메모리))에 저장되어 있어야 합니다. |
1101(2)의 음수를 2의 보수 표현법으로 구해보세요. (65쪽 3번 문제)
1101(2)를 음수로 표현한 값은 0011입니다. |
![](https://t1.daumcdn.net/keditor/emoticon/friends1/large/032.gif)
드래그로 긁어보세요♡ (신경썼음)
2주차엔 선택 숙제도 할 수 있게끔 노력을...
Chapter 01. 컴퓨터 구조 시작하기
학습 목표 1. 컴퓨터 구조를 왜 알아야 하는지 이해합니다.
학습 목표 2. 컴퓨터 구조의 큰 그림을 그려봅니다.
컴퓨터의 구조를 이해하고 있다면 문제 상황을 빠르게 진단할 수 있고, 문제 해결의 실마리를 다양하게 찾을 수 있다.
→ 문제 해결 능력이 향상된다.
또한, 입·출력에만 집중하는 개발을 넘어 성능, 용량, 비용까지 고려할 수 있는 개발자가 될 수 있다.
우리가 알아야 할 컴퓨터의 구조 지식은 크게 두가지
1) 컴퓨터가 이해하는 정보
2) 컴퓨터의 네 가지 핵심 부품
컴퓨터가 이해하는 정보는 다시 데이터와 명령어로 나뉜다.
이 둘은 모두 0과 1로 표현되는 정보다. 컴퓨터는 0과 1로 표현된 정보만을 이해한다.
데이터란 숫자와 문자, 이미지, 동영상같은 정적인 정보를 말한다.
데이터를 움직이고 컴퓨터를 작동시키는 정보를 명령어라고 한다.
컴퓨터의 프로그램은 명령어들의 모음이라고 할 수 있다.
컴퓨터의 4가지 핵심 부품에는
중앙처리장치(CPU), 주기억장치(메모리), 보조기억장치, 입출력장치가 있다.
메모리
현재 실행되는 프로그램의 명령어와 데이터가 저장되는 부품.
프로그램이 실행되려면 반드시 메모리에 저장되어 있어야 한다.
메모리는 효율적으로 데이터에 접근하기 위해 주소라는 개념을 사용한다.
CPU
저장된 명령어를 읽어들이고, 해석하고, 실행하는 부품.
산술논리연산장치(ALU), 레지스터, 제어장치로 나뉜다.
보조기억장치
값비싸고 휘발성인 메모리를 보조하는 역할을 한다.
메모리는 현재 실행되는 프로그램을, 보조기억장치는 보관할 프로그램을 저장한다.
입출력장치
컴퓨터 외부에 연결되어 내부와 정보를 교환하는 장치.
메모리와 함께 묶어 주변장치라고 칭하기도 한다.
메인보드와 시스템 버스
컴퓨터의 모든 핵심 부품은 메인보드에 연결된다. 마더보드라고도 한다.
메인보드 내부의 버스라는 통로를 사용해 부품들이 서로 정보를 주고받는다.
네가지의 핵심 부품을 연결하는 버스를 시스템 버스라고 한다.
Chapter 02. 데이터
학습 목표 1. 컴퓨터가 이해하는 정보 단위를 이해합니다.
학습 목표 2. 0과 1로 다양한 숫자를 표현하는 방법을 이해합니다.
학습 목표 3. 0과 1로 다양한 문자를 표현하는 방법을 이해합니다.
0과 1을 나타내는 가장 작은 정보의 단위를 비트라고 한다.
1비트는 0과 1, 두 가지 정보를 표현할 수 있음. 즉 n비트는 2^n가지 정보를 표현할 수 있다.
1바이트(1byte) | 8비트(8bit) |
1킬로바이트(1kB) | 1,000 바이트(1,000byte) |
1메가바이트(1MB) | 1,000 킬로바이트(1,000kB) |
1기가바이트(1GB) | 1,000 메가바이트(1,000MB) |
1테라바이트(1TB) | 1,000 기가바이트(1,000GB) |
0과 1만으로 모든 숫자를 표현하는 방법을 이진법이라고 한다.
컴퓨터가 인식하고 표현할 수 있는 문자의 모음을 문자 집합이라고 한다.
문자 집합에 속한 문자를 0과 1로 변환해야 컴퓨터가 이해할 수 있는데, 이 과정을 문자 인코딩이라고 한다.
(↑ 이 과정의 반대는 문자 디코딩이라고 함)
아스키는 초창기 문자 집합 중 하나로, 알파벳, 아라비아 숫자, 특수 문자 일부를 포함한다.
총 128개의 문자를 표현한다.
EUC-KR은 한글을 2바이트 크기로 인코딩할 수 있는 완성형 인코딩 방식이다.
유니코드는 여러나라의 문자를 광범위하게 표현할 수 있는 통일된 문자 집합이다.
Chapter 03. 명령어
학습 목표 1. 고급 언어와 저급 언어의 차이를 이해합니다.
학습 목표 2. 컴파일 언어와 인터프리터 언어의 차이를 이해합니다.
학습 목표 3. 명령어를 구성하는 연산 코드와 오퍼랜드에 대해 학습합니다.
학습 목표 4. 명령어의 주소 지정 방식에 대해 학습합니다.
대부분의 프로그래밍 언어는 고급 언어에 속한다.
고급 언어란 '사람을 위한 언어'를 뜻하는 단어다.
반대로 저급 언어란, 컴퓨터가 직접 이해하고 실행할 수 있는 언어를 의미하고, 크게 두 종류로 나뉜다.
기계어란 0과 1의 명령어 비트로 이루어진 언어다. 그리고 기계어를 읽기 편한 형태로 변역한 언어가 어셈블리어다.
개발자들이 고급 언어로 작성한 소스코드는 저급 언어로 변환되어 실행되는데,
컴파일 방식과 인터프리트 방식으로 변환된다.
컴파일 방식으로 작동하는 언어를 컴파일 언어, 인터프리트 방식으로 작동하는 언어는 인터프리터 언어라고 한다.
컴파일 언어는 코드의 전체를 컴파일한다. 이때 소스 코드 내에서 오류를 하나라도 발견하면,
해당 소스 코드는 컴파일에 실패하게 된다.
하지만 인터프리터 언어는 소스 코드를 한 줄씩 실행하기 때문에
문법 오류를 발견하기 전까지는 올바르게 수행된다는 특징이 있다.
명령어는 연산 코드와 오퍼랜드로 구성되어있다.
명령어가 수행할 연산을 연산 코드라 하고, 연산에 사용할 데이터, 혹은 그 위치를 오퍼랜드라고 한다.
(연산 코드는 연산자, 오퍼랜드는 피연산자라고도 부른다)
그중에서도 오퍼랜드가 하나도 없는 명령어를 0-주소 명령어,
하나인 명령어를 1-주소 명령어, 두개인 명령어를 2-주소 명령어, 세개인 명령어를 3-주소 명령어라고 한다.
연산의 대상이 되는 데이터가 저장된 위치를 유효 주소라고 한다.
오퍼랜드 필드에 데이터가 저장된 위치를 명시할 때,
연산에 사용할 데이터의 위치를 찾는 방법을 주소 지정 방식이라고 한다. (=주소 지정 방식은 유효 주소를 찾는 방법이다)
현대 CPU는 다양한 주소 지정 방식을 사용하고 있다.
1) 즉시 주소 지정 방식: 사용할 데이터를 오퍼랜드 필드에 직접 명시하는 방식.
2) 직접 주소 지정 방식: 오퍼랜드 필드에 유효 주소를 직접적으로 명시하는 방식.
3) 간접 주소 지정 방식: 유효 주소의 주소를 오퍼랜드 필드에 명시.
4) 레지스터 주소 지정 방식: 연산에 사용할 데이터를 저장한 레지스터를 오퍼랜드 필드에 직접 명시.
5) 레지스터 간접 주소 지정 방식: 데이터를 메모리에 저장하고,
그 유효 주소를 저장한 레지스터를 오퍼랜드 필드에 직접 명시함.
'ETC > 컴퓨터 구조+운영체제' 카테고리의 다른 글
혼공학습단 12기 - 메모리와 캐시 메모리, 보조기억장치 (0) | 2024.07.25 |
---|---|
혼공학습단 12기 - CPU의 작동 원리, CPU의 성능 향상 기법 (0) | 2024.07.15 |