Post

컴퓨팅의 이해 – 운영체제, 프로세스, CPU, 메모리 개념 정리

운영체제의 역할과 구조, 프로세스와 스레드, CPU와 메모리의 개념과 동작 원리를 한눈에 정리한 글입니다.

컴퓨팅의 이해 – 운영체제, 프로세스, CPU, 메모리 개념 정리

1️. 운영체제(OS)의 역할

운영체제 (Operating System)

  • 정의: 컴퓨터 하드웨어와 사용자 간 인터페이스를 제공하는 시스템 소프트웨어
  • 주요 역할:
    • 자원 관리
    • 작업 스케줄링
    • 사용자 인터페이스 제공
  • 예시: Windows, macOS, Linux, Android, iOS

주요 기능

  • 프로세스 관리: 생성/종료, 스케줄링, 동기화, 교착 상태 처리
  • 메모리 관리: 할당/해제, 가상 메모리, 페이징, 세그멘테이션
  • 파일 시스템 관리: 파일 생성/삭제, 디렉토리 구조, 권한 관리
  • 입출력(I/O) 관리: 장치 제어, 버퍼링, 캐싱, 스풀링
  • 보안 및 보호: 사용자 인증, 접근 제어

운영체제 구조

커널(Kernel)이란?

  • OS의 핵심, 하드웨어와 응용 프로그램 사이를 중개
  • “OS의 심장” 또는 “브레인” 역할

커널의 유형

  • 모놀리식 커널: 모든 기능이 하나의 공간에서 수행 (예: Linux)
  • 마이크로커널: 최소 기능만 포함 (예: QNX)
  • 계층형 구조: 기능을 계층으로 분리 (예: THE OS)
  • 모듈형 구조: 기능별 모듈을 동적으로 로드/언로드 (예: 현대 Linux)

프로세스와 스레드

  • 프로세스: 독립 실행 단위 (예: 음악 재생 프로그램)
    • 독립적 메모리 공간 보유
  • 스레드: 프로세스 내 작업 단위 (예: 음악 검색, 앨범 표출)
    • 메모리 공유
    • 컨텍스트 스위칭 빠름
  • 멀티태스킹/멀티스레딩: CPU 활용 극대화

메모리 관리 방식

  • 연속 할당: 단일 블록, 외부 단편화 문제
  • 페이징: 고정 크기 페이지 단위, 페이지 테이블
  • 세그멘테이션: 가변 크기 세그먼트
  • 가상 메모리: 물리 메모리보다 큰 공간 제공, 스왑 공간 사용

파일 시스템

  • 역할: 데이터 저장, 접근, 보안, 공유
  • 구성 요소:
    • 파일
    • 디렉토리
    • 메타데이터
  • 할당 방식:
    • 연속 할당
    • 연결 할당
    • 인덱스 할당

입출력 시스템

  • 입출력 장치 관리: CPU-I/O 데이터 전달, 인터럽트 기반
  • 버퍼링: 일시 저장으로 속도 차이 보완
  • 캐싱/스풀링:
    • 캐싱: 자주 사용하는 데이터 임시 저장
    • 스풀링: 출력 큐에 저장 후 순차 처리

2️. 프로세스

프로세스 개요

  • 실행 중인 프로그램의 인스턴스
  • CPU, 메모리, 파일 등 자원 점유
  • 프로그램(정적 코드)과 구분

프로세스 구성 요소

  • 코드 섹션
  • 데이터 섹션
  • 힙(동적 메모리)
  • 스택(함수 호출/지역 변수)
  • PCB(프로세스 제어 블록)

프로세스 상태

  • New
  • Ready
  • Running
  • Waiting
  • Terminated

컨텍스트 스위칭

  • CPU가 다른 프로세스로 전환
  • PCB 저장/복원
  • 오버헤드 발생

프로세스와 스레드 비교

구분프로세스스레드
메모리 공간독립적공유
자원별도공유
생성 비용높음낮음
통신IPC 필요메모리 공유로 빠름

프로세스 간 통신(IPC)

  • 공유 메모리
  • 메시지 큐
  • 파이프
  • 소켓

프로세스 스케줄링

  • CPU 자원 효율적 배분
  • 비선점형: FCFS, SJF
  • 선점형: Round Robin, Priority

프로세스 동기화

  • 자원 공유 시 데이터 무결성
  • 세마포어, 뮤텍스, 모니터

스레드(Thread)란?

  • 프로세스 내 가장 작은 실행 단위
  • “프로세스=집, 스레드=작업자”

멀티쓰레드(Multithreading)

  • 여러 스레드를 동시에 실행
  • CPU 코어 효율 활용

사용 목적

  • 여러 작업 동시 수행
  • UI 응답성 향상

예시

  • 웹 서버: 여러 클라이언트 요청 처리
  • 게임: 물리 엔진, 렌더링 분리 처리

멀티쓰레드 장단점

장점

  • 자원 효율적 사용
  • 처리 속도 개선
  • 응답성 향상

단점

  • 공유 자원 충돌
  • 동기화 필요
  • 디버깅 어려움

동기화와 문제점

  • 필요성: 공유 데이터 무결성 유지
  • 기법: Mutex, Semaphore, Monitor
  • 문제: 교착 상태, 라이브락, 기아 상태

3️. CPU

CPU 개요

  • 컴퓨터의 두뇌
  • 명령어 해석/실행
  • 발전: 단일 코어 → 멀티코어

CPU의 기본 구성

  • ALU: 산술/논리 연산
  • CU: 명령어 해석/제어
  • 레지스터: 고속 임시 저장소
  • 캐시 메모리: CPU-RAM 속도 차이 보완

CPU의 동작 원리

  • 명령어 사이클
    • Fetch
    • Decode
    • Execute
    • Store
  • 파이프라이닝: 명령어 겹쳐서 처리

CPU 클럭 속도와 성능

  • 클럭 속도(GHz)
  • IPC
  • 멀티코어와 병렬 처리
  • 하이퍼스레딩

CPU 캐시 구조

  • L1: 작고 빠름, 코어별
  • L2: 코어별/공유
  • L3: 여러 코어 공유
  • 캐시 미스 시 성능 저하

CPU와 메모리 계층

  • CPU → 캐시 → RAM → 저장장치
  • 계층적 구조로 속도 최적화

CPU 명령어 집합(ISA)

  • ISA: CPU가 이해하는 명령어
  • x86, ARM, RISC-V
  • CISC vs RISC

CPU 최신 기술

  • 멀티코어
  • 하이퍼스레딩
  • AI/ML 가속화
  • 저전력 설계
  • 칩렛 아키텍처

4️. 메모리

메모리 개요

  • 데이터를 저장/처리 속도 향상
  • 휘발성 vs 비휘발성

메모리의 역할

  • 데이터 임시 저장/캐싱
  • CPU와 빠른 데이터 교환

메모리 종류

주기억장치

  • RAM: 휘발성
  • ROM: 비휘발성

보조기억장치

  • HDD, SSD

캐시 메모리

  • CPU-RAM 간 속도 차이 극복

가상 메모리

  • 디스크 공간 일부를 임시 메모리처럼 사용

메모리 계층 구조

  • 레지스터 > 캐시 > RAM > SSD > HDD
  • 속도와 용량의 트레이드오프

DRAM vs SRAM

  • DRAM: 저렴, 재충전 필요
  • SRAM: 빠름, 재충전 불필요

가상 메모리와 페이지 관리

  • 물리 메모리 초과 시 디스크 활용
  • 페이지 폴트 발생 가능
This post is licensed under CC BY 4.0 by the author.