📑
하드웨어 기본
• 메인보드: 컴퓨터의 부품 및 장치들을 설치하여 연동할 수 있게하는 부품. 제작사마다 모양, 색상 등이 다르지만 비슷함.
Desktop / Laptop(노트북)
• CPU: Central Processing Unit. 중앙처리장치. 컴퓨터의 두뇌 역할. 명령어를 해석하여 연산을 수행하는 역할. 컴퓨터의 성능에 가장 크게 관여. GPU에 비해 복잡한 연산 수행.
*clock - CPU의 처리속도 단위. 석영이 진동하는 진동수에 따라 CPU가 동작. '오버클락'한다는 것은 기존의 컴퓨터의 속도를 강제로 빠르게하는 기술. CPU의 수명이 줄어들게 될 수 있다.
• GPU: 그래픽처리장치. 그래픽 연산을 하기 위해 병렬처리를 할 수 있도록 설계되어 있음. GPU에는 코어가 수백,수천 개 존재. 아주 작은 하나의 코어는 하나의 연산을 수행할 수 있는데, 이 수천개의 코어가 동시에 연산작업을 하는 것이 병렬처리. (주로 단순 연산. 연산량이 아주 많이 때문에 GPU가 필요.)
요즘에는 게임이나 그래픽 작업뿐만 아니라 GPU를 통해 AI를 학습하는 작업도 수행. 어려운 연산이 아니라 쉽지만 굉장히 많은 양의 연산을 수행해야하기 때문에 CPU보다 GPU가 적합한 것.
• 주기억장치: RAM(램). 컴퓨터의 수치, 자료, 명령 등을 기억하며 프로그램 및 운영체제가 실행되기 위해 위치되는 곳. 컴퓨터가 데이터를 빠르게 읽고 쓰기 위한 곳으로, 컴퓨터가 구동될 때 OS가 적재되며 사용하는 거의 대부분의 데이터가 이곳에 저장됨. 휘발성 메모리로 컴퓨터를 끄면 적재된 모든 데이터가 삭제된다.
- DRAM: 우리가 통상적으로 램이라고 얘기하는 것.
- SRAM: CPU의 내부에서 CPU와 DRAM의 속도 차이를 해결하기 위해 캐시메모리의 역할을 수행함.
*CPU, GPU, RAM 등과 같은 중요 부품들에는 '반도체'(도체와 부도체의 중간 성질을 띰)를 사용하는데 이는 전류를 제어하는 데 매우 탁월하기 때문.
• 보조기억장치: 비휘발성 메모리로 컴퓨터를 껐다 켜도 지워지지 않고 데이터가 그대로 적재되어있는 보조기억장치. 운영체제 및 일반 프로그램들, 여러 지워지면 안되는 데이터 들이 저장됨. 주기억장치인 RAM보다 속도가 많이 느려서 보통 데이터를 적재하는 용도로만 사용.
- HDD(하드디스크): 동그란 원판(디스크 또는 플래터라고 부름)에 물리적으로 접근하여 데이터를 적재함.
- SSD: 차세대 보조기억장치. HDD가 너무 느리다는 단점을 극복하기 위해 탄생함. 훨씬 빠르고 물리적으로 더 튼튼하기도 하며, 데이터 복구가 훨씬 어려움.
*가상메모리: 주기억장치의 용량이 부족한 경우 보조기억장치의 일부를 주기억장치처럼 이용하는 기술.
• 입력장치: 사용자가 컴퓨터를 조작할 수 있게 해주는 모든 장치. (마우스, 키보드, 스캐너, 마이크, 카메라 등)
• 출력장치: 컴퓨터가 사용자에게 조작을 받아 표현하는 모든 장치. (모니터, 프린터, 스피커, 조명 등)
OS (운영체제)
: 사용자가 컴퓨터를 조작 및 제어하고 작업의 편의성을 제공하기 위한 '시스템 소프트웨어'.
• 운영체제의 목적
1. 처리능력(일정 시간 내에 시스템이 처리하는 작업량)
2. 반환시간(작업을 완료할 때까지 걸린 시간)
3. 사용가능도(요청이 있을 때 즉시 사용가능한 정도)
4. 신뢰도(주어진 요청을 정확하게 해결하는 정도)
• 운영체제의 역할
1. 프로세스 관리
2. 기억장치 관리
3. 주변장치 관리
4. 파일 관리
• 다양한 운영체제: Windows, MacOS, android, iOS, Linux
운영체제 기본 개념
• 프로세스: 실행 중인 프로그램
• 프로세싱: 프로그램이 실행중이다.
• 멀티태스킹: 하나의 시스템 또는 CPU가 여러 작업을 수행하는 것. 단, 동시에 처리되는 것은 아니고 시분할 방식으로 동시에 처리되는 것처럼 보이게 한다. 하나의 CPU가 여러 작업을 빠르게 번갈아 가며 수행. (큰 작업!)
• 멀티 프로세싱: 두개 이상의 프로세스가 동시에 실행되는 것. 여러 개의 CPU가 여러 작업을 동시에 수행. (프로세스 단위)
• 멀티 스레드: 하나의 프로세스가 여러 작업 단위(연산 수준의 작은 단위의 작업)를 가지며 작업을 수행하는 것. (ex. 크롬 브라우저 하나 켜놓고 여러개의 사이트를 틀어놓는 것.) *스레드 - CPU의 작업 단위.
• 스케줄링: 작업에 필요한 자원을 언제 누가 어떻게 사용할지 결정해 주는 것. (OS의 역할.) 멀티스레드, 멀티 프로세싱에 있어 중요.
• 커널: 하드웨어와 응용 프로그램 사이에서 인터페이스 역할을 수행하기 위한 핵심 부분.
• 터미널: 사용자와 컴퓨터 간 상호작용을 제공하는 인터페이스.
• CUI: 사용자가 문자를 통해 명령을 수행하는 것. Character User Interface. = CLI (Command-Line Interface)
• GUI: 사용자가 그래픽을 통해 명령을 수행하는 것. Graphic User Interface.