컴퓨터 구성요소
컴퓨터 시스템의 구성
컴퓨터 시스템의 구성
시스템은 하드웨어, 소프트웨어로 구성되어졌다.
하드웨어 (Hardware)
-
정보들의 전송 통로를 제공
하고, 그 정보에 대한처리
가 실제 일어나게 해주는 물리적인 실체 -
중앙처리장치 (CPU : Central Processing Unit)
-
프로세서 (Processor)
-
프로그램 실행과 데이터 처리라는 중추적인 기능 수행 담당
-
제어 장치, 산술논리연산 장치, 레지스터 등으로 구성되어 있으며 논리회로 소자들의 집합이다.
-
각각의 연산장치는 제어장치의 시그널에 의해서 제어되고 동작한다.
-
산술논리 연산장치는 내부 CPU 버스뿐만 아니라 모든 처리결과를 임식적으로 저장하는 레지스터에 따라서 명령이 수행된다.
-
-
기억장치 (Memory)
-
저장장치(Storage Device)
-
CPU가 실행할 프로그램과 데이터를 저장
-
HDD에서 작업할 데이터를 불러와서 RAM에 올려놓고 CPU에서 연산처리를 하여 받아다가 사용하거나 HDD에 저장하는 등의 행동들을 함
-
주기억장치, 보조기억장치 존재
-
-
입출력장치 (I/O Device)
-
사용자와 컴퓨터간의 대화를 위한 도구
-
입력장치 : 입력데이터를 컴퓨터가 이해하는 신호로 변환
-
출력장치 : 중앙처리장치가 처리한 결과를 출력하는 장치
-
-
하드와이어 프로그램 (hardwired program)
-
부품을 연결하여 기능을 수행하는 프로그래밍의 한 형식
-
특정 목적에만 사용, 다른 목적을 위해서 부품의 재연결 필요
-
컴퓨터 시스템은 융통성이 없음!
-
소프트웨어 (Software)
-
하드웨어가 특정 작업을 수행하도록 제어 신호들을 제공하는 일련의 코드들(codes) 혹은 명령어들(instructions)의 집합
-
컴퓨터에서 정보들이 이동하는 방향과 정보 처리의 종류를 지정하고, 그러한 동작들이 일어나는 시간을 지정하는 명령(command)들의 집합
-
시스템 소프트웨어 : 컴퓨터의 기본적인 운영작업 수행 지원 (Windows, Mac, Android…)
-
컴퓨터 하드웨어의 기능 수행에 필수적인 작업 수행
- 명령어 해석, 디스크에 데이터 저장, 주변장치와 통신
-
운영체제
-
시스템 소프트웨어의 대표적인 프로그램
-
시스템의 자원인 CPU, RAM, HDD, I/O 장치, 네트워크 등을 효율적으로 관리하고 운영
-
사용자와 컴퓨터 하드웨어간 인터페이스 역할
-
컴퓨터 내의 하드웨어/소프트웨어 자원관리
-
프로세스(Process) 관리
-
프로세스의 생성, 삭제, 동기화 등에 관여
-
프로세스 : 컴퓨터의 기억장치에서 수행 중인 프로그램 상태
-
-
주기억 장치 관리
- 주기억 장치의 할당과 회수를 관리
-
보조기억 장치의 사용관리
-
입출력 장치 관리
-
파일 관리
- 기억 장소 할당, 빈 공간 관리, 디스크 스케줄링 담당
-
-
사용자에게 인터페이스 제공
- 윈도우에서 창과 아이콘을 이용하여 쉬운 접근 인터페이스를 제공
-
장치 고장을 탐색, 오류 처리, 보안유지
-
-
유틸리티
-
운영체제의 능력을 향상시키는 시스템 소프트웨어
-
사용자에게 하드웨어 자원의 사용을 제어하는 방법 제공
-
점차적으로 운영체제에 포함
-
-
장치 드라이버
- 주변 장치를 설치할 때, 컴퓨터에게 주변장치를 어떻게 사용하는지 알려주는 시스템 소프트웨어
-
컴퓨터 프로그래밍 언어
- 프로그래머가 프로그램을 작성해서 명령어를 컴퓨터가 처리할 수 있는 형태로 변환해주는 역할
-
-
응용 소프트웨어 : 사용자 수행작업 지원 (word, ppt, hwp..)
-
문서작성 소프트웨어
-
문서의 작성, 편집, 설계, 문서 인쇄를 지원
-
워드프로세서, 한글 등
-
-
그래픽 소프트웨어
- 영상, 3차원 객체, 애니메이션과 비디오 등을 편집/조작
-
프레젠테이션 소프트웨어
-
텍스트, 그래픽, 그래프, 애니메이션 및 사운드를 합성하여 디지털 전자슬라이드를 작성하는데 필요한 모든 도구 제공
-
파워포인트 등..
-
-
수치 분석 소프트웨어
-
물리적 시스템과 사회적 시스템의 수치모델을 만들고, 그 모델의 경향을 예측하고 양식을 이해하도록 분석
-
엑셀, 로터스 등 스프레드시트 프로그램
-
-
교육 및 훈련 소프트웨어
-
새로운 기능을 배우고 숙달되는 것 도움
-
동일 주제에 대하여 교육 대상과 수준에 따라 다르게 할 수 있는 장점
-
-
게임 소프트웨어
-
취미와 여가활동을 위해 설계된 소프트웨어
-
액션, 모험/역할분담, 클래식, 퍼즐, 시뮬레이션, 전략/전쟁 게임으로 분류
-
-
회계 및 재무 소프트웨어
- 금전거래와 투자내역을 유지해주는 프로그램
-
기업 소프트웨어
-
조직이 일상적인 작업을 효율적으로 수행하도록 지원
-
회계 응용, 급여 응용, 의료비와 보험금, 호텔 관리 응용 등에 사용
-
-
데이터 관리 소프트웨어
-
정보를 저장하고, 찾고, 수정하고, 조직화하고, 보고하는 것을 지원
-
정보를 찾는 것을 지원하는 검색엔진
-
-
정보 및 참조 소프트웨어
- 정보의 모음과 그 정보에 접근하기 위한 방법 제공
-
데이터 저장 소프트웨어
- CD-ROM
-
연결 소프트웨어
-
컴퓨터를 지역 컴퓨터 네트워크나 인터넷에 연결해 주는 일
-
기본 통신 소프트웨어, 원격 제어 소프트웨어, 전자우편, 웹 브라우저 등
-
-
펌웨어 (Firmware)
-
하드웨어와 소프트웨어의 중간단계에 해당
-
소프트웨어를 하드웨어화 시킨 것
-
시스템 효율을 높이기 위해 ROM에 들어 있는
기본 프로그램-
ROM에 프로그램이 고정되어 하드웨어의 특성도 가지고 있지만, 실제로는 소프트웨어에 더 가까움
-
전형적인 처리 루틴, 비휘발성, 변경불가 등의 특징으로 특수한 영역에서 많이 사용
-
RAM이 아닌 ROM에 저장되어 있는 이유는?
- 부팅처럼 컴퓨터 기본동작을 관리하는 것이기에 RAM처럼 휘발되면 안된다.
-
-
BIOS, CHIP과 같은 것
MASK ROM : 공장에서 데이터 쓰고 지울수 없는 상태로 나온 ROM
P ROM : 처음에는 비어있지만 한번 프로그래밍 해서 데이터를 써넣을 수 있는 ROM
EP ROM : 전기적으로 데이터를 쓸 수 있는 ROM
EEP ROM : 썼다 지웠다 할 수 있는 ROM
컴퓨터 내부 구조와 데이터, 명령 신호의 흐름
컴퓨터의 기능
컴퓨터 기능
-
프로그램 실행
- CPU가 주기억장치로부터 프로그램 코드를 읽어서 실행
-
데이터 저장
- 프로그램 실행 결과로서 얻어진 데이터를 주기억장치에 저장
-
데이터 이동
- 보조기억장치 (디스크 혹은 CD-ROM)에 저장되어 있는 프로그램과 데이터 블록을 주기억장치로 이동
-
데이터 입력과 출력 기능
-
사용자가 키보드를 통해 보내는 명령이나 데이터 읽기
-
CPU가 처리한 결과 값이나 기억장치의 내용을 프린터 (혹은 모니터)로 출력
-
-
제어
- 프로그램이 순서대로 실행되도록 또는 필요에 따라 실행 순서 변경하도록 조정, 각종 제어 신호들을 발생
명령어 수행 과정
-
4개의 과정, 두 개의 사이클에 의해 완성
-
과정
-
명령어 인출 (instruction fetch)
-
명령어 해독 (instruction decode)
-
명령어 실행 (instruction execusion)
-
프로그램 카운터 증가
-
-
명령어 사이클 : 중앙처리장치가 하나의 명령어를 실행하는데 필요한 전체 처리 과정
-
명렁어 인출, 명령어 실행의 반복실행
-
인출 사이클 (Fetch cycle) : 주기억장치에 기억되어 있는 프로그램 명령어를 호출하는 과정
-
프로세서는 PC(프로그램 카운터)가 지정하는 기억장소로부터 명령어를 인출
-
PC 내용을 증가시키고 인출된 명령어가 명령어 레지스터(IR)로 적재
-
프로세서는 명령어를 해석하고, 요구된 동작을 수행
-
-
실행 사이클 (Executioin cycle) : 명령어를 실행하는 단계
-
프로세서와 기억장치 간에 데이터 전송
-
프로세서와 I/O 모듈 간에 데이터 전송
-
데이터에 대하여 지정된 산술 혹은 논리 연산이 수행
-
제어(control) 동작 : 명령어의 순서가 변경될 때 사용
-
-
-
레지스터
-
실행의 중간 결과나 적은 양의 자료를 임시로 저장
-
중앙처리장치 내의 임시 기억 장치 역할
-
컴퓨터 내부 구성에서의 저장 장치
-
CPU 내의 레지스터
-
프로그램 카운터 (PC) : 다음에 실행할 명령어의 주소를 저장
-
기억장치 버퍼 레지스터 (MBR) : 기억장치에 저장될 데이터 혹은 기억장치로부터 읽은 데이터를 임시적으로 저장
-
입/출력 주소 레지스터 (I/O AR) : 입/출력 장치의 주소를 저장
-
입/출력 버퍼 레지스터 (I/O BR) : 입/출력 모듈과 CPU 사이에 교환되는 데이터를 일시적으로 저장
-
프로그램 코드의 분류
-
저급 언어 (low-level language)
-
기계어(machine language)는 기계 코드(machine code)들의 집합
-
컴퓨터 하드웨어 부품들이 이해할 수 있는 언어
-
2진수 비트들로 구성된 코드
-
-
어셈블리 언어 (assembly language)
-
어셈블리 코드(assembly code)들의 집합
-
고급 언어와 기계어 사이의 중간 언어
-
저급 언어인 기계어와 일대일 대응 관계로 기계어로의 변환과정이 쉬움
-
-
고급 언어 (high-level language)
-
사람이 이해하기 쉬운 언어 (영문자, 숫자로 구성)
-
C, PASCAL, FORTRAN, COBOL
-
프로그래머가 쉽게 작성할 수 있으나 컴퓨터가 이해할 수 있게 번역하는 과정 필요
-
버스와 상호 연결
버스
-
컴퓨터에서 두 개 혹은 그 이상의 장치들을 연결하는 공유 전송 매체
-
버스를 통해 전송되는 유형
-
프로세서가 기억장치로부터 명령어와 데이터를 읽는 유형
-
프로세서가 기억장치에 데이터를 저장하는 유형
-
I/O 모듈을 통하여 I/O 장치로부터 데이터를 읽는 유형
-
프로세서가 I/O 장치로 데이터를 전송하는 유형
-
I/O 모듈이 DMA를 통하여 기억장치와 직접 데이터를 교환하는 전송 유형
-
시스템 버스 (System bus)
-
프로세서, 기억장치 및 I/O 장치간의 통신을 위한 상호 연결
-
데이터 버스
-
모듈들 사이의 데이터 전송 통로
-
CPU가 기억장치 혹은 I/O 장치와의 사이에 데이터를 전송하기 위한 신호 선들의 집합
-
데이터 선들의 수는 CPU가 한 번에 전송할 수 있는 비트 수를 결정
-
데이터 전송 폭이 32비트이고, 버스의 클럭이 33MHz일 때의 전송속도
-
32bit -> 4byte
-
4byte * 33,000,000Hz = 132,000,000byte/sec
-
-
-
제어 버스
-
데이터 버스와 주소 버스의 사용을 제어하는 신호들을 전송하는 통로
-
CPU가 시스템 내의 각종 요소들의 동작을 제어하기 위한 신호 선들의 집합
-
기억장치 읽기/쓰기 신호, I/O 읽기/쓰기 신호 전송 확인, 버스 요구, 버스 승인, 인터럽트 요구, 인터럽트 확인, 클럭(clock), 리셋(reset)들이 전송
-
-
주소 버스
- 주소에 해당되는 데이터를 전송하는 버스
양방향성(bi-directional) 및 단방향성(uni-directional bus)
양방향성
-
데이터 버스, 제어버스
-
읽기 동작과 쓰기 동작을 모두 수행해야 하기 때문에 양방향성
단방향성
-
주소 버스
-
주소가 CPU로부터 기억장치 혹은 I/O 장치들로 전송되는 정보이기 때문에 단방향성
기억장치의 쓰기 시간 및 읽기 시간
쓰기 시간 (memory write time)
- CPU가 주소와 데이터를 보낸 순간부터 저장이 완료될 때까지의 시간
읽기 시간 (memory read time)
-
주소 해독(decode) 시간 + 선택된 기억 소자들로부터 데이터를 읽는데 걸리는 시간
-
데이터 버스는 해석을 해서 읽어들이므로 조금 더 시간이 걸림