프로세스 / 스레드

MSKim·2023년 2월 26일
0

CS

목록 보기
10/13

프로세스

컴퓨터의 .exe로 끝나는 파일들을 프로그램 이라고 하고
이 프로그램이 실행되어 돌아가고 있는 상태, 즉 컴퓨터가 어떤 일을 하고 있는 상태를 프로세스 라고 한다.

여러 프로세스를 함께 돌리는 작업은 동시적, 병렬적 또는 이 둘의 혼합으로 이뤄진다.

  • 동시적: 프로세서 하나가 이거 조금하고 저거 조금하고 이렇게 여러 작업을 돌아가면서 일부분씩 진행하는 형태로 이러한 과정들이 굉장히 빨리 진행되어 마치 동시에 진행되는 것처럼 느껴진다.
  • 병렬적: 프로세서 하나에 코어 여러 개가 달려서 각각 동시에 작업들을 수행한다. 듀얼코어, 쿼드코어와 같은 명칭이 붙는 멀티코어 프로세서가 달린 컴퓨터에서 할 수 있는 방식이다.

CPU의 속도가 발열 등 물리적 제약 때문에 예전만큼 빠르게 발전하지 못해 그 대안으로 코어를 여러 개 달아서 작업을 분담할 수 있도록 만들었다.

스레드

브라우저도 하나의 프로그램이고 이게 돌면서 하나의 프로세스가 진행되고 있다.
그런데 브라우저가 일을 할 때도 게임을 다운받는 동시에 다른 페이지들을 돌아다닐 수 있어야 하고 유튜브 영상의 데이터를 받아오면서 받아진 데이터로 영상을 실행할 수도 있어야 한다.

한 프로세스 내에서도 여러 갈래의 작업들이 동시에 진행될 필요가 있다.
이 갈래를 스레드 라고 한다.

컴퓨터의 같은 자원을 공유하는 것이 효율적이다.
프로세스들은 컴퓨터의 자원을 분할해서 쓰지만 스레드는 프로세스마다 주어진 전체 자원을 함께 사용한다.
속도와 효율 면에서는 낫지만 프로세스 안에서 공유되는 변수에 스레드 두개가 동시에 손을 댈 수 있다는 단점도 있다.

profile
Today I Learned

0개의 댓글