티스토리 뷰
컴퓨터의 구성
컴퓨터는 단단한 하드웨어와 소프트웨어로 구성되어 있다.
- 하드웨어: 지금 옆에 있는 컴퓨터 안에 단단한 것들이 하드웨어다.
- 소프트웨어: 컴퓨터 내부에 구동하는 모든 프로그램이다.
하드웨어
중앙 처리 장치(Central Processing Unit)
- 인간으로 치면 두뇌에 해당하는 부분
- 기억, 해석, 연산, 제어를 담당한다. -> 주 기억장치에서 프로그램 명령어와 데이터를 읽어와 처리하고 명령어의 수행 순서를 제어한다.
- 비교와 연산을 담당하는 산술논리장치(ALU Arithmetic and Logical Unit)와 명령어 해석과 실행하는 제어장치, 속도가 빠른 데이터 기억장소인 레지스터로 구성되어있음
- 개인용 컴퓨터와 같은 소형 컴퓨터에서는 CPU를 마이크로 프로세서라고도 부름
기억 장치(RAM, HDD)
- 주기억장치와 보조기억장치로 나누어지며 RAM과 ROM도 이곳에 해당함
- // RAM: Random Access Memory, 컴퓨터를 작동하는 순간부터 연산을 하고 동작에 필요한 모든 내용이 전원이 유지되는 내내 이 기억장치에 저장된다고 한다. 전원이 꺼지면 모두 사라지는 RAM도 있고 기억을 해두는 RAM도 있다고 한다. 필자는 8GB 두 개, 16GB를 사용 중이다.
- // ROM: 고정 기억 장치, 데스크탑을 만들어 봤거나 관심이 많은 사람이면 이곳에 건전지를 장착해 봤을 가능성이 아주 높다! '아 그거?'라고 생각이 든다면 그곳이 그것이다! -> 보통 컴퓨터에 기본적인 운영 체제 기능이나 언어의 해석 장치(interpreter)를 내장시키기 위해 이용한다고 한다.
- 실행 중인 프로그램과 같은 프로그램에 필요한 데이터를 일시적으로 저장한다.
- 보조 기억 장치는 하드디스크(HDD) 등을 말하며, 주 기억 장치에 비해 속도는 느리지만 많은 자료를 영구적으로 보관할 수 있는 장점이 있다. -> 쉽게 말해 우리가 게임을 까는(?) 곳, 필자는 Seagate사의 HDD와 삼성 SSD를 사용하고 있다.
입출력 장치
- 입력: 마우스, 키보드 등등
- 출력: 스피커, 프린터, 모니터 등등
소프트웨어
시스템 소프트웨어
- 운영체제(Operating System): 윈도우, 맥 OS, 리눅스, 유닉스 등등
- 컴파일러: 우리가 배운 컴퓨터 용어(필자의 경우 Java)를 컴퓨터가 알아들을 수 있는 언어인 기계어로 번역해주는 친구 -> 이 번역 행위를 컴파일(Compile)이라고 한다.
응용 소프트웨어
- 워드프로세서: 대표적으로 Word가 있고 한국에서는 한글과 컴퓨터를 많이 쓴다(.hwp)라고 적혀있는 문서
- 스프레드시트: 대표적으로 엑셀이 있다.
시스템 버스
- 하드웨어 구성 요소를 물리적으로 연결하는 선
- 각 구성요소가 다른 구성요소로 데이터를 보낼 수 있도록 통로가 되어줌
- 용도에 따라 데이터 버스, 주소 버스, 제어 버스로 나누어진다.
데이터 버스
- 중앙처리장치와 기타 장치 사이에서 데이터를 전달하는 통로
- 기억 장치와 입출력 장치의 명령어와 데이터를 중앙처리장치로 보내거나 중앙처리장치의 연산 결과를 기억 장치와 입출력 장치로 보내는 '양방향' 버스.
주소 버스
- 데이터를 정확히 실어 나르기 위해 기억장치에 '주소'를 정해 주어야 한다. 주소 버스는 중앙처리장치가 주 기억 장치나 입출력 장치로 기억 장치 주소를 전달하는 통로이기 때문에 '단방향' 버스.
제어 버스
- 주소 버스와 데이터 버스는 모든 장치에 공유되기 때문에 이를 제어할 수단이 필요하다.
- 제어 버스는 중앙처리장치가 기억 장치나 입출력 장치에 제어 신호를 전달하는 통로.
- 제어 신호 종류: 기억 장치 읽기 및 쓰기, 버스 요청 및 승인, 인터럽트 요청 및 승인, 클락, 리셋 등
- 제어 버스는 읽기 동작과 쓰기 동작을 모두 수행하기 때문에 '양방향' 버스.
컴퓨터는 기본적으로 읽고 처리한 뒤 저장하는 과정으로 이루어진다.
READ ➡ PROCESS ➡ WRITE
이 과정을 진행하면서 끊임없이 주기억 장치(RAM)와 소통한다. 이때 운영체제가 64비트라면 CPU는 RAM으로부터 데이터를 한 번에 64bit씩 읽어온다!!!
출처(References)
gyoogle님이 만드신 신입 개발자 전공지식 & 기술 면접 백과사전의 내용을 복습하는 글입니다.
https://github.com/gyoogle/tech-interview-for-developer/blob/master/Computer%20Science/Computer%20Architecture/%EC%BB%B4%ED%93%A8%ED%84%B0%EC%9D%98%20%EA%B5%AC%EC%84%B1.md
, 나무위키
'Computer Science' 카테고리의 다른 글
[CS] Index? (0) | 2023.02.23 |
---|
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 자바스크립트
- 타입 좁히기
- HTML 기본
- 동기코딩
- html table
- 타입스크립트
- Array
- Python
- 파이썬
- CSS
- html
- method
- 함수
- em
- padding
- 객체
- 프로그래머스
- 메서드
- Typescript
- 반복문
- function
- 실수
- css position
- Object
- CSS 포지션
- if문
- Type
- javascript
- for문
- Margin
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함