[멀티스레딩] 1.1 프로그램과 프로세스

연두비두밥·2024년 4월 18일
post-thumbnail

프로그램이란?

  • 컴퓨터에서 실행되는 명령어 모임이 들어 있는 데이터 덩어리
  • 코드(code) + 데이터(data)
  • 실행시키기 전까지는 프로그램 자체로는 아무 의미가 없다.

프로세스란?

  • 프로그램을 실행하면 프로그램 안에 들어 있는 명령어가 한 줄씩 실행되면서 프로그램이 활동하는 상태
    즉, 다르게 설명하면 프로그램이 실행되서 메모리에 올라와 있는 것이 프로세스다.

  • 프로그램에 있는 코드와 데이터는 프로세스 메모리로 불러들인다. 즉, 로딩이 된다.
    프로세스 메모리에는 코드와 데이터는 힙(heap)과 스택(stack)이 공존한다. 스택에는 현재 실행중인 함수들의 호출 기록과 사용 중인 로컬 변수들이 있다.
  • 프로그램은 디스크 같은 저장소에 있고, 프로세스는 RAM 메모리에 있다.(메모리에 올라와 있다고 했으니)

    윈도우 작업 관리 창에서 실행중인 프로세스를 확인 할 수 있다.
    이를 확인해보면 실행 중인 프로세스는 여러개이고, 심지어 같은 프로그램을 여러 개 동시에 실행할 수도 있다.
    이렇게 같은 프로그램이 여러개 실행되고 있는 것을 멀티프로세싱(multi-processing)이라고 한다.
profile
꾸준하고 싶은 사람

0개의 댓글