2024. 9. 11. 19:58ㆍ카테고리 없음
개요
프로세스와 스레드에 대해서 공부하보겠습니다.
내용 - 프로세스란?
정적인 프로그램이 동적으로 실행되는 상태
프로그램과 프로세스를 같은 개념으로 간주할 때도 있으며 이 둘은 연결된 개념이기 때문에 프로그램을 먼저 아는 것이 좋습니다.
프로그램이 실행되기 위해서는 운영체제로부터 메모리 공간을 할당받아야 합니다. 프로그램이 실행되는 순간, 해당 파일은 컴퓨터의 메모리에 로드되고 운영체제로부터 CPU 등의 시스템 자원을 할당받아 프로그램 코드를 실행하게 됩니다.
내용 - 프로그램이란?
컴퓨터에서 실행될 수 있는 명령어들의 집합으로 윈도우에서는 .exe 파일, 맥에서는 .dmg 파일과 같은 실행 가능한 파일 형태로 존재합니다. 이러한 프로그램은 자바, C언어 등의 프로그래밍 언어를 사용하여 작성된 코드로 구성되어 있습니다. 아직 실행되지 않은 상태의 프로그램을 ‘정적 프로그램’ 또는 간단히 ‘프로그램’이라고 부르며, 이는 일종의 코드 덩어리입니다. 그 프로그램이 실행이 되면 프로세스가 된다.
프로세스와 프로그램이 같은 개념?
프로그램과 프로세스를 같은 개념으로 여기는 경우가 있는데, 그 이유는 다음과 같습니다. 가령, A라는 응용 프로그램이 있다고 할 때, A를 실행하기 전의 상태를 프로그램이라고 하고, A를 실행한 이후의 상태를 프로세스라고 합니다. 즉, 프로그램과 프로세스는 동일한 응용 프로그램의 실행 전과 후의 상태를 나타내기 때문에, 때로는 이 둘을 동일한 개념으로 간주하기도 합니다.
내용 - 스레드란?
하나의 프로세스 내에서 동시에 실행되는 작업의 단위입니다. 간단하게 하나의 프로세스 안에 여러 개의 실행 흐름이 공존할 수 있게 된 것입니다.
예시)
크롬 브라우저를 예로 들면, 브라우저를 실행하면 하나의 프로세스가 생성됩니다. 이 프로세스 내에서는 파일 다운로드, 온라인 쇼핑, 게임 등 다양한 작업이 동시에 이루어질 수 있습니다. 이렇게 하나의 프로세스 안에서 여러 작업이 병행 처리되는 것이 가능한 이유는 바로 스레드 덕분입니다. 각각의 작업은 독립적인 스레드로 실행되며, 이를 멀티 스레드라고 부릅니다.