카테고리 없음

(OS) 프로세스 vs 스레드

그린티_ 2025. 5. 1. 23:20
반응형

 

비교를 간단하게 해보자면 이렇게 볼 수 있다!

  프로세스 스레드
개념 실행 중인 프로그램 프로세스 내부 작업 단위
메모리 독립된 메모리 공간 같은 공간 공유
안정성 충돌 적음 충돌 가능성 있음 (공유된 데이터)
생성비용 작음
예시 크롬, 멜론 같은 앱 전체 음악 재생 + 다운로드 동시에 처리

 

간단하게 그림을 그려보았음!

  • 이런식으로 하나의 프로레스를 집이라고 생각하고 스레드들은 안에서 일하는 사람들!
  • 집(프로레스)은 서로 독립되어 있고 집안의 사람들(스레드)은 같은 집(자원)을 쓴다!

추가로 멀티에 대한 설명을 하자면

 

1. 멀티프로세스

  • 하나의 프로그램에서 여러 개의 프로세스 생성도 포함
  • 그림처럼 여러개의 프로세스(집)를 동시에 실행
    • ex) 멜론 프로세스도 있고 크롬 프로세스도 있는 것
  • 근데 실제로는 CPU가 한번에 하나의 작업만 실행 할 수 있기 때문에→ 그래서 사람의 눈으로는 여러 프로그램이 동시에 돌아가는 것 처럼 보이는 것!!!
  • → 운영체제가 CPU 시간을 아주 짧게 나눠서 각 프로세스에 번갈아가며 실행 시킴
  • 요새는 멀티코어 CPU 라고 4코어면 4개의 작업을 동시에 실행하여 병렬로 처리 가능

2. 멀티스레드

  • 그림처럼 여러개의 스레드(사람)이 동시에 일하는 것
    • ex) 멜론 앱 안에서
      • 음악재생
      • 다운로드
      • 이미지 보여주기

멀티 태스킹은 뭔가 스케줄링과 겹치나 싶어서 찾아보았는데 그냥 우리가 보고 있는 그 결과물이라고 생각 하면 될 것 같음! 

3. 멀티태스킹

  • 운영체제가 여러 작업을 동시에 처리하는 것처럼 만드는 기술! (스케줄링과는 다른 개념)
    • 멀티태스킹은 사용자 입장에서 “여러 작업이 동시에 잘 돌아가는구나~” 생각하면 되는거고
    • 스케줄링은 운영체제 입장에서 “어느 작업을 먼저 실행 시키고 몇 초정도를 줄까?” 라고 생각
      • 한 마디로 멀티태스킹은 그냥 우리가 보는 결과물, 스케줄링은 가능하게 하는 내부 기술
반응형