68일차 CS50 [하드웨어/기억장치/비트와 바이트]
2022. 01. 11 화요일
코드 스테이츠를 수료하고 CS 기초지식을 쌓으며 기술면접을 준비하고자 한다. 💪
여기에서 무료로 CS 강의를 들을 수 있고, 여기서 들은 것을 바탕으로 정리해보고자 한다.
개인 노션에도 따로 전체적으로 정리할 것이다.
오늘은 하드웨어, 기억장치, 비트와 바이트 강의를 들었다. 아래는 강의 자료를 기반으로 다시 정리해본 것이다.
1. 하드웨어 🖥
개요
하드웨어는 컴퓨터를 물리적으로 구성하는 요소이며, 컴퓨터에 연결되어 추가적인 기능을 수행합니다.
컴퓨터 내의 하드웨어
- 중앙처리장치(Central Processing Unit, CPU) : 입력장치에서 받은 명령을 실제로 처리합니다. CPU가 1초에 얼마나 많은 연산을 할 수 있는지 속도를 측정하는 단위는 기가헤르츠(GHz) 입니다.
- 기억장치 : 입력된 명령이나 데이터가 저장되는 공간
- 주기억장치(RAM) : 기억된 정보를 읽어내기도 하고 다른 정보를 기억시킬 수 있는 메모리. 응용 프로그램을 일시적으로 불러오거나, 데이터를 일시적으로 저장하는데 사용되는 임의 접근 기억 장치입니다.
- 보조기억장치 : 영구적으로 데이터를 저장합니다.
- HDD : 원판 모양의 플래터를 회전시켜 드라이브에 데이터를 읽고 쓰는 원리입니다.
- SSD : HDD와 달리 움직이는 부품 없이 더 빠른 속도로 데이터를 읽고 쓰는 대신 가격은 더 비쌉니다.
- 플래시 드라이브(USB메모리) : 이동식 저장공간 기기로 SSD와 마찬가지로 움직이는 부품이 없습니다.
- 입출력장치 : 입력장치와 출력장치를 통틀어 입출력장치라고 부릅니다.
- 입력장치 : 사용자가 입력한 자료를 컴퓨터가 이해할 수 있는 형태로 변환하는 장치입니다.
- 마우스, 키보드, 스캐너 등
- 출력장치 : 컴퓨터가 처리한 정보를 사용자에게 보여주는 장치입니다.
- 모니터, 프린터 등
- 입력장치 : 사용자가 입력한 자료를 컴퓨터가 이해할 수 있는 형태로 변환하는 장치입니다.
주변기기
컴퓨팅에 사용되는 모든 하드웨어가 컴퓨터 내부에 존재하는 것은 아닙니다. 컴퓨터 자체부품이 아닌 경우 보통 컴퓨터와 연결하여 사용하는데, 이런 기기들을 보통 주변기기라고 합니다.
주변기기는 보통 컴퓨터에 있는 물리적 포트에 꽂혀 컴퓨터에 연결됩니다. 많이 알려진 포트로는 범용 직렬 버스(USB) 포트가 있습니다. USB 포트는 업계 표준으로 대부분의 컴퓨터 주변기기들은 모두 USB 연결을 지원합니다.
생각해보기
Q1-1. 어떻게 USB는 지금처럼 보편화 될 수 있었을까요? A1-1. 플래시 드라이브. 즉, 이동식 저장공간 수요 증가로 인해 보편화 될 수 있었다고 생각합니다. 그 이유는 조그마한 메모리 스틱안에 필요한 데이터를 저장해서 들고다닐 수 있고, USB 메모리만 있다면 어느 기기에서 사용할 수 있다는 편리성이 있기 때문입니다.
Q1-2. 애플이나 다른 회사는 이 표준 포트 사용을 피하고 싶어할까요? A1-2. 애플이나 다른 회사는 표준 포트 사용을 피하고 싶어할 것 같습니다. 그 이유는 독자적인 포트를 사용하게 함으로써 그 회사만의 제품을 이용하게 함으로써 회사의 이윤을 높일 수 있기 때문입니다. 하지만, 이미 범용화 된 표준 포트를 사용하는 사람이 많기에 표준 포트 사용에 익숙해져 있는 사용자를 포섭하기 위해서 표준포트는 피할 수 없는 선택이 아닐까 생각합니다.
Q2. SSD가 아닌 HDD를 사용해야하는 이유에는 어떤것들이 있을까요? A2. SSD가 데이터 처리속도 면에서 HDD 보다 빠르다는 장점은 있지만, 굳이 빠른 처리속도가 요구되는 상황이 아니라면 보다 저렴한 HDD를 사용하는 것이 더욱 효율적일 수 있습니다.
2. 기억장치 💿
개요
컴퓨터가 계산을 수행하기 위해서는 비트와 바이트의 형태로 기억장치에 저장할 수 있어야 합니다. 기억장치는 종류마다 서로 다른 속도를 내고 내부에 저장할 수 있는 양에 차이가 있어, 서로 다른 장단점을 가지고 있습니다.
CPU 캐시, 하드디스크, RAM
- CPU : 용량이 매우 큰 파일이나 데이터를 처리해야 하지만, 한번에 32 또는 64bit의 블록 단위로 굉장히 적은 양의 데이터를 조작하고 계산합니다. 하지만 중앙처리장치는 이러한 비트들을 굉장히 빠른 속도로 처리할 수 있습니다.
- 하드디스크 : CPU보다 훨씬 많은 양의 데이터를 저장할 수 있습니다. 근래의 하드디스크는 GB, TB 단위의 데이터를 저장할 수 있습니다. 하지만 데이터를 읽고 쓰는 데에 많은 시간이 소요됩니다.
- RAM : 하드디스크보다 훨씬 빠르게 데이터를 읽고 쓸 수 있어서, 실행중인 프로그램이나 열려있는 파일들이 더 빨리 접근될 수 있도록 메모리를 저장하는 데에 쓰입니다.
L1, L2, L3 캐시
RAM보다 더 빠르게 정보를 읽고 쓰지만 용량은 더 작습니다.
- L1 캐시 : 가장 작고 빠릅니다. 중앙처리장치가 재빨리 받아 처리할 수 있도록 몇 킬로바이트의 데이터만을 저장합니다.
- L2 캐시 : L1 캐시보다 조금 크지만, 그만큼 더 느립니다.
- L3 캐시 : 보통 몇 메가바이트를 저장할 수 있어 셋 중 가장 크지만 가장 느립니다.
타협점
일반적으로, 기억장치의 타협점은 용량과 속도에서 찾습니다. 속도와 용량은 trade off 관계를 가집니다. 그리고 속도가 빠른 기억장치는 각 용량 단위의 가격이 더 비쌉니다. 예를 들어, RAM의 1GB 가격이 하드디스크 1GB 가격보다 비쌉니다.
여러 프로그램을 실행하기 위해서는 운영체제와 프로그램이 동시에 실행시켜야 하는데 이 때 RAM을 사용합니다. 너무 많은 공간의 RAM이 사용되면, 근래의 운영체제는 가상 기억장치라는 것을 써서 일시적으로 데이터를 RAM에서 하드디스크로 옮기고, 사용자가 필요로 할 때 다시 정보를 불러옵니다.
생각해보기
Q1. 왜 RAM이 하드디스크보다 비싸다고 생각하나요? A1. 아무래도 읽고 쓰는 속도가 빠르게 하는 것이 좀 더 기술을 요하기 때문에 속도가 빠른것이 더 비쌀 것 같습니다. 그래서 RAM이 하드디스크 보다 비싸다고 생각합니다. 그리고 예를 들자면, 하드디스크는 창고이고, RAM은 창고에서 물건을 꺼내는 작업자라고 할 수 있을 것 같습니다. 창고에 단순히 물건을 쟁여놓는 것은 적은 힘과 비용이 들 것이지만, 작업자들이 물건을 꺼내서 옮기는 것에는 큰 힘과 비용이 들어가야 하는 것으로 비유할 수 있습니다.
Q2. 왜 이렇게 다른 단계의 기억장치가 있을까요? A2. 컴퓨터는 기본적으로 0과 1로만 계산을 하게 되는데, 이것을 하나의 장치에서 모든 것을 다 처리하려고하면 무리가 있습니다. 그래서 여러 단계를 나눠 처리를 해줘야 효율적으로 처리할 수 있도록 해주기위해 다른 단계의 기억장치가 있다고 생각합니다.
3. 비트와 바이트 🪙
개요
연산을 수행하기 위해 비트(bit)라는 측정 단위를 쓰는데, 0과 1, 두 가지 값만 가질 수 있는 측정 단위입니다.
비트열
- 비트(bit) : 0과 1, 이 두 가지의 값만 저장할 수 있습니다. 컴퓨터 내부에서 물리적으로 표현될 때는, 켜고 끌 수 있는 스위치라고 생각할 수 있습니다.
- 바이트(byte) : 8개의 비트가 모여 만들어진 것입니다. 하나의 바이트에 여덟 개의 비트가 있고, 비트 하나는 0과 1로 표현될 수 있기에 $2^8$ = 256 개의 서로 다른 바이트가 존재할 수 있습니다.
다양한 데이터 표현하기
'학습 TIL > CS50' 카테고리의 다른 글
71일차 CS50 [알고리즘2] (0) | 2022.01.14 |
---|---|
70일차 CS50 [알고리즘1] (0) | 2022.01.13 |
69일차 CS50 [2진수, ASCII, 16진수, 이미지] (0) | 2022.01.13 |