CS

[CS] 프로세스와 스레드

baek-dev 2024. 12. 8. 13:09

CPU

  • 명령어를 실행하는 연산장치

 

메모리 (메인메모리)

  • 프로세스가 CPU에서 실행되기 위해 대기하는곳

 

I/O (input / output)

  • 파일을 읽고 쓰거나 네트워크 어딘가와 데이터를 주고 받는것
  • 입출력장치와 데이터를 주거나 받는것

 

프로세스

  • 실행중인 프로그램
  • 각각의 프로세스는 독립된 메모리 공간을 할당 받음
  • 명령어와 데이터를 가짐
  • 단일 프로세스는 하나의 프로그램만 동작되어서 비효율적임

 

멀티프로그래밍

  • 여러개의 프로그램을 동시에 번갈아가며 실행
  • 하지만 하나의 프로그램이 오래 실행되면 다른 프로그램의 대기시간이 길어짐

 

멀티태스킹

  • 멀티프로그래밍의 단점을 보완
  • 프로세스를 아주 짧은 시간(quantum)만 실행
  • 프로세스의 응답시간을 최소화 하는데 목적
  • 하나의 프로세스가 동시에 여러 작업 수행은 못함
  • 컨텍스트 스위칭(프로세스에서 다른프로세스로 교체되는것)이 무거움

 

스레드

  • 스레드가 등장하며 실행 최소단위가 스레드가 됨
  • 그래서 프로세스는 최소 하나의 스레드를 갖고 있고, 하나의 스레드 이상을 가질수 있음
  • 같은 프로세스 스레드끼리 컨텍스트 스위칭이 가벼움
  • 자신들이 속한 프로세스의 메모리 영역을 공유

 

멀티스레드

  • 하나의 프로세스가 동시에 여러 작업을 실행하는데 목적
스레드의 등장으로 인해 멀티태스킹의 개념이
여러 프로세스와 여러 스레드가 아주 짧게 쪼개진 cpu time을 나눠 갖는것으로 확장됨

 

멀티프로세싱

  • 두개 이상의 코어나 프로세서를 활용하는 시스템

 

 

 

 

출처: 쉬운코드

'CS' 카테고리의 다른 글

레거시 소스  (0) 2025.01.05
REST API  (2) 2025.01.03
HTTP 상태코드  (0) 2025.01.02
HTTP 메서드  (0) 2024.12.28
[CS] TDD  (2) 2024.12.13