컴퓨터
프로그램이 가능한 자료 처리기 [ Programmable data processor]
컴퓨터가 자료를 어떻게 처리할 지를 알려주는 일련의 명령어 집합
프로그래밍 과정의 결과물
- 주어진 문제의 해결 방법과 절차("알고리즘 Algorithem")을 찾고,
- 이것을 적절한 프로그래밍 언어를 사용해서 컴퓨터가 이해할수 있는 형태로 표현한것.
처리 가능한 작업 유형과 연산의 집합을 결정하는 역할
- 컴퓨터 : 특수한 목적의 작업을 처리하는 기계가 아니라, 다양한 형태의 작업을 수행할수 있는 범용의 기계
컴퓨터의 장점
- 신속한 자료처리 - ms , us ns ps
- 계산 결과의 정확성 - 유효한 입력과 프로그램이 주어지면, 항상 정확한 결과생성
- 자동 - 사람의 개입이 불필요 -> 프로그램의 지시에 따라 자동적으로 처리
- 대용량 - 여러 저장장치를 이용해서 많은 데이터를 저장/처리
컴퓨터의 역사
~1930년대 이전 (현대적 의미의 컴퓨터와는 다소 거리가 있음)
앨런튜링의 튜링 기계 : 컴퓨터의 이론적인 모델
1. ENIAC , Electronic Numerical Integrator And Calculator : 1946 모클리 & 에커드 , 최초의 완전 전자식의 범용 컴퓨터
특징 : 메모리에 프로그램이 저장되지 않고 데이터만 저장 -> 외부에서 프로그램되는 방식 (펀치카드, 외부의 프로그래밍으로 동작).
1. EDVAC, Electronic Discrete Variable Automatic Computer : 1950, 폰노이만의 개념 "Stored-Program" 기반을 둔 최초의 컴퓨터
특징 : 메모리에 프로그램이 저장되는 형식
컴퓨터 기술의 세대별 분류
| 1세대 |
2세대 |
3세대 |
4세대 |
5세대 |
| 1950~1959 |
1959~1965 |
1965~1975 |
1975~1985 |
1985~현재 |
|
진공관
상업적 컴퓨터 등장
제한된 접근 및 사용
|
트랜지스터
FORTRAN과 COBOL 등장
|
집적회로(LSI)
미니컴퓨터 및 소프트웨어 패키지 등장 -> SW 산업 등장
|
초고밀도 집적 회로(VLSI)
마이크로 컴퓨터(Altair 8800, 1975)등장
컴퓨터 네트워크 출현
|
새로운 개념의 컴퓨터 등장
(랩톱, 팜톱, 웨어러블 컴퓨터, 광컴퓨터, DNA 컴퓨터 등)
|
컴퓨터의 분류
1. 컴퓨터의 사용목적 : 범용컴퓨터 , 전용컴퓨터
2. 자료 표현 방식 : 디지털컴퓨터, 아날로그 컴퓨터
3. 컴퓨터의 성능 : 슈퍼컴퓨터 , 대형컴퓨터 , 미니 컴퓨터 , 워크스테이션, 마이크로 컴퓨터
컴퓨터과학
컴퓨터과학이란?
- 컴퓨터를 만들고, 프로그램을 작성하고, 컴퓨팅 도구를 효과적으로 사용하는 것 이상의 훨씬 더 많고 다양한 내용을 다루는 학문
자료의 표현, 저장, 조작, 검색과 관련된 학문
- 자료의 획득(Acquisition, ) 표현(Represesntation), 처리 (Processing), 저장(Storage), 통신(Communication) , 접근(Access)을 위한 방법들의 실행 가능성, 구조화, 표현, 기계화에 관련된 내용을 다루는 분야
- 컴퓨터, 자료, 프로그램, 알고리즘에 대한 분야
- 자료 - 자료구조, 파일처리, 데이터베이스 ···
- 정보 - 컴퓨터시스템 , 디지털 논리회로, 컴퓨터 구조
- 프로그램 - 운영체제, 컴파일러, 프로그래밍 언어, 정보통신, 컴퓨터 그래픽스 ··
- 알고리즘 - 이산구조, 계산이론, 인공지능, 알고리즘, 오토마타 ···
- 알고리즘과 관련된 이슈를 다루는 학문 ( 컴퓨터과학)
- 주어진 문제를 해결하기 위한 처리과정을 절차적으로 나열한 명령어들의 집합
- 알고리즘의 존재 여부 = "컴퓨터의 한계"
- 문제의 부류 : 일반적인 기호조작기계에 대한 연구, 인간과 기계사이의 통신 수단 개발, 그리고 이러한 기계들의 응용에 관련된 분야
- 컴퓨터시스템 : 자료처리를 위한 다양한 구조, 도식, 수단에 대한것
- 컴퓨터 응용 : 자료처리 업무와 그 처리 절차, 그리고 그와 관련된 다양한 표현 방법에 관련된 것.
컴퓨터 과학의 특성
- 비교적 짧은 역사, 엄청나게 빠른 변화
- 다른 학문과의 밀접한 연관의 가짐 -> 폭 넓은 응용범위
- 수학, 공학 심리학, 생물학, 언어학, 경영과학, 물리학, 철학 ···
- 컴퓨터공학과 컴퓨터과학의 차이점.
| 컴퓨터공학 |
컴퓨터과학 |
| 가격대비 성능 특성이 좋은 컴퓨팅 엔진을 만들기 위해 하드웨어와 소프트웨어 요소의 조립에 중점 |
현재의 기술에 덜 의존적인 방식으로 주어진 문제에 대한 해결책의 효율성과 실현가능성에 보다 중점
-> 컴퓨터를 활용한 문제해결에 대한 학문
|
컴퓨터과학은 퍼즐을 푸는 것과 같다.
컴퓨터 시스템
컴퓨터 시스템의 구성요소
1. 하드웨어 : 기계를 구성하고 있는 모든 물리적 기계장치 및 전자 장치
- 핵삼장치 : 폰노이만 모델에서 제시한 4개의 서브 시스템에 해당.
- 폰노이만 John von Neumann 모델
- 컴퓨터의 내부 구조와 처리과정의 정의한 모델
- 모든 컴퓨터는 폰노이만 구조를 기반으로 하고 있다.
- 중앙처리장치 (CPU : Central Processing Unit) : 제어장치(CU : Control Unit) + 산술 논리 연산장치 (ALU : Arithmetic and Logic Unit)
- 기억장치 -> 주기억장치, 보조기억장치
- 처리할 데이터와 처리를 담당하는 프로그램이 저장되는 장소
- 산술 논리 연산 장치 (ALU)
- 자료에 대한 산술 연산 과 논리 연산의 수행을 통해 직접적인 자료 처리가 이루어지는 장치
- 제어장치(CU : Control Unit)
- 컴퓨터의 기억장치, ALU, 입출력 장치의 동작을 제어하는 장치
- 입력장치 (외부에서 컴퓨터로 입력받음 ) , 키보드 마우스 마이크 등
- 출력장치 (컴퓨터내부에 처리된 결과를 외부로 출력함) 모니터, 프린터, 스피커등
하드웨어 (폰노이만 모델의 주요개념)
- 내장 프로그램(Stored-Program)
- 실행될 프로그램은 메모리에 저장되어야 한다.
- 초기 컴퓨터에서는 데이터만 메모리에 저장되고, 프로그램은 컴퓨터 외부에서 표현
- 프로그램과 데이터는 동일한 형식으로 메모리에 표현된다
- "비트패턴" : 나란히 비트가 나열된 형태
- 프로그램은 명령어의 나열이다.
- 미리정의된 유한개의 기본 명령의 조합으로 프로그램을 구성한다.
- 메모리에서 한번에 한개씩 명령어를 가져와서 해석하고 실행한다.
- 명령어의 재사용으로 인해 프로그래밍 작업이 간단해진다.
2. 소프트웨어
모든 프로그램을 총체적으로 표현하는 용어
소프트웨어의 분류
시스템 소프트웨어 : 컴퓨터의 작업 관리와 특정 기능의 수행을 통해 컴퓨터의 전체적인 운영을 담당 -> 운영체제, 컴파일러 , 유틸리티 프로그램
응용소프트웨어 : 사용자가 요구하는 작업을 직접적으로 수행하는 프로그램 -> 워드프로세서, 데이터베이스 프로그램등..
3. 자료
- 모든 자료는 비트패턴 으로 표현
- 비트패턴 -> 이진 상태를 나타내는 비트인 0 과 1이 나열된 형태
- 폰노이만 모델에서는 자료의 표현및 저장 형태에 대해서는 정의하고있지 않음
- 자료의 입출력을 위해서는 적절한 형태로의 변환이 필요
4. 사용자