프로세스와 쓰레드

김민영·2023년 1월 17일
0

CS 스터디

목록 보기
12/32

개념

프로세스

  • 자신만의 고유 공간과 자원을 할당받아 사용
    • CPU 시간, 운영되기 위한 주소 공간.
    • Code, Data, Stack, Heap 구조의 독립된 메모리 영역
  • 메모리 상에서 실행중인 프로그램.
  • 최소 하나의 쓰레드 보유. 각각 별도의 주소공간을 독립적으로 할당 받음.

쓰레드

  • 다른 쓰레드와 공간과 자원을 공유하며 사용
  • 프로세스 안에서 실행되는 흐름 단위.
  • 쓰레드는 stack만 따로 할당, code, heap 은 쓰레드끼리 공유

프로세스 문제점

  • 프로세스 생성에 큰 오버헤드 존재 ( 생성시 시간 오래 걸림 )
  • 프로세스 context switching 비효율, 오버헤드 큼
  • 프로세스 사이 통신 어려움. (IPC 사용 필요)

쓰레드 출현 목적

  • 프로세스보다 크기가 작은 실행 단위 필요
  • 프로세스의 생성 및 소멸에 따른 오버헤드 감소
  • 빠른 context switcing
  • 프로세스간 통신 시간, 방법 어려움 해소

쓰레드 주소 공간

  • 사적공간 : 쓰레드 코드 공간, 쓰레드 전용 전역변수 공간, 스택 공간
  • 공유공간 : 데이터 공간, 힙 공간, 커널 스택
profile
노션에 1차 정리합니당 - https://cream-efraasia-f3c.notion.site/4fb02c0dc82e48358e67c61b7ce8ab36?v=

0개의 댓글