CPU의 기본구성으로 명령어를 저장하는 역할인 프로세스 레지스터와 비교,판단,연산을 담당하는 산술논리장치(ALU), 명령어의 해석과 CPU를 제어하는 제어부(control unit) 그리고 내부 버스 등이있다. CPU의 내장회로에는 '명령어 집합'으로 이루어졌는데 기본연산은 옵코드라고 불리는 특정한 비트의 조합으로 나타낸다.
이 때 명령어의 실제 연산은 CPU내부의 산술논리장치가 담당한다. 나머지 부분들은 연산을 수행하기 위한 명령어를 메모리로 부터 불러오고, 연산의 결과값을 저장한다.
CPU는 코어의 갯수로 나눌 수 있다. 여기서 코어란 물리적으로 구별되는 중앙처리장치 역할을 하는 블록이다.
●싱글 코어
싱글 코어는 말 그대로 코어가 한개라는 소리다. 멀티코어에 비해 싸고 프로그래밍이 쉽지만, 고장이 나면 시스템이 완전히 멈춘다. 멀티코어보다 느리기도 하다.
●멀티 코어
코어의 속도를 더 높이기 힘들어서, 한개의 칩안에 여러개의 코어를 가지게 만든 구조다. 이론적으로 코어가 2개면 성능도 2배가 되야하지만, 코어끼리 역할분담을 하느라 성능이 조금 떨어진다. 하지만 관리를 잘 해주면 싱글 코어보단 더 좋은 성능의 중앙 처리 장치를 얻을 수 있다. 코어의 갯수에 따라 차례로 싱글코어, 듀얼 코어, 트리플 코어, 쿼드 코어... 순이다.
한 개의 문장을 입력받아 그대로 출력하는 프로그램을 작성해보자.
한 개의 문장이 입력된다.
(문장은 여러 개의 단어로 구성될 수 있고 문장의 입력은 엔터키로 끝나며, 문장의 길이는 공백을 포함하여 2000글자를 넘지 않는다.)
입력한 문장을 그대로 출력한다.
C++ programming is very fun!!
C++ programming is very fun!!
char data[2001];
fgets(data, 2000, stdin);
printf("%s", data);
를 실행하면 공백이 포함된 문장을 키보드(stdin)로 입력 받아 최대 2000 문자(영문자)까지 data[] 공간에 저장하고 출력할 수 있다.
한글의 경우 영어와 달리 2byte문자라 1000글자까지 가능하다.
%s 는 문자열(string)로 출력하라는 의미이다.
Python은 여전히 같다.
'Programming > Codeup.kr기초100제 && 컴퓨터 이야기' 카테고리의 다른 글
[기초-입출력] 단어 한 개 입력받아 나누어 출력하기 && 프로그래머 (0) | 2016.11.15 |
---|---|
[기초-입출력] 실수 한 개 입력받아 부분별로 출력하기 && ALU (0) | 2016.11.14 |
[기초-입출력] 단어 한 개 입력받아 그대로 출력하기 && CPU1 (0) | 2016.11.12 |
[기초-입출력] 주민번호 입력받아 형태 바꿔 출력하기 && 메모리2 (0) | 2016.11.11 |
[기초-입출력] 년월일 입력받아 형식에 맞게 출력하기 && 메모리1 (0) | 2016.11.10 |