[CS] 프로세스와 스레드

JOY·2023년 7월 30일
0

[CS]

목록 보기
1/2

프로세스와 스레드

프로세스

운영체제에 의해 메모리 공간을 할당 받아 CPU 에서 실행/제어되고 있는 프로그램

스레드

프로세스내에서 실행되는 흐름의 단위

장점

  1. 하나의 프로세스 내의 자원(코드,데이터,힙)을 공유하기 때문에
    프로세스에 비해 자원할당 비용이 적게 듦
  2. 다중 스레드의 경우 일부 스레드 처리가 지연되더라도 다른 스레드에서 작업을 계속 처리함

단점

  1. 하나의 스레드에서 발생한 문제가 프로세스 전반에 영향을 미칠 수 있음
  2. 자원을 공유하기 때문에 동기화 문제가 발생할 수 있음

프로세스 vs 스레드

프로세스 : 별도의 메모리 공간에서 실행
스레드 : 동일한 프로세스 내의 공유 메모리 공간에서 실행

멀티 스레드

두개 이상의 스레드를 갖는 프로세스

  • 하나의 응용프로그램을 여러 개의 스레드로 구성하고 각 스레드가 하나의 작업을 처리하는 것
  • 웹서버가 대표적인 멀티스레드 응용프로그램

멀티 스레드를 사용하는 이유

하나의 프로세스를 다수의 실행 단위로 구분하여 자원을 공유하고
자원의 생성과 관리의 중복성을 최소화하여 수행능력을 향상 시키기 때문

멀티 스레드를 사용할 때 고려해야 하는 것

교착 상태가 발생할 수 있어, 우선순위를 정해주어야 함

교착상태(Deadlock; 데드락)
두개 이상의 프로세스나 스레드가 자원을 얻지 못해 다음 처리를 무한정 기다리는 상태

profile
Just Do IT ------- 🏃‍♀️

1개의 댓글

comment-user-thumbnail
2023년 8월 2일

좋은 글 감사합니다 ^^

쓰레드가 사용하시는 언어 또는 프레임워크에서 어떤 방식으로 사용되는지, 데드락의 조건들과 이 조건들로 구성이 되어야할 때 어떻게 해결하는지에 대해서도 CS 지식을 공유 해주시면 더욱 좋을꺼 같아요!

답글 달기