Lina's Toolbox

컴퓨터 구조와 운영체제 본문

스파르타 내일 배움 캠프 AI 웹개발 과정/CS

컴퓨터 구조와 운영체제

Woolina 2024. 7. 25. 14:19

하드웨어 기본


Mainboard (메인보드)

메인보드

슬롯(홈이 파여진 부분) 이 있어서 컴퓨터의 부품 및 장치들을 장착하여 연동할 수 있게끔 하는  부품

 

메인보드는 제작사마다 슬롯(장치를 삽입하는 자리)의 위치, 메인보드의 크기 및 색상 등은 달라진다.

근데 대체로 보통 위 예시와 비슷하다.


CPU(Central Processing Unit, 중앙 처리 장치)

컴퓨터의 '두뇌'역할을 하는 매우 중요한 부품

명령어 해석하여 연산을 수행하는 역할을 하며 컴퓨터의 성능에 가장 크게 관여한다.

중앙처리장치 실제 모습
메인보드에서 CPU의 위치

 

명령어 해석하여 연산을 수행하는 역할을 하며 컴퓨터의 성능에 가장 크게 관여한다.

GPU 다음으로 가장 비쌈..

 

Clock(클럭)

  • 클럭은 CPU의 처리 속도를 나타내는 단위
  • '오버클럭'한다는 말은 기존의 컴퓨터의 속도를 강제로 빠르게하는 기술

GPU(그래픽 처리 정치)

그래픽 연산을 하기 위해 병렬처리를 할 수 있도록 설계되어있다. 

게임, 그래픽 작업, AI를 학습할 때도 사용한다.

 

병렬 처리란 아주 작은 코어가 수백~수천개가 들어있다. 하나의 코어는 하나의 연산을 할 수 있는데, 이 수천개의 코어가 동시에 연산 작업을 하는 것이 병렬처리이다.

메인보드에서 GPU를 끼우면 되는 자리

 

그렇다면 왜 굳이 GPU로 모두 연산하지 않고 CPU로 연산하는 것일까?

GPU는 초등학생 수준의 두뇌가 수천 수백명! ➡️ 어려운 계산 없음

CPU는 박사급의 두뇌가 3-4명

 

인공 지능 할 때 필요한 연산은 어려운 연산이 없고, 연산의 양이 많으므로

GPU를 사용하는 것!


주기억장치

컴퓨터의 수치, 자료, 명령등을 기억하며 프로그램 및 운영체제가 실행하기 위해 위치되는 곳

RAM  (Random Access Memory, 램)

  • 데이터를 빠르게 읽고 쓰기 위한 곳.
  • 컴퓨터가 구동될 때 운영체제가 적재되며 우리가 사용하는 거의 대부분의 모든 데이터는 여기에 저장된다.
  • 휘발성 메모리(컴퓨터 끄면 RAM에 적재된 모든 데이터는 삭제된다.)

메인보드에서 RAM의 위치

 

💡 RAM에는 사실 DRAM과 SRAM 2가지 종류가 있다.
우리가 알고있는 RAM 은 통상 DRAM을 의미하고 일반적으로 SRAM은 CPU의 내부에서 CPU와 DRAM의 속도 차이를 해결하기 위해 캐시메모리(일시적으로 필요한 적은 양의 데이터를 저장하는 기억장치)의 역할을 수행하고 있다.

 

💡 CPU, GPU, RAM 등 이런 중요 부품들에는 '반도체'라는 물질을 사용한다.

'반도체'란 전기가 흐르는 '도체'와 전기가 흐르지 않는 '부도체'의 중간 성질을 띈다.

반도체를 사용하는 이유는 전류를 제어하는데 있어서 매우 탁월하기 때문

웨이퍼 실제 이미지

레이저로 매우 미세한 홈을 판다. 그 홈에서만 전기가 흐른다.

우리는 전기가 흐르긴 흘러야 하는데 원하는 곳에만 흘러야 하므로 반도체를 사용하는 것.

N나노 = 홈들간의 간격을 의미 ➡️크기가 작아진다.


 

보조기억장치

  • 비휘발성 메모리 (컴퓨터를 껐다 켜도 지워지지 않고 데이터가 그대로 적재되어있음)
  • 운영체제 및 일반 프로그램들, 여러 지워지면 안되는 데이터들이 저장 되어있다.
  • 주기억장치에 비하면 속도는 훨씬 느린 편 ➡️ 보통 데이터를 적재하는 용도로만 사용

HDD(Hard Disk Drive, 하드디스크)

내장 하드디스크 외형

물리적인 보조기억장치.  공기가 없으면 (ex. 우주) 하드디스크를 이용 못한다.

돌아가는 동그란 원판의 플래터가 존재. (컴퓨터가 돌때 소리가 발생하는게 보통 여기or 쿨러 때문) 

플래터(디스크라고도 부름)에 물리적으로 접근하여 데이터를 적재한다.

 

하드디스크 내부

플래터에 데이터가 적재되어, 원판에서 가까운 부분은 메모리를 빠르게 읽을 수 있다. 원판에서 먼 부분은 상대적으로 느리게 읽음.

헤드가 플래터를 읽는다. 

저렴하고 데이터 복구가 상대적으로 쉬움.

단점은 느리다.

 

SSD (Solid State Drive, 에스에스디)

반도체에 전기 신호를 이용하여 데이터를 적재하는 보조기억 장치. 공기가 없어도 사용 가능

내장 SSD
외장 SSD

차세대 보조기억 장치로, HDD가 너무 느리다는 단점을 극복하기 위해 탄생했다.

비싸고, 읽고 쓰는데 HDD보다 훨~씬 빠르다.

하드디스크보다 물리적으로 충격에 튼튼.

크기작다.

단, 데이터가 날라가면 복구가 힘들다.

 

💡 가상메모리 기술 

주기억장치의 용량이 부족할 경우 보조기억장치의 일부를 주기억장치의 일부인 것 처럼 사용하는 기술

(어디에 사용하냐에 따라 다르다.)


입력장치

사용자가 컴퓨터를 조작할 수 있게 해주는 모든 장치를 의미

ex. 키보드, 마우스, 마이크, 스캐너, 타블렛, 카메라, 터치패드 ...

 

출력장치

컴퓨터가 사용자에게 조작을 받아 표현하는 모든 장치를 의미

ex. 모니터,  스피커, 헤드셋, 프린터, 조명, 촉각수트 ...

 

메인보드에서 입/출력장치 설치 위치

 

복합기는 입/출력 장치!


 

OS(Operating System, 운영체제)

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

ex. 리눅스, 윈도우, 맥, 안드로이드, IOS ...

 

운영체제 목적

  • 처리능력: 일정 시간내에 시스템이 처리하는 작업량
  • 반환시간: 작업을 완료할 때까지 걸린 시간
  • 사용가능도: 요청이 있을 때 즉시 사용 가능한 정도
  • 신뢰도: 주어진 요청을 정확하게 해결하는 정도

 

운영체제 주요 자원 관리

  • 프로세스 관리: 실행되는 프로그램을 관리합니다.
  • 기억장치 관리: 프로세스에게 할당된 메모리를 관리합니다.
  • 주변장치 관리: 입출력 장치 관리
  • 파일 관리: 파일의 생성과 삭제, 변경, 유지 관리

 

다양한 운영체제

  • Windows
더보기

마이크로소프트에서 개발한 운영체제

현대 PC에서 가장 많이 사용되는 운영체제 중 하나.

군, 금융기관 연구기관 등 다양한 곳에서 사용된다.

 

장점

  • 사용자 친화적
  • 인터페이스 구성 표준화
  • 확장성
  • 넓은 사용자 커뮤니티

 

단점

  • 보안 취약성
  • 라이선스 비용(돈을 내는것 자체가 단점이라기 보단 무료 운영체제도 있다.)
  • 불확실한 업데이트로 인한 버그
  •  MacOS
더보기

애플에서 개발한 운영체제

현대 PC에서 가장 많이 사용되는 운영체제 중 하나.

개인 사용자 및 크리에이티브 산업분야에서 많이 사용되는 추세이다.

 

장점

  • 우수한 보안성
  • 하드웨어 최적화
  • 소프트웨어 생태계(애플사에서 생산하는 제품끼리의 연동)

 

단점

  • 고비용
  • 제한적인 커스터마이징
  • 제한적인 호환성
  • IOS
더보기

애플에서 개발한 운영체제

애플에서 개발하는 모바일계열에 주로 사용된다.

 

장점

  • 보안
  • 일관된 UI
  • 앱 스토어 및 생태계
  • 최신 기술 지원

 

단점

  • 제한적인 커스터마이징
  • 앱 호환성
  • 파일 관리 및 접근 (보안성을 강조하다 보니 사용자가 접근 및 관리하기에도 다소 불편한 점이 있음)
  • 고비용
  • 하드웨어 제한(ios 제품 끼리만 호환 가능)
  • Linux
더보기

Unix 운영체제 기반의 오픈소스 운영체제로 서버환경에 많이 사용된다.

임베디드나 슈퍼 컴퓨터에도 많이 사용되는 운영체제

일반 사용자도 사용하지만 초보 사용자에게는 비교적 사용하기에 어려운 운영체제

무료 오픈 소스이므로 여러 버전이 존재한다.

 

장점

  • 무료
  • 보안
  • 커스터마이징
  • 다양한 배포판

 

단점

  • 소프트웨어 호환성
  • 다소 어려운 인터페이스
  • 상용 지원 부족
  • 비교적 어려운 사용자 입문
  • 안드로이드
더보기

Unix 운영체제 기반의 오픈소스 운영체제로 모바일 환경에 많이 사용된다.

 

장점

  • 무료
  • 광범위한 기기지원
  • 소프트웨어 생태계
  • 구글 서비스와 통합
  • 커스터마이징

 

단점

  • 버전에 따른 호환성 문제
  • 보안
  • 개인정보(구글 서비스와 깊게 통합되어있기 때문에 개인정보 수집에 우려가 있음)

 

무료 오픈 소스  ➡️  고객센터가 없다.... ➡️ 문제가 생긴다면 알아서 고쳐서 써야함.


반드시 알아야 하는 개념 (외우기!)

  • 프로세스: 실행 중인 프로그램
  • 프로세싱: 프로그램이 실행 중인 것
  • 스레드: 작업 단위
  • 멀티테스킹: 하나의 시스템 또는 cpu가 여러 작업을 수행하는 것. 단, 동시에 처리가 되는 것은 아니고 시분할 방식을 통해 동시에 처리되는 것처럼 보이게 한다.
    (하나의 CPU가 여러 작업을 빨리빨리 번갈아 가면서 수행함 - 큰 작업(입, 출력 ..) 단위)
  • 멀티프로세싱: 두개 이상의 프로세스가 동시에 실행되는 것
    (여러개의 CPU가 여러 작업을 동시에 수행함 - 프로그램 단위)
  • 멀티스레드: 하나의 프로세스가 여러 작업 단위를 가지며 작업을 수행하는 것
    (크롬 브라우저 하나 켜놓고 여러개의 사이트를 틀어놓는 것 - 작은 연산 단위)
  • 스케줄링: 작업에 필요한 작원을 언제 누가 어떻게 사용할 지 결정해 주는 것
  •  커널: 하드웨어와 응용 프로그램 사이에서 인터페이스 역할 수행하기 위한 핵심 부분
    (커널도 하나의 프로그램. 단 매우 로우 레벨에 있음)
  •  터미널: 사용자와 컴퓨터 간에 상호작용을 제공하는 인터페이스
  • CUI(Character User Interface): 사용자가 문자를 통해 명령을 수행하는 것을 의미

이런식으로 그림하나 없이 글자로만 입력하여 컴퓨터를 조작하는 방식

  • GUI(Graphiv User Interface): 사용자가 그래픽을 통해 명령을 수행하는 것을 의미

이런식으로 그림이나 어떤 그래픽을 통해 컴퓨터를 조작하는 방식

 

📌 "멀티 테스킹와 멀티 프로세싱의 차이" 기술 면접 질문으로 자주 나온다!