[얄코] 프로세스, 스레드

Bibi·2022년 1월 26일

프로세스 & 스레드

https://www.youtube.com/watch?v=iks_Xb9DtTM

오늘날 컴퓨터의 "멀티태스킹" 작업을 가능하게 하는 핵심 개념.

프로세스 Process

  • 프로그램 : 실행할 수 있는 파일

  • 프로세스 : 실행 중인 프로그램

동시성 Concurrency 과 병렬성 Parallelism

여러 프로세스를 함께 실행하는 두 가지 방식.

둘을 혼합해 사용하기도 한다.

  • 동시성 : 프로세서 하나가 여러 프로세스들을 번갈아 가며 조금씩 실행
    • 컨텍스트 스위칭 context switching : 여러 프로세스를 번갈아 실행하는 작업
    • 번갈아 실행하는 속도가 매우 빨라 사람들은 동시에 진행된다고 느낀다.
  • 병렬성 : 멀티코어 프로세서 - 프로세서 하나에 코어가 여러 개 있어, 각 코어가 여러 프로세스들을 동시에 실행
    • 멀티코어 프로세서가 있는 컴퓨터가 사용하는 방식

스레드 Thread

한 프로세스 내에서도 여러 갈래의 작업이 동시에 이루어질 수 있다.

프로세스의 한 갈래를 "스레드"라고 한다.

구글 크롬으로 게임을 다운받으면서, 유튜브 영상을 보는 것이 가능함

  • 게임 다운로드 스레드
  • 유튜브 영상 재생 스레드
  • 스레드 : 경량 프로세스.

    • 프로세스에서 실행 제어만 분리해 처리하는 단위.
  • 스레드는 같은 그룹의 스레드와 코드, 메모리 공간, 운영체제 리소스를 공유함

    • 프로세스는 컴퓨터 자원을 분할해 사용하지만,
    • 스레드는 프로세스 자원을 함께 사용함
  • 프로세스는 하나 이상의 스레드를 가짐

스레드의 동작

  • 스레드 실행에 대한 상태 관리
  • 스레드 실행을 위한 별도 스택
  • 데이터 저장소(지역 변수, 스레드 데이터)
  • 컨텍스트 정보(프로세스의 메모리와 자원에 대한 접근 기록)

스레드의 특징

  • 사용자에 대한 응답성 증가
  • 프로세스 자원 및 공유 - 경제적
  • 병렬 실행이 가능

0개의 댓글