OS - 프로세스와 스레드

choko's avatar
Jun 29, 2024
OS - 프로세스와 스레드
 
  • 프로세스 : 프로그램을 메모리 상에서 실행중인 작업
    • 자신만의 고유 공간과 자원을 할당받아 사용
  • 스레드 : 프로세스 안에서 실행되는 여러 흐름 단위
    • 다른 스레드와 공간, 자원을 공유하며 사용
  • 멀티 프로세스
    • 안정성은 높지만, CPU와 메모리 많이 차지, Context Switching 비용 발생
  • 멀티 스레드
    • 공유 자원 사용으로 하나의 스레드가 죽으면 모두 영향, 멀티프로세스보다 효율 좋음

 
 

프로세스

  • 실행 중인 프로그램으로 디스크로부터 메모리에 적재되어 CPU의 할당을 받을 수 있는 것을 말한다.
  • 운영체제로부터 주소 공간, 파일, 메모리 등을 할당받으며, 이것들을 총칭하여 프로세스라고 한다.
  • 프로세스 제어 블록(PCB)
    • PCB : 특정 프로세스에 대한 중요한 정보를 저장하고 있는 운영체제의 자료구조
    • 운영체제는 프로세스를 관리하기 위해 프로세스의 생성과 동시에 고유한 PCB를 생성
    • Context Switching이 발생하면, 작업의 진행 사항을 PCB에 저장하고 CPU를 반환한다.
      • 그 후 다시 CPU를 할당받으면, PCB에 저장되어 있던 내용을 불러와 다시 작업을 수행한다.
    • PCB에 저장되는 정보
      • 프로세스 식별자, 상태
      • 프로세스 상태, CPU/메모리/입출력 상태 정보 등
 
 

스레드

  • 스레드는 프로세스의 실행 단위이다(프로세스마다 최소 1개의 스레드 소유)
    • 한 프로세스 내에서 동작되는 여러 실행 흐름으로, 프로세스 내의 주소 공간이나 자원을 공유할 수 있다.
    • 같은 프로세스의 다른 스레드들과 코드, 데이터, 운영체제 자원 등을 공유한다.
      • 스택 영역만 할당 받고, 나머지 영역은 서로 공유한다.
    • 프로세스에 스레드가 여러 개 있으면, 멀티스레딩이다.
 
 

멀티 프로세스, 멀티 스레드

  • 멀티 프로세스
    • 하나의 프로그램을 여러개의 프로세스로 구성하여 각 프로세스가 병렬적으로 작업 수행
      • 장점
        • 안전성(메모리 침범 문제를 OS 차원에서 해결)
      • 단점
        • 각각 독립된 메모리 영역을 갖고 있어, Context switching으로 인한 성능 저하 발생
      • Context switching(문맥 교환)
        • 프로세스가 CPU를 사용 중일 때 다른 프로세스가 CPU를 사용하도록 하기 위해, 이전의 프로세스 상태를 PCB에 보관하고 다른 프로세스의 상태를 PCB에서 읽어 레지스터에 적재하는 과정이다.
        • notion image
         
  • 멀티 스레드
    • 하나의 프로세스에 여러 스레드를 구성해 각 스레드가 하나의 작업을 처리하는것
      • 장점
        • 독립적인 프로세스에 비해 공유 메모리만큼의 시간, 자원 손실이 감소
        • 전역 변수와 정적 변수에 대한 자료 공유 가능
      • 단점
        • 안전성 → 하나의 스레드가 데이터 공간을 망가뜨리면, 모든 스레드가 작동 불능
        • 다수의 스레드가 동일한 자원에 동시에 접근하는 데드락 상태에 대한 처리 필요
       
  • 멀티 프로세스 vs 멀티 스레드
    • 안전성
      • 멀티 프로세스는 독립적이기 때문에 하나의 프로세스가 죽어도 영향을 끼치지 않는다.
      • 멀티 스레드는 자원을 공유하기 때문에 하나의 스레드가 죽으면 다른 스레드에 영향을 끼치고, 스레드 별로 동기화를 해 주어야 한다.
    • 효율성
      • 멀티 프로세스는 메모리와 CPU를 멀티 스레드보다 많이 차지하고, Context Swittching 비용이 발생한다.
      • 멀티 스레드는 멀티 프로세스에 비해 메모리 공간과 시스템 자원 소모가 줄어들게 된다.
       
      ⇒ 시스템 특징에 따라 적합한 동작 방식을 선택하자
Share article

Tom의 TIL 정리방