강좌 개요 2009년 1학기 컴퓨터의 개념 및 실습
이 과목을 무엇을 배울 수 있는가? 컴퓨터의 기본 개념 컴퓨터의 구조 운영체제 및 주변환경 대학교에서 강의 이수에 필수적으로 사용하는 S/W 학습 문제 해결 C 언어 및 지원 S/W (Visual studio) 자료 분석 및 처리 Excel 결과 정리 및 발표 프레젠테이션 – Powerpoint 보고서 작성 – 아래아 한글
C 언어 학습 이해 주요 프로그래밍 언어의 원류 C++, C# Java 전공수업에서 다룰 전용 프로그램의 ‘스크립트’ 작성에 필요한 기초 프로그래밍 능력 Matlab, R SAS, S-Plus, SPSS 기타 전공과목별 전용 통계 프로그램
C언어 관련 연계 교과목 프로그래밍 언어 4190.102A 002 컴퓨터 프로그래밍 (2-1 전선) 컴퓨터공학부, 2학년 컴퓨터 프로그래밍 전기공학부, 2학년, ‘프로그래밍 방법론’ 농생대, 2학년, ‘컴퓨터프로그래밍 개론’ 프로그래밍 원리 자료구조(data structure) 알고리즘(algorithm) 통계분석 326.212 전산통계 및 실험 (2-2 전필) R
컴퓨터의 개요 2009년 1학기 컴퓨터의 개념 및 실습
컴퓨터란? 넓은 의미의 컴퓨터 계산능력을 가진 모든 장치 좁은 의미의 컴퓨터 데이터와 명령어를 입력 받아 저장하며, 이를 처리하여 결과를 출력하는 전자 장치 구성: Hardware + Software
컴퓨터의 구성 Hardware 전자장치 (눈으로 보이는 기계 자체를 의미) 사람의 몸에 해당 Software 컴퓨터의 동작을 제어하는 명령어의 집합
Hardware 기본 구성 입력 장치 처리 장치 출력장치 사람이 컴퓨터에게 입력하는 정보를 받아들이는 장치 키보드, 마우스, 스캐너 처리 장치 컴퓨터가 계산 및 처리를 위해 사용하는 장치 CPU (Central Processing Unit) 출력장치 컴퓨터의 정보 및 처리 결과를 외부 장치로 내보내는 장치 스피커, 모니터
Software 하드웨어를 바탕으로 컴퓨터가 실제로 작동하기 위해 필요한 논리적 구성 요소 구분: 시스템 소프트웨어 + 응용 소프트웨어 Hardware System Software Application Software User
Software 시스템 소프트웨어 컴퓨터를 관리하고 이용할 수 있도록 지원하는 프로그램 운영 체제: MS Windows, Mac OS X, Unix 프로그래밍 언어 번역기: 프로그램(프로그램 코드)을 컴퓨터가 이해하는 언어로 번역 응용 소프트웨어 응용 분야에 알맞은 일을 수행하도록 도와주는 소프트웨어 웹 브라우저, 문서 편집기, 동영상 플레이어
컴퓨터의 종류
컴퓨터의 종류 데이터 취급 방법에 따른 분류 디지털 컴퓨터 (vs. 아날로그 컴퓨터) 사용 목적에 따른 분류 저장 능력, 처리속도에 따른 분류 개인용 컴퓨터(Personal Computer, PC) 대형 컴퓨터(Mainframe) 서버급 컴퓨터 슈퍼 컴퓨터: 고도의 정밀한 과학 계산 핵 모의 실험, 지질 데이터 분석, 기상 예측 화성 탐사선 : 패스파인더에 사용
개인용 컴퓨터 (PC) 저가의 컴퓨터 시스템 성능 면에서는 메인 프레임 수준으로 까지 발전
대형 컴퓨터 (Mainframe) 신뢰도를 가지는 다중 사용자 처리 은행, 보험 회사, 제조 업체 등에서 사용
수퍼컴퓨터 고속의 계산속도를 필요로 하는 분야 초당 수십억 개의 명령을 실행할 수 있음
기타 컴퓨터 노트북 컴퓨터(Laptop) 펜 기반형 컴퓨터(PDA, Personal Digital Assistant)
컴퓨터의 역사
기계식 계산기 톱니 바퀴이용 파시칼라인(1642): 파스칼 최초의 기계식 계산기 덧셈, 뺄셈 계단식 계산기: 라이프니쯔 곱셈, 나눗셈 가능 Difference engine, analytical engine 톱니, 벨트, 증기기관 이용 천공카드를 이용하여 자동 계산 및 입출력 Charles Babbage (엔진 설계, 아들이 완성) Ada (최초의 컴퓨터 프로그래머, 시인 Byron의 딸)
Difference Engine http://acarol.woz.org
기계식 계산기 Tabulating machines 천공카드 이용한 대규모 데이터 처리(1890년 미국 인구조사) Hollerith 설계 Computing Tabulating Recording Corporation (IBM의 전신)
전자식 컴퓨터 Mark I (Harvard Univ.) ABC (Atanasoff-Berry Computer) : 최초의 전자식 컴퓨터 ENIAC (Electronic Numerical Integrator and Calculator)
컴퓨터의 세대 분류 전자적 기술의 발달 정도 기준 1세대 (1941-1958): 진공관 2세대 (1959-1964): 트랜지스터 3세대 (1965-1970): 집적 회로 4세대 (1971-현재): 마이크로 프로세서 5세대 (미래): Quantum computer, DNA computer
제 1 세대 컴퓨터(1941~1958) 진공관 사용 ABC, ENIAC, EDSAC, EDVAC, UNIVAC 저장매체: 자기 드럼 데이터 입출력 : 천공 카드
제 2 세대 컴퓨터(1959~1965) 트랜지스터 이용 진공관의 1/200 크기, 저발열, 저전력, 저가, 낮은 고장률 저장 매체: 자기 코어, 자기 테이프, 자기 디스크 최초의 수퍼 컴퓨터(CDC 6000) 등장 고급 프로그램 언어(FORTRAN, COBOL) 등장 시작
제 3 세대 컴퓨터(1965~1970) 집적회로(IC) 등장 소형/저렴/고속 IBM 360 시분할(Time Sharing) 여러 명이 터미널을 이용하여 동시에 컴퓨터 활용 가능 Software 기술 강조 되기 시작 이전에는 Hardware 성능 향상/효율적 이용에만 초점 소프트웨어 산업 출현, 번창 시작 C 언어 개발
제 4 세대 컴퓨터(1971~ ) 고밀도 집적회로 이용 (LSI/VLSI) 마이크로 프로세서 탑재: Intel CPU 수퍼 컴퓨터의 본격화 4GL(Fourth Generation Language) “어떻게”보다 “무엇을”에 초점 최초의 상업용 PC Apple 컴퓨터 (Steve Jobs and Steve Wozniak, 1977) IBM PC의 출현 (1981) 화면(행 당 80문자), 키보드(대문자 지원) 메모리 추가 가능, 확장 슬롯 Microsoft: IBM PC에 MS-DOS를 공급하면서 성장
컴퓨터의 이론 모델
Turing Machine 제어 장치와 기억 장치로 구성된 가상 장치 만들 수 있는 어느 컴퓨터의 논리도 시뮬레이션 할 수 있는 추상적인 모델 컴퓨터의 작동 방식과 원리를 간단하게 표현 head tape
Turing Machine A tape which is divided into cells, one next to the other. Each cell contains a symbol from some finite alphabet. A head that can read and write symbols on the tape and move left and right one step at a time. A state register that stores the state of the Turing machine. An action table (or transition function) that tells the machine what symbol to write, how to move the head and what its new state will be, given the symbol it has just read on the tape and the state it is currently in.
Church’s Thesis Every 'function which would naturally be regarded as computable' can be computed by a Turing machine 현재까지 나온 컴퓨터로 해결할 수 있는 모든 문제(알고리즘을 만들 수 있는 문제)는 튜링 머신으로 해결할 수 있음. 증명 불가능. 그러나, 가정은 아님.
폰 노이만 구조 (Von Neumann Architecture) 현대 컴퓨터 “프로그램” 가능 폰 노이만 프로그램 내장형(저장형) 컴퓨터 모든 현대 컴퓨터의 기본 모델 저장된 알고리즘에 의해 컴퓨터가 수행 제어됨. - John von Neumann이 기여한 분야 quantum physics, functional analysis, set theory, economics, computer science, topology, numerical analysis, hydrodynamics (of explosions), statistics, …
CPU (1) Fetch an instruction from memory (2) Fetch any data required by the instruction from memory (3) Execute the instruction (4) Store results in memory (5) Go back to Step (1)