반응형
프로세스(Process)
- 현재 실행 중인 프로그램을 의미
- 운영체제로부터 주소 공간, 파일, 메모리 등을 할당받음
- 프로세스마다 고유한 PCB(Process Control Block)이 존재함
- 프로세스 상태 : new, ready, running, waiting, terminated 등의 상태를 저장
- 프로세스 식별자(PID, Process IDentity number) : 프로세스 식별을 위한 각 프로세스의 고유한 번호
- 프로세스 카운터 : 프로세스가 다음에 실행할 명령어의 주소
- 프로세스는 각각 독립된 메모리 영역을 할당받음 (Code, Data, Stack, Heap)
- Code(text) : 프로세스가 실행할 코드가 담긴 영역으로, 컴파일 타임에 결정된다. 코드 변경이 불가능하도록 Read-Only 형태로 저장된다.
- Data : 전역, Static 변수가 저장되는 공간
- Stack : 함수에서 다른 함수 실행과 같은 서브루틴에 대한 정보를 저장(재귀). 재귀함수의 깊이가 너무 깊거나 지역변수가 지나치게 많아 stack 영역을 초과하면 stack overflow 오류가 발생함.
- Heap : 다른 영역과 다르게 프로세스 런타임에 동적으로 할당
스레드(Thread)
- 프로세스 내에서 실행되는 흐름의 단위
- 프로세스의 Code, Data, Heap은 공유하고 Stack 부분만 각각의 스레드에 할당됨
- 따라서 각각의 스레드는 다른 스레드와 프로세스의 Code, Data, Heap 영역은 공유하며 실행된다.
- 일반적으로 프로세스는 메인 스레드라고 하는 단일 스레드로부터 시작한다.
- 하나의 프로세스에서 여러 스레드를 실행하여 자원을 효율적으로 사용하는 것을 멀티 스레딩이라고 함
반응형