컴퓨터에서 실행되고 있는 프로그램을 프로세스라고 한다.
프로세스
스케줄링의 대상이 되는 작업(task)과 같은 의미로 쓰인다.
프로세스 내부에는 최소 하나의 쓰레드를 가지고 있는데, 실제로는 쓰레드 단위로 스케줄링을 하게 된다.
운영 체제 프로세스, 사용자 프로세스 두 가지 유형의 프로세스가 있다.
운영 체제 프로세스
사용자 프로세스
프로세스는 각각 독립된 메모리 영역(Code, Data, Heap, Stack)을 할당 받는다.
Code
Data
Heap
Stack
기본적으로 프로세스 당 최소 한 개의 쓰레드(메인 쓰레드)를 가지고 있다.
각 프로세스는 별도의 주소 공간에서 실행되며, 한 프로세스는 다른 프로세스의 변수나 자료구조에 접근할 수 없다.
한 프로세스가 다른 프로세스의 자원에 접근하려면 프로세스 간의 통신(IPC, Inter-Process Communication) 을 사용해야 한다.
프로세스 간 통신의 예로는 파이프, 파일, 소켓 등을 이용한 통신 방법이 있다.
Last updated 3 months ago