컴퓨터란?
컴퓨터의 어원은 먼저 계산한다는 의미의 라틴어 'Computare'에서 유래
컴퓨터란, 입력받은 데이터를 정해진 규칙대로 처리해서 처리 결과를 저장하고 출력하는 전자 장치.
- 입력받은 데이터 : 입력 장치를 통해 데이터를 얻는다.
- 정해진 규칙 : 프로그램을 의미, 소프트웨어 및 애플리케이션이라고도 불림.
- 처리 : 중앙처리장치를 통해 연산을 수행
- 출력 : 출력 장치를 통해 사람이 이해할 수 있는 형태의 정보로 출력
컴퓨터의 구성 요소
컴퓨터는 크게 하드웨어와 소프트웨어로 구성되어 있다.
정의를 해석하면, 정해진 규칙은 소프트웨어, 입력받은 데이터를 처리해서 결과를 저장하고 출력하는 장치를 하드웨어로 해석할 수 있다.
소프트웨어
소프트웨어는 물리적인 형태가 존재하지 않는 컴퓨터의 구성 요소로 내부 명령어의 집합이다.
소프트웨어는 시스템 소프트웨어와 응용 소프트웨어로 분류된다.
시스템 소프트웨어
응용 소프트웨어를 실행하기 위한 플랫폼 역할을 수행, 하드웨어와 직접적으로 소통하며 하드웨어 장치들이 제대로 동작할 수 있도록 해줌.
운영체제(Mac, Windows, Linux), 런타임 환경(Node.js, JRE), 장치 드라이버(키보드 드라이버, 마우스 드라이버) 등이 존재
응용 소프트웨어
시스템 소프트웨어를 제외한 모든 소프트웨어.
애플리케이션 또는 프로그램이라고도 불리며, 종류는 사무용, 교육용, 멀티미디어, 통신용, 게임 등 매우 다양함.
하드웨어
하드웨어는 컴퓨터를 구성하는 기계적 장치들의 집합이다.
중앙처리장치, 기억장치, 입력장치, 출력장치 등으로 분류되며, 각 장치는 시스템 버스로 연결되어 있다.
중앙처리장치(CPU)
프로그램의 실행과 데이터 처리를 담당하는 핵심 장치로, 프로세서라고도 한다.
CPU는 제어장치, 연산장치, 레지스터로 구성되어 기능을 수행한다.
- 제어장치 : CPU의 모든 동작과 데이터 흐름을 통제하고 관리, 운영체제와 소통하며 컴퓨터의 자원을 관리
- 연산장치 : 프로그램에 입력된 명령어를 수행, 코드를 실질적으로 실행시키는 장치
- 레지스터 : CPU 내에 존재하는 기억장치로 작고 빠른 것이 특징. 연산장치의 동작에 필요한 데이터를 임시적으로 보관하며 제공
기억장치
기억장치는 저장장치라고도 하며, CPU의 동작에 필요한 데이터들을 장기적으로 또는 단기적으로 보관한다.
장기적으로는 보조기억장치, 단기적으로는 주기억장치가 있다.
- 보조기억장치
- 컴퓨터에게 필요한 모든 정보를 반영구적으로 저장
- 대용량 데이터를 저장할 수 있지만, 데이터를 읽고 쓰는 속도가 느림
- CPU와 직접적으로 소통하지는 않음
- SSD, HDD
- 주기억장치
- 컴퓨터가 프로그램을 수행하는 동안 필요한 모든 데이터들을 저장
- 데이터를 읽고 쓰는 속도가 빠르지만, 저장 용량이 작음
- CPU와 직접적으로 소통
- RAM, ROM
캐시 메모리
기억장치 중 하나로, 캐시 메모리는 보조기억장치에 비해 빠르지만, CPU의 연산 속도만큼 빠르지는 않음. CPU가 사용한 데이터와 관련된 데이터 중, 재사용 가능성이 높은 데이터를 주기억장치로부터 미리 임시로 저장하는 역할을 함.
기억장치의 계층 구조
입력장치
사용자로부터 컴퓨터로 데이터를 입력받는 장치. 키보드, 마우스, 마이크, 트랙패드 등
출력장치
컴퓨터로부터 사용자에게 이해할 수 있는 형태로 데이터를 출력해주는 장치. 모니터, 스피커, 프린터 등
시스템 버스
CPU를 포함한 각 하드웨어 장치 간의 통로. 각 하드웨어 장치를 물리적으로 연결한 전선을 의미.
시스템 버스는 데이터 버스, 주소 버스, 제어 버스로 분류
- 데이터 버스 : 하드웨어 간에 데이터를 전달하는 통로
- 주소 버스 : 데이터가 어디에 도착해야 하는지에 대한 정보를 전달하는 통로
- 제어 버스 : CPU의 제어장치가 생성한 제어 신호를 다른 장치로 전달하는 통로
컴퓨터의 동작
컴퓨터의 전원을 킬 때, 운영체제가 보조기억장치에 저장된 프로그램을 주기억장치인 RAM에 적재한다. 이 과정을 로딩이라 하며, 로딩이 완료된 후 프로그램을 실행하여 모니터 상으로 화면에 출력하여 나타난다.
- 실행 중인 프로그램을 프로세스라고 부른다.
로딩이 끝나면, 키보드 및 마우스와 같은 입력장치를 통해 컴퓨터에 데이터를 입력할 수 있는 상태로 된다.
입력된 데이터는 CPU에서 소스 코드에 작성된 명령어들을 적용하여 연산하며, 이러한 과정은 매우 빠르고 다양하게 이루어진다.
연산된 결과는 주기억장치에 저장되며, 사용자가 이해할 수 있는 형태로 출력하는 것으로 동작을 마치게 된다.
'Computer Engineering > 컴퓨터 과학(CS: Computer Science)' 카테고리의 다른 글
[CS] 객체지향 프로그래밍이란? (0) | 2022.09.05 |
---|---|
[CS] 의사코드의 개념과 작성법 (슈도코드, Pseudo-code) (0) | 2022.09.01 |
[CS] 프로그래밍의 이해 (0) | 2022.08.23 |
API란 무엇인가? (about API) (0) | 2021.04.08 |
UI, UX란 무엇인가? (About UI and UX) (2) | 2021.04.06 |