이 글은 책 <2022 박미진 컴퓨터일반> 을 공부하고 정리한 내용을 담고 있습니다.
1. 컴퓨터의 구성
하드웨어
특정한 외형을 가진 물리적 자원으로, 전자부품과 전자회로로 구성되어 있다.
구성요소: 중앙처리장치(CPU), 기억장치(메모리, 디스크), 입출력장치(마우스, 모니터, 프린터 등)
1) 중앙처리장치 (CPU)
컴퓨터 시스템의 모든 장치의 동작을 제어하고 명령을 실행하는 장치.
구현체: 마이크로 프로세서
① 제어장치 (control unit)
주기억장치에서 명령어를 꺼내어 장치에 제어신호를 보낸다. (모든 장치는 제어장치가 보낸 신호에 따라 주어진 명령을 실행한다.)
② 연산장치 (ALU; Arithmetic Logic Unit)
데이터를 처리하는 장치.
산술연산(사칙연산)과 논리연산(NOT, AND, OR, XOR 등)을 수행한다.
③ 레지스터 (register)
일시적 기억을 위한 고속 기억장치.
데이터를 처리하면서 사용하는 값 또는 연산의 중간 결과를 기억한다.
2) 기억장치 (memory)
① 주기억장치 (main memory)
즉각적으로 수행되는 프로그램(명령어의 집합)과 수행 시에 필요한 데이터를 기억한다.
② 보조기억장치 (secondary/auxiliary memory)
반영구적으로 데이터를 저장한다.
데이터가 처리되기 위해선 주기억장치로 먼저 옮겨져야 한다.
❓ ROM? RAM?
메모리는 크게 ROM과 RAM으로 나눌 수 있다.
1) ROM (Read-Only Memory)
컴퓨터의 읽기 전용 기억장치.
- 데이터가 영구적 또는 반영구적으로 저장됨
- 전원이 꺼져도 지워지지 않음
2) RAM (Random Access Memory)
기억된 정보를 읽어내기도 하고, 다른 정보를 기억시킬 수 있는 기억장치.
- 전원이 꺼지면 기록된 정보도 날아감: 휘발성 메모리
- 주기억장치 등에 사용됨
3) 입출력장치
① 입력장치 (input device)
데이터를 외부에서 입력하기 위한 장치.
제어장치의 명령에 따라,
- (인간이 사용하는) 문자, 숫자, 소리 등의 정보를 읽어 → (컴퓨터가 사용하는) 0과 1의 코드화된 정보로 변환하여
- 컴퓨터가 처리할 수 있도록 기억장치로 전송한다.
② 출력장치 (output device)
데이터를 외부로 보내기 위한 장치.
제어장치의 명령에 따라,
- (컴퓨터가 사용하는) 0과 1로 구성된 데이터를 → (인간이 사용하는) 문자, 숫자, 소리 등의 데이터로 변환하여
- 외부로 보낸다.
컴퓨터의 기본동작
1) [입력장치] 명령어나 데이터 정보를 받고, 이를 주기억장치로 전달한다.
2) [주기억장치] 전달받은 명령어나 데이터를 저장한다.
3) [중앙처리장치] 필요할 때 주기억장치로부터 명령어/데이터를 인출하여, 해독하고 실행한다.
4) [주/보조기억장치] 실행된 데이터나 정보를 저장한다.
5) [출력장치] 데이터를 외부로 출력한다.
소프트웨어
특정한 외형이 없는 정보에 해당하는 명령과 데이터.
컴퓨터의 작동과 프로그램에 의해 수행되는 기능.
프로그래밍 언어를 사용하여 작성한 프로그램.
1) 시스템 소프트웨어
컴퓨터의 H/W와 S/W의 기능이 효율적으로 실행되도록 관리하고 제어하는 프로그램의 총칭
구성: 운영체제(OS), 언어번역기(compiler, interpreter, assembler), 장치 드라이버
분류
- 제어 프로그램
- 감시 프로그램 (supervisor program)
- 작업제어 프로그램 (job control program)
- 데이터관리 프로그램 (data management program)
- 처리 프로그램
- 언어번역 프로그램 (language translation program)
- 서비스 프로그램 (service program)
2) 응용 소프트웨어
사용자가 원하는 작업을 수행할 수 있게 해주는 프로그램. 최상위 계층의 소프트웨어.
펌웨어 (firmware)
소프트웨어를 하드웨어화한 것. 시스템의 효율을 높이기 위해 ROM에 저장된 하드웨어를 제어하는 마이크로 프로그램.
"미들웨어(middleware)"라고도 한다.
예) PC의 바이오스(BIOS; Basic Input/Output System)
추가: 컴퓨터의 부팅 과정
2. 컴퓨터 구조의 발전
- 에니악(ENIAC)
- 프로그램 외장 방식
- 폰 노이만(Von Neumann) 구조 (1942)
폰 노이만 구조
구성
- CPU: 명령어를 해석하고 데이터를 처리
- 메모리: 명령어와 데이터를 저장
- 순차적인 주소를 가진 워드로 구성
- 명령어와 데이터를 구분없이 저장 → 동일한 방식으로 조작될 수 있음을 의미
- 메모리에 저장된 워드는 인출될 때 컴퓨터의 상태에 따라 명령어나 데이터로 해석됨
- 입출력장치
내장 프로그램 개념(stored program concept)을 기반으로 함 → 이후의 컴퓨터는 프로그램 내장 방식을 사용하게 됨
숫자의 형태로 컴퓨터의 명령어를 주기억장치에 저장함
- 에드삭(EDSAC)(1949), 에드박(EDVAC)(1952)
- 프로그램 내장 방식
3. 컴퓨터의 단위
성능단위
1) MIPS (Million Instruction Per Second)
초당 수행하는 백만개의 명령어
2) FLOPS (FLoating point Operations Per Second)
초당 수행하는 부동소수점 연산 개수
3) 클록(clock)
CPU를 비롯한 컴퓨터의 모든 부품은 클록에 맞춰 동작한다.
클록 수가 높을 수록 컴퓨터의 처리속도가 빠르다.
- 클록 주파수: 1초에 실행된 클록의 개수. 단위는 $Hz$.
- 클록 주기: 하나의 클록이 실행되는 시간. 단위는 초(sec).
- 클록 주파수와 클록 주기는 역수의 관계를 가진다.
기억용량 단위
- 바이트 (B, Byte): 1B
- KB(킬로 바이트): %2^10%B
- MB(메가 바이트): %2^20%B
- GB(기가 바이트): %2^30%B
- TB(테라 바이트): %2^40%B
- EB(엑사 바이트): %2^50%B
- PB(페타 바이트): %2^60%B
- ZB(제타 바이트): %2^70%B
- YB(요타 바이트): %2^80$B
속도 단위
- ms(밀리 초): $10^-3$s
- μs(마이크로 초): $10^-6%s
- ns(나노 초): $10^-9%s
- ps(피코 초): $10^-12%s
- fs(펨토 초): $10^-15%s
- as(아토 초): $10^-18%s
4. 정보처리 시스템의 분류
1) 일괄처리 시스템 (Batch Processing System)
입력된 자료를 일정기간 또는 일정량을 모아서 한번에 처리하는 방식
CPU 1개 — 주기억장치 1개 — 프로그램 1개 — 사용자 1명
- 🙁 CPU와 I/O 장치의 속도차이로 인해 CPU의 유휴시간이 많이 발생한다.
2) 다중프로그래밍 시스템 (Multi-Programming System)
한 사용자 프로그램이 CPU를 필요로 하지 않는 동안 다른 사용자 프로그램이 CPU를 사용하는 방식
CPU 1개 — 주기억장치 1개 — 프로그램 n개 — 사용자 1명
- 하나의 CPU로 여러 사용자 프로그램이 마치 동시에 실행되는 것처럼 처리한다.
- CPU의 효율을 극대화하기 위한 방법이다.
3) 실시간 시스템 (Real-time System)
자료가 발생할 때마다 즉시 처리하여 결과를 출력하는 방식
4) 시분할 시스템 (Time Sharing System)
각 사용자들에게 CPU에 대한 일정시간(time slice)을 할당하여 주어진 시간 동안 컴퓨터와 대화형식으로 프로그램을 수행할 수 있도록 개발된 시스템
CPU 1개 — 주기억장치 1개 — 프로그램 n개 — 사용자 n명
- 다중프로그래밍의 논리적 확장: 차이점을 사용자 1명 → n명
- 다수의 단말 사용자가 마치 사용자 혼자 주컴퓨터를 사용하듯이 처리하는 방식
5) 다중처리 시스템 (Multi-Processing System)
CPU 여러 개와 기억장치 1개에 여러 개의 프로그램이 존재하여 다중작업을 구현한다.
CPU n개 — 주기억장치 1개 — 프로그램 n개 — 사용자 n명
- 주기억장치를 공유하여 사용하는 방식
- 강결합 시스템 이라고 함
6) 분산처리 시스템 (Distributed Processing System)
지역적으로 분산된 여러 컴퓨터에 기능을 분산시키고, 통신망을 통해 상호 교환 · 처리하는 방식
CPU n개 — 주기억장치 n개 — 프로그램 n개 — 사용자 n명
- 각 CPU는 자신의 지역 기억장치를 가짐
- 약결합 시스템 이라고 함
7) 추가
(1) 그리드 컴퓨팅 (Grid Computing)
Grid computing is the practice of leveraging multiple computers, often geographically distributed but connected by networks, to work together to accomplish joint tasks. It is typically run on a “data grid,” a set of computers that directly interact with each other to coordinate jobs. (출처: https://hazelcast.com/glossary/grid-computing/)
각 컴퓨터는 큰 태스크 아래의 서브 태스크를 맡고, 컴퓨터가 한 일들을 조합하여 태스크를 이루어낸다.
지리적으로 분산된 컴퓨터들이 네트워크를 통해 CPU, 저장장치, 데이터베이스 등의 자원들을 공유해 활용할 수 있도록 구성할 수 있다.
(2) 클라우드 컴퓨팅 (Cloud Computing)
인터넷 기술을 활용하여 가상화 된 정보기술(IT) 자원을 서비스로 제공하는 컴퓨팅 방식.
- 서비스 부하에 따른 실시간 확장성을 지원받을 수 있음
- 종량제의 성격을 가짐: IT자원을 필요한 만큼만 사용하고, 사용한 만큼만 비용을 지불함
형태
- IaaS: 인프라 자원을 제공 (서버, 스토리지, 네트워크 등)
- PaaS: 개발 플랫폼을 제공
- SaaS: "on-demand software". 소프트웨어를 제공
참고