프로세스와 스레드에 대한 정의
프로세스: 컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램
스레드: 어떠한 프로그램 내에서, 특히 프로세스 내에서 실행되는 흐름의 단위
이 두 정의에서 나오는 단어인 프로그램에 대한 정의를 내려보면 다음과 같다
프로그램이란, 파일이 저장 장치에 저장되어 있지만 메모리에는 올라가 있지 않은 정적인 상태를 말한다.
프로그램은 살아있지 않은 상태. 즉 보조 기억장치(하드디스크, SSD)에 존재하며 실행을 기다리는 명령어(코드) 예로 .exe파일과 같은 하나의 실행할 수 있는 데이터의 묶음이다.
한가지 상황을 상황을 생각해보면 .exe로 되어있는 실행파일 프로그램을 실행을 한다. 그럼 실행한 파일이 컴퓨터의 메모리 영역(RAM)에 올라가게 되고 해당 프로그램은 이제 실행중인 상태가 된다. 이 실행중인 상태의 프로그램을 프로세스라고 한다.
스레드는 프로세스보다 더 작은 실행의 단위라고 생각하면 된다. 일반적으로 하나의 프로그램은 하나의 스레드를 가지는데, 프로그램에 따라서 두개 이상의 스레드를 동시에 실행하는데 이러한 실행 방식을 멀티스레드(multithread)라고 한다.
그림과 같이 프로세스가 실행된다는 것은 그 안에 작은 작업의 단위인 스레드가 실행이 된다는 것인데, 멀티스레드가 실행이 된다면 각 스레드들이 하나의 프로세스내에서 해당 프로세스의 자원을 공유하면서 프로그램이 동작하게 한다.
'CS' 카테고리의 다른 글
Jenkins에서 주기적 빌드 설정하기: 크론식으로 알아보는 스케줄링 (0) | 2024.11.21 |
---|---|
동기와 비동기의 개념과 차이 (0) | 2021.04.16 |