[CS] 프로세스와 스레드

쓰옹·2022년 12월 2일
0

프로세스 (Process)

  • 컴퓨터가 어떤 일을 하고있는 상태
  • 프로그램 실행
  • 컴퓨터의 자원을 분할해서 사용
  • 동시성(Concurrency)
    • 하나의 코어에서 하나 이상의 프로세스를 돌아가면서 일부분씩 처리
      • 시분할로 cpu 점유 (Context Switching)
    • 겁나빨라서 동시에 진행되는 것 같음
  • 병렬성(Parallelism)
    • 멀티코어로 각각 작업 수행

스레드(Thread)

  • 경량화된 프로세스
  • 한 프로세스 내에 나눠진 하나 이상의 실행 단위
    • 프로세스 내에서 실제로 작업을 수행하는 주체를 의미
    • 한 갈래의 프로세스 안에도 여러 작업이 동시에 진행될 필요가 있는데 그 갈래 하나하나를 뜻
  • 한 어플리케이션에 대한 작업의 단위가 나눠지고 각 작업을 담당
  • 프로세스에 주어진 자원을 함께 사용
  • Thread Scheduling
    • 우선순위(Priority) 방식
      • 우선순위가 높은 스레드가 더 많은 실행상태를 가지도록
    • 순환 할당(Round-Robin) 방식
      • 시간 할당량( Time Slice )을 정해 하나의 스레드를 정해진 시간만큼 실행
    • 기본 메커니즘은 Queue 구조
  • 동기화(Synchronization)
    • 메모리에 동시에 접근하지 못하도록 순서를 맞추는 것 - 오류 방지
    • 두 개 이상의 스레드가 동시에 실행되면 같은 메모리공간(리소스)에 접근하기 때문에 변수 값이나 메모리 상태에 오류가 생길 수 있음
      • 스레드 간섭
      • 메모리 일관성 오류
profile
기록하자기록해!

0개의 댓글