프로그램(Program) ?
컴퓨터에서 실행 할 수 있는 파일을 통칭, 단 파일을 실행하지 않은 상태이다.
프로세스(Process) ?
실행중인 프로그램을 말하여 운영체제로부터 자원을 할당받아 실행 중 또는 실행 대기 중인 작업의 단위 이다.
프로세스는 각각 독립된 메모리 공간(코드, 데이터, 스택, 힙)을 할당 받으며 서로 다른 프로세스간 메모리 접근이
허용되지 않는다. 프로세스간 서로 다른 자원에 접근 시 통신이 필요하다.
스레드(Thread) ?
프로세스 내에서 실행되는 작업 갈래, 흐름의 단위를 말한다. 스레드는 같은 프로세스 내에서 실행되며
각 스레드마다 스택을 할당받고 코드, 데이터, 힙영역의 자원을 공유한다.
프로세스는 반드시 1개 이상의 스레드를 가지며 프로세스 내에서 여러개의 스레드가 있으면 이를
멀티 스레드(Multi Thread)라고 한다.
Reference
'CS 기초 > 운영체제' 카테고리의 다른 글
임계 영역, 뮤텍스, 세마포어 (1) | 2023.10.29 |
---|---|
멀티프로세스 vs 멀티 스레드 (0) | 2023.10.24 |