프로세스(Process)
•
정의 : 정적인 프로그램을 실행시키면 동적으로 변하여 프로그램이 돌아가고 있는 상태.
즉 작업 중인 프로그램을 의미
•
각각의 프로세스는 독립된 메모리 영역(Code, Data, Heap, Stack)을 가지고, 운영체제로부터 자원을 할당받아 실행된다
•
프로세스는 각각 독립된 실행 흐름을 가지며, 최소한 하나 이상의 스레드를 가진다
•
프로세스는 여러 상태(new, ready, running, waiting, terminated) 사이를 전환하며 생명 주기를 수행한다. 이는 운영체제의 스케줄러에 의해 관리되며, 스케줄러는 CPU의 시간을 효율적으로 활용하고 시스템 성능을 최적화한다.
프로세스 상태
스레드(Thread)
•
정의 : 하나의 프로세스 내에서 실행되는 흐름의 단위
•
한 프로세스 내의 스레드들은 동일한 메모리 영역(Code, Data, Heap)을 공유하며,
각각 별도의 Stack 영역을 가진다
•
스레드는 프로세스의 실행 흐름을 나누는데 사용되어, 병렬 처리와 빠른 문맥 전환
(Context Switching)이 가능함
Next → Context Switching
About Python GIL → Python GIL
사진 출처 : https://jhnyang.tistory.com/7