J-C-01 OS와 하드웨어로 이해하는 프로세스와 스레드

글 정보
카테고리
Programming/Java/Core
태그
JavaLevel3

1. OS와 Process (실행의 단위)

운영체제(OS)는 Process(프로세스) 단위로 자원을 할당합니다.

가장 핵심적인 자원은 가상 메모리 공간(Virtual Memory Space)입니다.


2. Thread (작업의 흐름)

Windows OS 기준, Platform Thread는 실제 CPU Core를 점유하는 주체입니다.

실행의 최소 단위이며, 독립적인 실행 흐름을 가집니다.


3. 하드웨어 구조와 성능의 한계

소프트웨어를 이해하려면 하드웨어의 구조적 특성을 알아야 합니다.

메모리 계층 구조 (Memory Hierarchy)

컴퓨터의 저장 장치는 속도용량의 트레이드오프 관계를 가집니다.

피라미드 구조로 위로 갈수록 빠르지만 비싸고, 아래로 갈수록 느리지만 용량이 큽니다.

  1. Registers (최상위)
    • CPU 내부에서 연산에 직접 사용되는 가장 빠른 메모리입니다.
  2. Cache (L1, L2, L3)
    • CPU와 RAM 사이의 속도 차이를 완충합니다.
  3. RAM (주기억장치)
    • 실행 중인 프로세스와 데이터가 적재됩니다.
  4. Storage (HDD, SSD)
    • 비휘발성이며 용량이 가장 크지만 속도가 가장 느립니다.

멀티 스레딩의 등장 배경

"왜 복잡하게 멀티 스레딩을 사용해야 할까요?"


4. 멀티스레딩 VS 멀티프로세싱

동시성 처리를 위해 어떤 모델을 선택하느냐에 따라 장단점이 극명하게 갈립니다.

1) 싱글 프로세스 + 멀티 스레딩

하나의 프로세스 안에서 여러 스레드가 동작하는 방식입니다.

2) 멀티 프로세스 + 싱글 스레딩

여러 개의 프로세스를 동시에 띄워 작업을 처리하는 방식입니다. (예: 크롬 브라우저의 탭 격리)