컴퓨터란?
데이터를 외부(사람)에서 입력장치를 통해 입력받아 프로그램의 코드에 따라 정해진 규칙대로 CPU를 통해 연산을 수행하며 하드디스크, 램 등 여러 기억장치에 저장하며 출력장치를 통해 결과물을 출력하는 전자장치이다.
즉 컴퓨터는 내부에서 연산의 규칙을 정의한 프로그램(소프트웨어)와 기타 데이터를 읽고 저장하고 출력할수있는 물리적인 장치들(하드웨어)로 구성되어 있다.
Software
소프트웨어란 물리적인 형태가 존재하지 않는 컴퓨터의 구성요소로 하드웨어가 어떻게 동작해야 하는지 규정해 놓은 명령어의 집합이며 시스템 소프트웨어와 응용 소프트웨어로 분류된다.
시스템 소프트웨어, System Software
응용소프트웨어를 실행하기위한 소프트웨어로 하드웨어와 직접적으로 소통하고 관리하며 대표적으로 Mac, Windows, Linux와 같은 운영체제 및 Node.js JRE와 같은 런타임 환경이 이에 포함된다.
응용 소프트웨어, Application Software
우리가 흔히 알고있는 어플리케이션, 앱, 프로그램등이 이에 해당되며 시스템 소프트웨어 위에서 실행된다.
Hardware
하드웨어는 컴퓨터를 구성하는 기계적인 장치들로 CPU, 기억장치 입력장치 출력장치로 분류되며 각 장치들은 시스템 버스로 연결되어 있다.
CPU 중앙처리장치
프로그램의 실행과 데이터 처리를 담당하고 프로세서라고도 하며 제어장치, 연산장치, 레지스터로 구성되있다.
- 제어장치 : CPU의 모든 동작과 데이터 흐름을 통제하고 관리하며 운영체제와 소통하며 컴퓨터 자원을 관리한다.
- 연산장치 : 프로그램의 코드에 맞게 연산하며 이 코드들을 실질적으로 실행시키는 장치이다.
- 레지스터 : CPU 내에 존재하는 빠른 기억장치이다. 연산장치의 동작에 필요한 데이터들을 임시적으로 보관한다.
기억장치
CPU의 동작에 필요한 데이터들을 장기적 혹은 단기적으로 보관하는 장치들로, 장기적으로 저장하는 장치를 보조기억장치라고 하며, 단기적으로 데이터를 저장하는 장치를 주기억장치라고 한다.
- 보조 기억장치 : 데이터를 반영구적으로 저장하며 큰용량의 데이터를 저장할 수 있지만 속도가 느리며 CPU와의 속도차이가 크기때문에 CPU는 직접적으로 보조기억 장치와 소통하지 않는다. SSD와 HDD가 이에 속한다.
- 주기억장치 : 보조 기억장치와 달리 데이터를 읽고 쓰는 속도가 빨라 CPU와 직접적으로 소통하며 프로그램을 수행하는 동안 필요한 모든 데이터들을 저장한다. RAM과 ROM이 이에 속한다.
캐시메모리
주기억장치가 속도가 빠른 편이긴 하지만 CPU의 속도를 따라잡을수는없다. 이를 극복하기 위해 캐시메모리 라는 저장공간에 이미 CPU가 사용한 데이터와 관련된 데이터 중, 재사용 가능성이 높은 데이터를 주기억 장치로 부터 불러와 저장 시켜 놓는 장소이다.
용량, 속도, 가격에 따른 기억장치의 계층 구조
LOW ↓ 용량 ↓ HIGH |
CPU 내의 Register | HIGH ↑ 속도 및 가격 ↑ LOW |
|
캐시 메모리 (Static RAM) | |||
주기억장치 (Dynamic Ram) | |||
보조기억장치 |
입출력장치
입력장치란 외부에서 데이터를 입력받는 장치이며 키보드, 마우스, 카메라 등등이 이에 속한다.
출력장치는 반대로 컴퓨터 내부에서 데이터를 사용자에게 출력하는 장치로 모니터, 스피커, 프린터 등이 해당된다.
시스템버스
시스템 버스란 컴퓨터 하드웨어에 속하는 모든 장치간의 통로를 뜻하며, 이 시스템 버스 또한 물리적으로 존재하여 하드웨어에 속하게 된다.
- 데이터 버스 : 하드웨어 간 데이터를 전달하는 통로
- 주소 버스 : 데이터가 도착해야하는 주소에 대한 정보를 전달하는 통로
- 제어 버스 : CPU의 제어장치가 생성한 제어 신호를 다른 장치로 전달하는 통로
마무리 - 컴퓨터의 동작 과정
보조 기억장치(SDD, HDD)에 존재하는 하나의 프로그램을 운영체제를 이용하여 실행하게되면 그 프로그램은 주기억 장치인 RAM에 불러와 저장시킨다. 이 과정이 "Loading"하는 과정이다. 즉, 로딩은 CPU가 작업할 프로그램을 보조 기억장치에서 주기억 장치로 옮겨오는 과정이다.
로딩이 완료되면 프로세스 과정, 즉 프로그램이 실행중인 상태가 된다.
이제 입력장치를 통해 주기억 장치에 불려와 실행중인 프로그램에 데이터를 입력하면 해당 프로그램에 작성된 소스코드의 규칙대로 CPU가 연산처리를 한뒤 다시 주기억장치에 저장하며 출력장치를 통해 데이터가 사용자에게 전달된다.
'Basics of Computer Science and Network' 카테고리의 다른 글
SSR과 CSR (0) | 2023.03.26 |
---|---|
웹 애플리케이션 (0) | 2023.03.26 |
DNS (0) | 2023.03.26 |
Network (TCP/IP 4계층) (0) | 2023.03.26 |
프로그래밍의 이해 (0) | 2023.02.14 |