Full CE
시리즈에 들어가며, 이번 시리즈에서는 컴퓨터 공학(CE)
의 기초부터 포스팅해보고자 한다. Full- 이라고 표현한 이유는 상당히 많은 내용을 다룰 것이며, 핵심 내용만 간추린 Minified 버전도 있기 때문이다.
그 첫번째는 CE 지식의 시작인 컴퓨터 시스템과 구조에 대해 포스팅 해보고자 한다. 컴퓨터 구조
, 운영체제
, 컴퓨터 개론
등의 컴퓨터 이론 전공 서적들을 들여다 보니 하나 같이 컴퓨터 시스템
으로 출발한다. 그래서 시작은 컴퓨터 시스템으로 정했다.
컴퓨터
와 컴퓨터 시스템
이란 무엇일까?
컴퓨터란? 외부 프로그램이나 데이터 입력을 받아들여 내부 전자회로에서 자료를 계산하거나 처리해 정보를 저장하고 결과를 출력하는 기계
컴퓨터 시스템이란? 그러한 기능을 하는 체계를 말한다.
"그러한 기능을 하는 체계" 실제 책에 쓰여있는 내용이다. 정리와 정의를 가장 좋아하는 사람으로서 책을 볼때 가장 열받는 점이 용어의 정의에 '그러한', '그것' 등 지칭 명사가 있을 때다. 그래서 다시 정리해보았다.
컴퓨터 시스템이란? 컴퓨터 기능을 수행하기 위해 조직화된 요소들의 집합을 의미한다.
우리는 너무 쉽게 컴퓨터를 접해왔지만, 사실 컴퓨터는 굉장히 복잡한 기계이다.
컴퓨터가 정보를 처리하기 위해서는 중앙처리장치(CPU), 기억장치, 입출력장치, 주변장치 등의 하드웨어
적인 구성요소가 필요하다.
또한 지시한 명령을 실행하도록 소프트웨어
적인 구성요소가 함게 결합되어 이른바 컴퓨터 시스템을 구성한다.
컴퓨터 시스템 ⇒
하드웨어 (hardware)
+펌웨어 (firmware)
+소프트웨어(software)
- 접미사
웨어(-ware)
는 상품이나 제품을 뜻한다.- 컴퓨터시스템의 구성 요소를 수정하기 어려운 정도에 따라 3가지 (hard, firm, soft)로 나뉜다.
하드웨어(hardware)는 컴퓨터시스템을 구성하는 전자부품, 각종 보드, 주변 장치와 기계 설비이다. 컴퓨터에서 정보가 실제로 처리되는 물리적인 장치와 정보의 전송 경로를 의미한다.
소프트웨어(software) = 프로그램(program)
소프트웨어(software)는 컴퓨터를 관리하고 활용하기 위한 각종 명령어들의 집합인 프로그램 체계이다.
일반적으로 소프트웨어는 사용자 편의를 위해 만들어진 각종 응용프로그램들을 의미한다.
소프트웨어는 하드웨어 없이 실행되지 않고, 또한 하드웨어와 맞지 않아도 실행되지 않는다. (호환성)
펌(firm)
은 견고하다는 뜻으로 하드(hard)와 소프트(soft)의 중간이다.
펌웨어(firmware)는 컴퓨터 롬(ROM), 바이오스(BIOS) 침 등에 내장되어 하드웨어와 밀접한 관계를 유지하고 하드웨어를 정확하게 제어해주는 프로그램들의 집합이다.
펌웨어는 해당 시스템에 대한 전문가가 아니면 일반 사용자들은 그 내용을 쉽게 수정할 수 없다. 하드웨어 제조자들이 일반 사용자들에게 제공하는 펌웨어 업그레이드는 주어진 절차를 정확히 따라주어야한다.
펌웨어는 하드웨어와 소프트웨어의 중간으로 2가지 특성 모두 구현할 수 있다.
컴퓨터는 어떻게 데이터를 저장하고 처리할까? 통상적으로 알고있다시피 컴퓨터 세계는 0과 1로 이루어져있다.
소프트웨어에서 사용하는 숫자와 문자가 2진수로 번역되어 하드웨어에서 처리한다.
1) 비트(bit): 컴퓨터에서 사용하는 최소의 단위로서 0이나 1을 나타낸다
2) 바이트(byte): 영문 1글자를 나타내는 단위로 8비트로 이루어진다.
3) 니블(nibble): 4비트 단위 = 16진수와 일치
컴퓨터 워드(computer word)란 컴퓨터에서 한번에 처리하는 고정된 크기의 비트 그룹의 단위이다. 명령어나 데이터를 처리할 때 자주 사용하는 비트 수를 규칙으로 정한 것.
워드는 하드웨어와 소프트웨어 관점에서 각각 정의할 수 있는데
하드웨어
1) CPU에서 한번에 처리할 수 있는 비트 수
소프트웨어
2) 운영체제에서 사용하는 커널의 비트 수
3) 컴파일러에서 사용하는 데이터 단위
일반적으로 사용하는 32/64비트 운영체제를 사용한다. 즉, 운영체제의 경우 비트가 높을수록 처리량이 높다는 소리다.
문자 세트(character set)은 정보를 표현하는 문자 코드의 집합을 정의한 것이다. 대표적인 문자 세트로는 아스키(ASCII) 코드, ANSI 코드, 유니코드가 있다.
지속적으로 추가될 수 있는 유니코드가 주로 사용된다.
문자는 문자세트에 정의된 문자들을 컴퓨터에서 사용할 수 있도록 부호화하여 사용한다.
아스키(ASCII, American Standard Code for Information Interchange)는 직역하면 '정보 교환을 위한 미국 표준 부호' 라는 뜻이다.
ANSI
(American National Standards Institue)는 미국 국가 표준협회를 의미하며, 미국내 산업표준을 제정하는 비영리 기구로, 여기서 제정된 표준을 ANSI표준
이라고 한다.
ISO
, International Organization for Standardization)에 가입되어 있어 공통으로 채택된 규격이 많다.유니코드(unicode, universal code, 만국공통 코드)는 전 세계 언어의 문자 코드를 모두 포함하려는 컴퓨터 산업계의 국제 표준이다.
UCS vs UTF
유니코드의 대표적인 인코딩 방법은
UCS
와UTF
가 있다.UCS (Universal Character Set)
- 문자 세트 자체로 ISO/IEC 규격이다.
- 바이트 대신 옥텟(Octet)이란는 단위 사용
- 특징은 2바이트(UCS-2)나 4바이트(UCS-4)로 고정
UTF (Unicode Transformation Format)
- 유니코드 컨소시엄에서 만든 전송형식이다.
- UTF는 문자 코드의 비트 길이가 가변될 수 있다.
이번 포스팅에서는 컴퓨터 구조의 대략적인 구조와 컴퓨터에서 데이터를 표현하는 방식에 대해 포스팅하였다. 다음 포스팅에서는 기본 구조와 동작에 대해 포스팅해 보도록 할 것이다.