minghxx.blog
  • 프로세스는 뭐고 스레드는 뭔가요?
    2024년 12월 05일 14시 58분 21초에 업로드 된 글입니다.
    작성자: 민발자
    728x90

    https://youtu.be/iks_Xb9DtTM?si=H-O7RXjMW4PKETm6

     

    프로세스(Process)

    프로그램이 실행되고 있는 상태, 컴퓨터가 실행 중인 작업 단위

    프로세스는 독립적인 실행단위

    운영체제는 여러 프로세스를 동시에 실행(멀티태스킹) 가능

    운영체제가 자원을 할당

    각 프로세스는 자신의 고유 메모리 공간을 가짐

     

    동시성 Concurrency

    여러 작업이 동시에 진행되는 것처럼 보이는 상태

    단일 CPU에서 시간을 분할하여 여러 작업을 번갈아 실행

    빠르게 작업을 전환하여 사용자는 동시에 실행되는 것처럼 느낌

    작업을 전환하는 과정 : 문맥 교환 context switching

     

    병렬적 Parallelism

    여러 작업이 실제로 동시에 실행되는 상태

    멀티코어 CPU에서는 각 코어가 독립적으로 작업을 수행

    프로세스 하나에 코어 여러 개가(멀티 코어) 각각 동시에 작업들을 수행

     

    스레드 Thread

    프로세스 내부에서 실행되는 작업의 흐름

    하나의 프로세스에는 여러 스레드를 가질 수 있음

    하나의 프로세스가 여러 작업을 동시 처리하기 위해 여러 스레드 생성

    스레드는 프로세스의 자원을 공유

     

    프로세스와 스레드 차이

    프로세스는 독립적인 메모리 공간을 가짐

    스레드는 동일한 프로세스 내에서 메모리를 공유

    스레드 간 통신은 같은 메모리 공간을 사용하므로 빠르고 문맥 교환 비용이 적다

     

    동시성 프로그래밍

    여러 작업(스레드, 프로세스)이 동시에 실행되는 프로그램을 작성하는 방식

    스레드와 자원공유가 빈번히 발생해 동기화(synchronized)가 필요

     

    동기화 Synchronized

    여러 스레드가 동일한 자원에 접근할 때 동기화를 통해 데이터 일관성과 무결성을 보장

    스레드가 동시에 자원을 수정하면 경쟁상태가 발생할 수 있음

     

    728x90
    댓글