일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 비동기
- Operating System
- python algorithm
- 자료구조
- 프로그래머스
- 자바스크립트
- REACT
- 자바
- Python
- react 기초
- node.js
- 개발공부
- codestates
- Zerobase
- 운영체제
- java
- 코드스테이츠
- 알고리즘
- useState
- typeScript
- 컴퓨터공학
- JavaScript
- algorithm
- 파이썬
- execution context
- context switching
- 파이썬 알고리즘 인터뷰
- 글또
- Computer Science
- OS
- Today
- Total
Back to the Basics
[Computer Science][CS50] 컴퓨터와 컴퓨팅 - TOPIC1 본문
Tipic 1 정리
Topic1은 hardware에 대한 내용이다.
1. Intro
컴퓨터를 살 때 또는 중고로 팔 때 중요시 여기는 것은 바로 "성능"이다.
최근에 나도 공부를 위해 macbook air 2021을 구매했다.
Topic1의 내용과 같이 모델을 선택한다고 해서 끝이 아니라 ram용량을 몇 GB로 선택할 것인지, CPu는 i5를 선택할 것인지, i7을 선택할 것인지 (물론 macbook air는 appel chip을 사용하므로 cup에 대해 고민할 일을 없었다.)에 따라 가격이 2배 또는 1.5배로 확 오른다. 이렇게 고르고 고르다 보면 결국 그냥 조금 더 투자해서 macbook pro를 사는 게 더 나을 수도 있다는 생각이 드는 경우까지 갈 수 도 있다. 성능 대비 투자한 비용이 2배 또는 1.5배나 올랐는데 그것도 모르고 구매할 수도 있는 것이다..ㅋ 내가 돈이 많아서 뭐든 상관이 없다면 그냥 제일 비싼 거 사면되겠지만!! 작고 소중한 월급을 받는 월급쟁이였던 나는 그럴 수는 없었다.
ram이라던지 cpu라던지 기본적인 것들은 알고 있자만, 속도의 차이가 얼마나 나는지 그리고 가격 변동 대비 속도 향상이 얼마나 차이가 나는지는 솔직히 감도 잘 안 온다. 난 대부분 코딩용으로 사용을 할 것인데 어떤 사람은 8GB ram으로 코드 잘 돌아간다고 하고, 어떤 사람은 8GB로는 조금 힘들었다는 이야기도 있었다. 그러다 결국 16GB로 구매하긴 했지만.. 다다익램 이라는 말을 믿고..!! 만약 아예 컴퓨터에 대해 모르는 사람이었다면 더 힘들었을 것이다..
그나마 애플은 내가 가는 용어 위주로 구분을 해놓았는데, 다른 사이트를 들어가 보면 하나하나 검색을 해봐야 알 수 있는 용어들이 많이 있었다.
하드웨어에 대해 아는 것은 나의 소중한 "돈 mony"와 매우 밀접하게 연관되어있다. 컴퓨터뿐만이 아니라 TV , 프린터, 모니터, 핸드폰 , 태블릿 등을 구매할 때에도 마찬가지이다..!
즉, 우리는 하드웨어의 기능과 차이점에 대해 알수록 더욱 현명하게 컴퓨터를 구매하거나 필요한 하드웨어를 추가할 수 있을 것이다.
Hardware에 대해 알아야 하는 이유는 실생활에서 유용하게 현명하게 돈을 쓰기 위한 것만이 아니다. 좋은 프로그래머가 되기 위해 내가 만든 프로그램이 컴퓨터에서 어떻게 수행이 되는지 알아 한다. SW는 HW 안에서 구동되는 것이고 SW의 속도는 결국 Hw의 영향을 받지 않을 수 없다. 단지 성능 좋은 프로그램을 짜는 것이 다가 아니라, 버그가 발생하거나 속도나 느릴 때 무엇이 원인인지 파악하는데 도움이 된다. 또한, 하드웨어의 성능, 운영체제를 알면 비용과 성능 들을 고려하려 적합한 프로그램을 만들 수 있기 때문이다.
이제, 필요성을 알았으니.. 컴퓨터 하드웨어에 대해 공부한 것을 정리해보겠다.
2.데이터의 흐름
컴퓨터의 하드웨어의 구성 : 중앙처리장치 , 기억장치, 입출력 장치 크게 3가지로 구분된다.
3.중앙처리장치 (Central processing Unit, CPU)
- CPU는 프로세서 (processor)라고도 불리며, 입출력 장치에서 받은 명령을 실제로 처리한다.
- CPU가 1초에 하는 연산속도를 측정하는 단위로는 GHz이다.
- CPU는 다음과 같이 APU, Control Unit, Registor, Bus로 구성된다.
- ALU란 산술 논리 연산장치이며, 실제 연산을 하는 장치이다. 컴퓨터 명령어 내에 있는 연산들에 대해 연산과 논리 동작은 담당한다.
- registor는 cpu에서 일시적으로 값을 기억하는 임시 기억 장소이다.
- BUS : 장치들 간 상호 필요한 정보를 교환하기 위해 연결하는 공동의 전송선이다. Address Bus, Data Bus, Control Bus 가 있다.
*프로세서(peocessor) VS 프로세스(process)? *
말은 되게 비슷한데, 사실살 매우 엄연히 다르다. 정보처리기사를 공부하기 전까지는 나도 몰랐던 사실이었다.. 여기서 한번 더 정리하고 넘어가 보자
Processor : 중앙처리장치 hardware이다! 적어도 하나 이상의 ALU(Airthmetic Logical Unit)과 처리 레지스터 (Registor)를 내장하고 있어야 한다.
Process : SW적으로는 데이터 포맷을 변환하는 역할을 수행하는 데이터 프로세싱 시스템(데이터 처리 시스템)을 의미한다. 말이 많이 어렵게 느껴지는데
"프로세서(cpu)에 의해 실행 중인 프로그램"을 의미한다.
4. 기억장치(Memmory)
기억장치란 입력된 명령어나 데이터가 저장되는 공간이다. 주기억장치와 보조기억장치로 나누어진다. 아래의 그림에서 RAM이 주기억장치, MEMORY DEVICE가 보조기억장치이다.
(1) 주기억장치
- RAM(Random Access Memory)을 주로 사용한다. RAM은 사용자가 자유롭게 내용을 읽고, 쓰고 지울 수 있는 기억장치이다. 기억된 정보를 읽거나 다른 정보를 기억시킬 수 있는 메모리로, 응용 프로그램을 일시적으로 불러고거나 데이터를 일시적으로 저장하는데 사용되는 임의 접근 기억 장치 이다.
- 위의 그림에서와 같이 보조기억 장치에서 명령이나 프로그램 애플리케이션 등이 CPU로 바로 들어가지 않고 RAM으로 전달된다. RAM은 전원이 차단되면 내용이 지워지는 휘발성 기억장치이기 때문에 읽고 쓰는 속도가 빠르기 때문이다.
- RAM이 메모리에 얼마나 많은 양의 정보를 저장할 수 있는지 측정하는 단위는 GB이다.
(2) 보조기억장치
- 보조기억장치로 쓰이는 하드 드라이브 (C:)는 영구적으로 데이터를 저장한다.
- 원판 모양의 플래터를 회전시켜 드라이브에 데이터를 읽고 쓰는 방식의 HDD (Hard Disk Drive)가 있고
- NAND 기반의 플래시 메모리 반도체 사용하여 메모리를 저장하는 SSD (Solid State Drive)가 있다.
- 기계적 구동인 HDD보다 SSD가 3배 이상 빠르고 소음도 적다
- 용량의 단위는 GB , TB 등이 이다.
- 이동식 저장공간 기기로 USB 메모리 스틱 등으로 불린다.
- CD나 DVD를 읽고 쓸 수 있게 하는 광학 디스크 드라이브가 있다.
5.입출력 장치
- 입력장치 : 사용자가 입력한 자료를 컴퓨터가 이해할 수 있는 형태로 변환하는 장치로, 마우스 키보드 스캐너 등이 있다
- 출력장치는 모니터, 프린터 등을 들 수 있다. 모니터는 크기와 해상도를 언급하는데, 모니터의 크기는 보통 대각선 끝과 끝의 길이를 인치로 표시한다.
6. 주변기기
컴퓨팅에 사용되는 모든 하드웨어사 컴퓨터 내부에 존재하는 건은 아니며, 컴퓨터의 자체 부품이 아니라면 컴퓨터와 연결하여 사용한다. 이런 기기들을 주변기기라고 한다. (키보드, 스피커 등)
주변기기는 물리적 포트에 꽂혀 컴퓨터에 연결된다. 주로 사용되는 포트는 USB (범용 직렬 버스 포트)가 있다.
'Computer Science' 카테고리의 다른 글
[Computer Science][Codestates] - HTTP/Network 기초 - 1 : Client -Server Architecture , HTTP, IP, Port (0) | 2021.10.24 |
---|---|
[Computer Science][제로베이스 ]-운영체제 - System call & kernel (0) | 2021.10.24 |
[Computer Science][CS50] 컴퓨터와 컴퓨팅 - TOPIC2 (0) | 2021.08.30 |
[Computer Science] 선언형 프로그래밍 VS 절차형 프로그래밍 (2) | 2021.08.05 |
[Computer Science] MapReduce Model 이란? (0) | 2021.08.05 |