[CS] Process vs Thread

일단 해볼게·2022년 11월 9일
1

CS

목록 보기
1/10
post-thumbnail

들어가기 전 키워드

실행 단위 : CPU core에서 실행하는 하나의 단위로 프로세스와 쓰레드를 포괄하는 개념

프로세스 : 하나의 쓰레드만 가지고 있는 단일 쓰레드 프로세스

동시성 : 한 순간에 여러가지 일이 아니라, 짧은 전환으로 여러가지 일을 동시에 처리하는 것처럼 보이는 것

Context Switching : 어떤 하나의 프로세스를 실행하고 있는 상태에서 인터럽트 요청에 의해 다음 우선 순위의 프로세스가 실행되어야 할 때 기존의 프로세스의 상태 또는 레지스터 값(Context)을 저장하고 CPU가 다음 프로세스를 수행하도록 새로운 프로세스의 상태 또는 레지스터 값(Context)를 교체하는 작업

프로세스

  • 운영체제로부터 자원을 할당받은 작업의 단위

프로세스의 메모리 영역과 PCB 블럭

쓰레드

  • 프로세스가 할당받은 자원을 이용하는 실행의 단위

프로세스와 쓰레드의 차이

프로세스쓰레드
개념운영체제로부터 자원을 할당받은 작업의 단위프로세스가 할당받은 자원을 이용하는 실행 흐름의 단위
작동 방식한 가지 프로세스밖에 실행을 못하므로 여러 개의 프로세스를 실행할 때 모든 자원을 짧은 텀으로 전환해서 실행한다.코드, 데이터, 힙 영역은 공유한다. → 각 쓰레드는 스택부분만 전환해서 실행한다.
강제종료 된다면?한 프로세스에 문제가 생겨도 독립적이기 때문에 영향을 덜 받는다.한 쓰레드에 문제가 생기면 전체 프로세스에 영향이 간다.
공유 자원별개의 메모리 영역(코드, 데이터, 힙, 스택)을 확보한다. → 독립적코드, 데이터, 힙 영역을 공유한다. → 각 쓰레드는 스택 부분만 별도로 가지고 있다.
Context SwitchingContext Switching 비용이 크다.Context Switching 비용 적다.
동기화 작업독립적이기 때문에 동기화 작업 필요하지 않다.공유 자원에 대해 접근 시 동기화 작업이 필요하다.

멀티 프로세스 vs 멀티 쓰레드

멀티코어

참고

https://www.youtube.com/watch?v=1grtWKqTn50
https://inpa.tistory.com/entry/%F0%9F%91%A9%E2%80%8D%F0%9F%92%BB-%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4-%E2%9A%94%EF%B8%8F-%EC%93%B0%EB%A0%88%EB%93%9C-%EC%B0%A8%EC%9D%B4

profile
시도하고 More Do하는 백엔드 개발자입니다.

1개의 댓글

comment-user-thumbnail
2022년 12월 4일

표와 사진으로 깔끔한 포스팅이네요!! 내용 잘 보고 갑니다 ㅎㅎ

답글 달기