운영체제는 다양한 프로그램을 효율적으로 실행하기 위해 자원을 관리하는 핵심 시스템이다.
이 과정에서 프로그램 실행의 기본 단위로 프로세스와 스레드라는 개념이 사용된다.
프로세스와 스레드의 정의
프로세스 : 운영체제로부터 자원을 할당받은 작업의 단위
스레드 : 프로세스가 할당받은 자원을 이용하는 실행 흐름의 단위
프로세스 구조
프로세스는 메모리구조, 스레드, 프로세스 정보(PCB)로 구성이 된다.
프로세스 메모리 구조
- Code 영역 : 실행할 프로그램 코드
- Data 영역 : 전역변수, 정적 변수
- Heap 영역 : 동적 할당 메모리
- Stack 영역 : 함수 호출, 지역 변수
스레드 구조
- PC(Program Counter) - 어떤 코드 실행중인지
- 레지스터 - 현재 작업중인 데이터
- Stack - 실행기록 저장
정리
프로세스는 실행 환경, 스레드는 프로세스 안에서 동작하는 실행 흐름이다.