📌 하드웨어 기본 

메인보드: 컴퓨터의 부품 및 장치들을 설치하여 연동할 수 있게끔하는 부분. 즉, 컴퓨터의 수많은 부품들을 하나로 연결해줌

🌟CPU(중앙처리장치): 컴퓨터의 두뇌, 명령어 해석하여 연산을 수행하는 역할을 하며 컴퓨터의 성능에 가장 크게 관여 (동시에 실행 못함)
- 클럭: CPU의 처리 속도를 나타내는 단위
- 오버클럭: 컴퓨터의 속도를 강제로 빠르게 하는 기술 (클럭의 잠재성을 끌어내기 위해 사용자가 임의로 끌어올리는 것)

🌟GPU(그래픽처리장치): 그래픽 연산을 하기 위해 병렬처리를 할 수 있도록 설계. 하나의 코어는 하나의 연산을 수행할 수 있는데, 이 수천 개의 코어가 동시에 연산작업을 하는 것이 병렬처리임. 연산이 어렵진 않지만 많은 양의 연산을 수행해야하기 때문에 적합함
(디지털 신호를 영상 신호로 바꾸어 모니터로 전송하는 장치 (근데 CPU도 가능하나 매우 느림) )

RAM(주기억장치): 컴퓨터의 수치, 자료, 명령 등을 기억하며 프로그램 및 운영체제가 실행되기 위해 위치되는 곳. (보조기억장치에서 업무를 적재하는 용도로 사용, 컴퓨터의 성능과 관련된 건 CPU)

HDD, SSD(보조기억장치):
- HDD: 비휘발성, 순차접근이 가능한 컴퓨터의 보조기억장치.
- SSD: 플래시 메모리로 구성됨. SSD는 HDD에 비해 데이터 입/출력 속도가 매우 빠름.

가상메모리: 주기억장치의 용량이 부족할 경우 보조기억장치를 주기억장치의 일부인 것처럼 사용 가능

입력장치: 사용자가 컴퓨터를 조작할 수 있게 해주는 모든 장치(키보드, 마이크)
출력장치: (모니터, 스피커, 프린터, 조명)

OS(운영체제): 사용자가 컴퓨터를 조작 및 제어하고 작업의 편의성을 제공하기 위한 '시스템 소프트웨어'

 

 

 


 

 

📌 반드시 알아야 되는 개념 (중요도 🌟🌟🌟)

프로세스: 실행중인 프로그램 의미 (실행하지 않은 건 그냥 프로그램이라고 부름)

프로세싱: 프로그램이 실행중인 것을 프로세싱중이라고 말함

🌟멀티테스킹: 하나의 시스템 또는 CPU가 여러 작업을 수행하는 것. 단, 동시에 처리가 되는 것은 아니고 시분할 방식을 통해 동시에 처리되는 것처럼 보이게 함 (하나의 CPU가 여러 작업을 빨리빨리 번갈아 가면서 수행함)
다수의 작업을 운영체제의 스케줄링에 의해 번갈아 가며 수행되도록 해주는 것을 의미
즉, 운영체제가 다수의 작업을 스케줄링하여 우리가 느끼지 못하는 시간마다 작업을 번갈아가며 수행하여 우리 눈에는 동시에 수행되는 것처럼 보이게 함.
멀티 태스킹의 스캐줄링 방식
- 멀티 프로그래밍 방식
- 시분할 방식
- 실시간 시스템 방식

🌟멀티프로세싱: 두 개 이상의 프로세서가 동시에 실행되는 것(여러개의 CPU가 여러 작업을 동시에 수행함)
프로세서와 프로세스의 개념
프로세서는 CPU나 Microprocessor라는 하드웨어를 의미
프로세스는 실제 메모리에 적재되어 프로세서에 의해 실행되고 있는 프로그램을 의미
보통 하나의 프로세서(CPU)가 하나의 작업을 맡지만 멀티 프로세싱은 다수의 프로세서가 다수의 작업을 함께 처리


🌟멀티스레드: 하나의 프로세스가 여러 작업 단위를 가지며 작업을 수행하는 것
(크롬 브라우저 하나 켜놓고 여러 개의 사이트를 틀어놓는 것)
프로세스와 스레드 비교
프로세스를 생성하는 비용보다 스레드를 생성하는 비용이 더 저렴하기 때문에 프로세스에 다수의 스레드를 생성하여 병렬처리하는 것
+) 프로세스는 데이터, 힙, 스택 영역을 서로 공유하지 않지만 스레드는 스택 영역을 제외한 데이터, 힙 영역을 서로 공유하기 때문에 메모리 부분에서도 훨씬 효율적임.

🌟스케줄링: 작업에 필요한 자원을 언제 누가 어떻게 사용할지 결정해주는 것

커널: 하드웨어와 응용 프로그램 사이에서 인터페이스 역할 수행하기 위한 핵심 부분

터미널: 사용자와 컴퓨터 간에 상호작용을 제공하는 인터페이스

CUI: 사용자가 문자를 통해 명령을 수행하는 것을 의미

GUI: 사용자가 그래픽을 통해 명령을 수행하는 것을 의미

'특강' 카테고리의 다른 글

웹 심화 이해  (0) 2024.08.14
웹 기본 이해  (0) 2024.08.12
기술면접_CS, SQL 내용정리  (0) 2024.08.08
CS 특강(소프트웨어 설계)  (0) 2024.07.26
Git 기초_git 초기 설정  (0) 2024.07.12

+ Recent posts