디지털 컴퓨터와 아날로그 컴퓨터
컴퓨터의 중추부인 CPU나 MPU의 명령은 이진 코드 즉 0 또는 1을 나열한 것으로 표현된다. 예를 들면, 인텔계 마이크로프로세서에서 사용되는 어떤 카피 명령 코드는 10110000이다. (이하 편의상 CPU나 MPU를 CPU류라고 부르는데) CPU류는 한정된 수의 명확하고 단순한 명령밖에 가지고 있지 않다. 기계어는 인간 언어에 비해 훨씬 빈약하고 상당히 단순한 것으로만 할 수 있다. 다만 그 명령에 모호함은 전혀 없다. 많은 CPU에서 사용되는 명령의 전형적인 예는 5번지 메모리의 내용물을 복사하여 그 사본을 10번지에 쓰거나 7번지의 내용물을 13번지의 내용물에 가산하여 결과를 20번지에 쓰거나 999번지의 내용물이 0인 경우 다음 명령은 30번지에 있는 것이다. 어떤 특정 CPU가 실행할 수 있는 특정 명령어 세트를 기계어라고 부른다. 실제로는 인간이 명령을 기계어로 직접 쓰는 일은 보통 없고 대신 높은 수준의 프로그래밍 언어를 사용한다. 프로그래밍 언어로 쓴 컴퓨터 프로그램을 컴파일러라고 불리는 특별한 컴퓨터 프로그램에 의해 일단 기계어로 번역한 후 기계어로 실행한다. 혹은 인터프리터에 의해 자동으로 기계어로 번역하면서 실행한다. 프로그래밍 언어 중에는 어셈블리 언어(저수준 언어)와 같이 기계어에 매우 가깝고 기계어와 일대일로 대응할 수 있는 기술 체형을 가지는 것도 있다. 반대로 Python, Java, Prolog와 같은 고수준 언어로 프로그램을 쓸 경우 CPU마다 다른 기계어를 전혀 의식할 필요나 알 필요가 전혀 없으며 물론 방대한 양의 '0'과 '1'의 조합 기술을 사용하는 등 번거로운 일도 하지 않아도 되며 대신 인간이 이해하기 쉬운 영어 단어와 같은, 혹은 영어 단어와 비슷한 키워드나 산수·수학 등에서 친숙한 기호 등을 조합해 프로그램을 쓸 수 있다. 프로그램 자세한 내용은 '프로그램(컴퓨터)'참조 컴퓨터 프로그램이란 컴퓨터로 하여금 실행시키는 명령을 기술한 것을 의미한다. 워드프로세서 소프트웨어나 OS 등 기본적인 프로그램은 막대한 양의 명령으로 구성된다. 범용적인 처리를 프로그램별로 다시 쓰는 것은 효율적이지 않기 때문에 예를 들면 화면에 점을 그린다, 파일에 저장한다, 인터넷을 통해서 다른 컴퓨터와 데이터를 주고받는다. 라고 하는 정형적인 처리는 라이브러리로서 정리된다. 오늘날 대부분의 컴퓨터는 동시에 여러 프로그램을 실행하는 것처럼 보입니다. 이것은 보통 멀티태스킹이라고 불린다. 실제로 CPU는 한 프로그램의 명령을 실행한 후 짧은 시간 후에 다른 프로그램으로 전환하여 그 명령을 실행하고 있다. 이 짧은 시간의 단락을 타임슬라이스라고 부른다. 이에 따라, 여러 프로그램이 CPU 시간을 공유하여 동시에 실행될 것으로 보인다. 이는 동영상이 사실 정지화면 프레임의 짧은 연속으로 만들어지는 것과 비슷하다. 이 타임쉐어링은 일반적으로 운영체제라는 프로그램에 의해 제어된다. 운영 체제 자세한 내용은 '운영체제' 참조 구체적으로 처리해야 할 작업의 유무에 관계없이 컴퓨터에 자신의 연산 자원을 관리하고, 사용자의 지시를 기다린다라고 하는 동작을 취하게 하기 위해서도 어떠한 프로그램을 필요로 한다. 전형적인 컴퓨터에서 이 프로그램은 운영체제(OS)라고 불린다. 운영체제를 비롯한 컴퓨터를 작동시키기 위해 필요한 소프트웨어를 전반적으로 '시스템 소프트웨어'라고 부른다. 컴퓨터를 작동시키기 위해서 운영체제는 사용자 또는 다른 프로그램의 요구에 따라 프로그램(이런 의미에서는 애플리케이션 소프트웨어 또는 단순히 애플리케이션이라는 용어도 사용된다. 소프트웨어라는 용어도 비슷한 의미이지만, 이것은 프로그램 일반을 가리키는 보다 넓은 개념이다)을 메모리 상에 로드하고, 프로그램으로부터의 요구에 따라 언제, 어떤 리소스(메모리나 I/O)를 그 프로그램에 할당할지 결정한다. 운영체제는 하드웨어를 추상화한 층을 제공하여 다른 프로그램이 하드웨어에 접근할 수 있도록 한다. 예를 들면 디바이스 드라이버라고 불리는 코드가 그 예이다. 이를 통해 프로그래머는 컴퓨터에 연결된 모든 전자 장치에 대해 자세한 내용을 알 필요 없이 해당 기계를 사용하는 프로그램을 사용할 수 있습니다. 또한 라이브러리라고 불리는 재사용 가능한 많은 프로그램군을 갖추고 있어 프로그래머는 스스로 모든 프로그램을 사용하지 않고 자신의 프로그램에 다양한 기능을 통합할 수 있다. CUI と GUI 하드웨어 추상화층을 가진 현재 운영체제의 대부분은 어떤 표준화된 사용자 인터페이스를 겸비하고 있다. 과거에는 캐릭터 사용자 인터페이스(CUI)만 제공됐지만 1970년대 앨런 케이 등이 다이내믹 구상을 제창하면서 '잠정이다' '이나빅'으로 불리는 알토와 스몰토크를 통한 그래픽 사용자 인터페이스 환경을 구현했다. 덧붙여 잠정 Dynabook은 당시의 제록스 수뇌진의 판단에 의해 제품화되지 않았다. 이 영향을 받아 개발된 Apple Computer(현:Apple)의 LISA나 Macintosh, 마이크로소프트의 Windows의 발매, 보급에 의해 그래픽 유저 인터페이스(GUI)가 일반적으로 보급되게 되었다. 한편, UNIX 계열 OS에서도 1980년대부터 X WindowSystem이 개발되어 그래픽 유저 인터페이스가 실현되었다. CUI와 GUI는 각각 장단점이 있고 GUI는 초보자 친화적이기 때문에 초보자에게는 GUI를 사용하는 조작법이 알려져 상급자 정도가 되면 GUI와 CUI를 병용하게 되며 컴퓨터 기술자나 시스템 운용 엔지니어 등은 종종 CUI를 사용하고 GUI는 보조적으로 사용한다. 현재 CUI를 사용하는 사람들은 GUI와 CUI를 동시 병행 사용하고 GUI의 멀티 윈도 일부를 CUI 상태로 사용하는 것도 일반적이다. 또 Linux 등에서는 GUI 모드와 CUI 모드를 근본적으로 전환하는 것도 가능하다. 컴퓨터 유형별 OS 세간에 보급되는 컴퓨터를 대수를 기준으로 했을 경우, 가장 많은 것은 임베디드 시스템이며, 즉 에어컨이나 밥솥 등 가전제품, 승용차, 각종 측정기기, 공작기계 등에 내장된 매우 작고 저렴한 컴퓨터이며, 임베디드 시스템에서는 임베디드 OS라고 불리는 OS를 이용한다. 2019년 시점에서의 점유율을 보면, 도쿄대의 사카무라 켄이 개발해 무료 배포 가능하고 기기 개발자가 개편하는 것도 인정되고 있는 TRON 계열 OS의 점유율이 세계 제1위의 약 60%이며, 24년 연속 톱이다. TRON 계열 중에서도 ITRON이 가장 보급되어 있다. TRON 이외는 POSIX계 즉 UNIX계, Linux류이다. 예를 들면, 미 리눅스웍스의 LynxOS, 미 윈드리버의 VxWorks, 미 심비안의 SymbianOS 등. 덧붙여 소규모의 임베디드 시스템 중에는, 명확한 OS를 내장하고 있지 않은 것도 있다. 다음으로 대수가 많은 것이 스마트폰이며, 스마트폰의 OS 및 그 점유율은 2021년 9월 시점에서 안드로이드가 약 72%, iOS가 약 27%이다. 또한 안드로이드도 넓은 의미에서의 Linux의 일종이며, 보다 구체적으로 말하면 Linux의 커널을 일부 개편하고 다른 오픈 소스 소프트웨어를 조합한 것이다. 즉, 약 70%의 사람들이 사실 의식하지 않고 리눅스의 일종을 매일 사용하고 있는 것이다. 노트북이나 데스크톱 PC의 OS 및 그 점유율로서는 2021년 시점에서 Windows 75.4% Mac OS 15.93% Chrome OS 2.59% Linux 2.33%가 되고 있다 . 덧붙여 이 Mac OS는 FreeBSD를 기본으로 한 OS이며 UNIX 계열이다. 슈퍼컴퓨터 OS는 2021년 현재 거의 100% 리눅스다. 슈퍼컴퓨터용은 2000년경에는 UNIX가 90% 정도를 차지하고 있었지만, 그 후의 10년간, 즉 2010년경까지 그 거의 모든 것이 Linux로 대체되는 일이 일어났다. 디지털과 아날로그 디지털 계산기와 아날로그 계산기의 분류도 있지만, 단순히 컴퓨터를 가리키는 경우는 전자를 이용하는 경우가 많다. 현대에는 후자가 마이너 한 존재가 됐기 때문이다. 컴퓨터라는 말을 특히 계산기를 가리키는 말로써 사용하는 경우도 있어, 그 용어법에서는 아날로그 계산기 중 특히 전자식 아날로그 계산기를 가리키는 것이 아날로그 컴퓨터라고 하는 것이 된다. 또, 대상이 연속량이 아니라 정수와 같은 이산적인 것은(예를 들면 일렉트로닉스를 사용하지 않아도) 디지털이다. 예를 들어, 주판은 디지털입니다. 아날로그 계산기는 전기적 현상·기계적 현상·수압 현상을 이용하여 모종의 물리 현상을 표현하고 문제를 푸는 데 사용되는 계산기의 형태. 아날로그 계산기는 모종의 물리량을 다른 물리량으로 나타내고 거기에 수학적 함수를 작용시킨다. 입력의 변화에 대해서 거의 실시간으로 출력을 얻을 수 있는 특징이 있으며(이것은 이른바 고속의 경우의 이야기이다. 시간을 들여 균형 잡힌 상태를 찾거나 이동량의 합계를 얻는다고 하는 저속형 아날로그 계산기도 있다), 각종 시뮬레이션 등에 이용되었지만, 연산 내용을 변경하기 위해서는 회로를 변경할 필요가 있고, 얻을 수 있는 정밀도에도 한계가 있기 때문에 디지털 컴퓨터의 성능 향상과 DA/AD 컨버터의 고정밀화·고속화에 의해 역할을 끝냈다. 덧붙여 과거 전자식 아날로그 컴퓨터의 중요한 요소로서 많이 사용되고 있던 것과 같은 기능을 가지는 전자회로는 IC화 된 노펙프 IC로서 오늘날에도 널리 사용되고 있지만, 모듈화 되어 간단하게 사용할 수 있게 되어 있기 때문에 일반적으로 컴퓨터로 간주되지 않는다. 아날로그 계산기가 '양'물리량에 따라 계산하는 데 반해 디지털 컴퓨터는 수(digit)에 따라 '계수적'으로 계산한다. 현대에는 오로지 일렉트로닉스를 이용해 일논리에 의한 논리연산과 이진법에 의한 수치표현을 이용하고 있다(타이거 계산기와 같이 톱니바퀴의 이산적인 각도에 따라 십진법을 표현하는 것도 디지털 계산기이며, 기계로서는 일논리 방식의 기계에서도 수의 취급으로서는 삼증 부호 등에 의해 십진법인 것도 있다.
'컴퓨터' 카테고리의 다른 글
미국에서 처음 개발된 컴퓨터 (0) | 2023.01.07 |
---|---|
아놀로그 계산기와 컴퓨터의 발전 (0) | 2023.01.06 |
기계식 계산기와 펀치 카드 기계 (0) | 2023.01.06 |
컴퓨터에 있는 계산기의 역사 (0) | 2023.01.05 |
컴퓨터 표기 호칭과 개요 (0) | 2023.01.04 |
댓글