컴퓨터의 기본 구성
- 하드웨어의 구성
- 컴퓨터의 대부분의 작업은 중앙 처리장치, 메인 메모리의 협업으로 이루어짐
- 중앙 처리장치와 메인 메모리는 필수 장치로 분류됨
- 이외의 부품은 주변장치로 분류 ( 입력장치, 출력장치, 저장장치 ... )
- 메인 메모리는 전력이 끊기면 데이터를 잃어버린다.
- 데이터를 영구히 보관하기 위해서는 하드디스크나 USB메모리를 사용해야 한다.
- 그래서 메인 메모리를 제 1 저장장치, 하드디스크 / USB를 보조 저장장치라고 지칭
- CPU와 메모리
- CPU는 명령어를 해석하여 실행하는 장치
- 메모리는 작업에 필요한 프로그램과 데이터를 저장하는 장소
- 바이트 단위로 분할되어 있음
- 분할 공간마다 주소로 구분되어 있음
- 전자의 이동으로 데이터를 처리 ( TODO : 데이터 처리 방식 ? )
- 입출력 장치
- 입력장치
- 외부의 데이터를 컴퓨터에 입력하는 장치
- 천공카드, 키보드, 마우스, 터치스크린 등이 해당
- 출력장치
- 처리한 결과를 사용자가 원하는 형태로 출력하는 장치
- 프린터, 모니터, 스피커 등이 해당
- 저장장치
- HDD는 구동장치가 있는 기계이므로 속도가 느림
- HDD의 저장 원리
- 외부와 차단된 진공 내부 공간에 데이터가 저장되는 공간인 플래터 가 존재 ( 자기성 원판 )
- 플래터는 자성체로 코팅 되어 있으며, 자성을 이용하여 0, 1을 기록
- 하드디스크는 플래터를 읽을 수 있는 헤드, 헤드를 움직이는 access arm, arm을 움직이는 구동장치로 구성되어 있음
- 헤드가 직접 플래터에 닿는것이 아니라, 매우 낮은 높이 ( 나노미터 단위 )로 떠서 데이터를 읽음
- 부상하지 않은 채로 플래터가 돌아가면, 하드웨어가 손상된 bad sector가 생길 수 있음
- 물리적인 충격에 주의해야 함
- SSD의 저장 원리
- HDD는 플래터에 암과 헤드를 통해 하드웨어가 직접 데이터를 기록하므로 속도의 한계가 존재 했음
- SSD는 모든 저장 장치가 플래시 메모리로 구성되어 있다. ( 낸드 플래시로 구성 )
- 저장 장치에 데이터를 저장하고, 관리하고, 데이터를 읽는 것을 관리하는 컨트롤러가 매우 중요 → 컨트롤러가 저급하다면, 성능이 좋을 수 없음
- SSD의 캐시 영역을 위해 DRAM도 사용됨 ( DRAM → 휘발성 ! )
- 플래시 메모리는 셀 당 수명이 존재하기 때문에, 많이 쓰면 데이터 안정성에 영향을 줄 수 있음
- 저장 용량에 비해 가격이 싸기 때문
- 전원 온오프와 관계 없이 데이터를 영구적으로 저장
- 자성을 이용하는 장치, 레이저를 이용하는 장치, 메모리를 이용하는 장치로 구분 됨
- 메인보드
- CPU와 메모리 등 다양한 부품( CPU, 그래픽카드 ... )들을 연결하는 커다란 판
- 컴퓨터의 부품이
버스로 연결됨
- 버스가 메인보드에 연결된 장치들에 데이터를 전송하는 역할을 함
- 버스는 각 장치들을 연결하는 선의 집합이자 데이터가 다니는 연결 통로
- 전력이 공급되면 버스로 연결된 부품이 작동한다
- 폰노이만 구조
- CPU, 메모리, 입출력장치, 저장장치가 버스로 연결되어 있는 구조를 지칭
- 하드웨어는 그대로 둔 채 작업을 위한 프로그램만 메모리에 교체하여 메모리에 올리는 방식
- 모든 프로그램은 메모리에 올라와야 실행 할 수 있다는 전제
- 운영체제도 프로그램 이기 때문에 메모리에 올라와야 실행이 가능함
- 요리사 모형
- 메인 요리사 → CPU / 보관 창고 ( 저장장치 ) / 도마 ( 메모리 ) / 주방 보조 ( 보관 창고에 있는 재료를 도마로 옮겨주는 역할 ) / 채소를 다듬거나, 고기를 손질하는 보조 요리사 로 요리하는 공간 상정
- 메인 요리사 ( CPU )가 요리를 하려면 보관 창고 ( 저장 장치 )에 있는 재료를 도마 ( 메모리 )에 올려야 가능
- 요리 방법 결정 → CPU의 프로세스 관리
- 도마 위의 재료를 정리 → 여러 프로그램이 사용하는 메모리를 관리
- 보관 창고의 재료를 정리 → 저장 장치 내의 데이터를 관리 하는 것에 비유
- 도마가 너무 작아 도마에 손질 할 재료를 한번에 올릴 수 없어 저장장치에서 매번 가져와야 한다면 요리사가 요리하는데 속도를 내지 못할 것 → 도마가 손질할 재료를 올리기에 충분히 크다면 요리사가 요리하는데 충분한 속도를 낼 수 있음
- 모든 조건이 동일 할 때, 응용 프로그램이 1GB보다 더 큰 메모리를 요구한다면, 1GB램이 장착되어 있는 컴퓨터 보다 4GB램이 장착되어 있는 컴퓨터의 속도가 더 빠를 것
- 하지만 손질할 재료를 다 올리고도 도마를 더 키운다고 해서 요리 속도가 빨라지진 않음
- 메모리가 16GB면 충분한 작업을 하는 경우에, 메모리가 32GB가 되었다고 해서 두배 더 빨라지는것이 아님
- 하드웨어 사양 관련 용어
- 클록
- CPU에서 나오는 박자의 단위
- CPU에서 박자를 만들어 내면 ( 통칭, tick, pulse, clock tick ) 틱에 맞추어 CPU안의 구성 부품이 작업을 진행
- 헤르츠
- 1초에 클록틱이 몇 번 발생하는지를 나타내는 단위 ( 클록틱이 발생하는 속도를 나타내는 단위 )
- 1초에 클록틱이 1번이면 1Hz
- 3.4GHz 는 1초에 34억번 클록틱이 발생하는 것 → 1초에 34억번의 연산을 할 수 있다는 것
- 메인보드의 버스도 클록틱에 맞춰서 데이터를 전송하기 때문에 메인보드의 성능도 클록으로 표시함
- 시스템 버스와 CPU 내부 버스
- 시스템 버스
- 메모리와 주변 장치를 연결하는 버스 ( Front-Side Bus, 전면버스 )
- 메인보드의 속도가 1.3GHz인데, 메모리의 속도가 800MHz라면, 메인보드가 800MHz로 작동하여 성능을 다하지 못함
- CPU 내부 버스
- CPU 내부에 있는 장치를 연결하는 버스 ( Back-Side Bus, 후면버스 )
- CPU 내부 버스의 속도는 CPU의 클록과 같다.
- CPU는 CPU 내부 버스의 속도와 시스템 버스의 속도 차이 때문에 작업이 지연되는 문제점이 존재
CPU와 메모리
- CPU의 구성과 동작
- CPU
- 명령어를 해석하여 실행하는 장치
- 요리모형에서의 요리사
- 연산장치 ( 직접 요리 하는 부분 ) / 제어 장치 ( 작업 지시 ) / 레지스터 ( 재료 임시 보관 장소 )로 구성되어 있음
- 산술 논리 연산장치
- CPU에서 데이터를 연산하는 장치
- 산술연산 ( 사칙연산 ) / 논리연산 ( AND / OR ) 연산 수행
- 제어장치
- 레지스터
- CPU의 명령어 처리 과정
- 레지스터의 종류
- 버스의 종류
- 버스의 대역폭
- 메모리의 종류와 부팅
컴퓨터 성능 향상 기술
- 버퍼
- 캐시
- 저장장치의 계층 구조
- 인터럽트
병렬 처리
- CPU의 속도를 올리고자 하나, 하드웨어 적인 한계 ( CPU 클록을 높이는 것의 한계 )가 있고 이를 해결하기 위해 만든 방법
- CPU의 코어를 여러 개 만들거나, 동시에 실행 가능한 명령의 개수를 늘리는 방법을 사용
- 병렬 처리 ?
- 병렬 처리 시 고려 사항
- 병렬 처리 기법