[OS] 프로세스와 스레드

윤정민·2023년 9월 28일
0

OperationSystem

목록 보기
3/16

1. 정의

  • 프로세스: 프로그램을 메모리 상에서 실행중인 작업
  • 스레드: 프로세스 안에서 실행되는 여러 흐름 단위
    • 기본적으로 프로세스마다 최소 1개의 스레드를 소유
  • 내부구조
    • code: 코드 자체를 구성하는 메모리 영역
    • data: 전역변수, 정적변수, 배열 등
    • heap: 동적할당 시 사용(new(), malloc())
    • stack: 지역변수, 매개변수, 리턴값
      • 독립적인 함수 호출을 위해 thread의 stack만 독립적으로 할당

2. 멀티 프로세서

  • 하나의 프로그램을 여러개의 프로세스로 구성하여 각 프로세스가 병렬적으로 작업을 수행하는 것
  • 장점: 안전성
  • 단점
    • 각각 독립된 메몸리 영역을 가지고 있어, 작업량이 많을 수록 오버헤드 발생
    • context switching으로 인한 성능저하

3. 멀티쓰레드

  • 하나의 응용프로그램에서 여러 쓰레드를 구성해 각 쓰레드가 하나의 작업을 수행하는 것
  • 장점
    • 공유메모리를 통한 시간, 자원손실 감소
    • 전역 변수와 정적 변수에 대한 자료 공유 가능
  • 단점: 한 쓰레드가 데이터 공간을 망가뜨리면, 모든 쓰레드가 작동 불가
    • Critical Section기법 이용
profile
그냥 하자

0개의 댓글