무민은귀여워

프로세스와 스레드의 차이 본문

IT/기타

프로세스와 스레드의 차이

moomini 2019. 12. 14. 15:30
반응형

  프로세스는 실행되고 있는 프로그램의 인스턴스라고 생각할 수 있다.

프로세스는 CPU 시간이나 메모리 등의 시스템 자원이 할당되는 독립적인 개체이다. 각 프로세스는 별도의 주소 공간에서 실행되며, 한 프로세스는 다른 프로세스의 변수나 자료구조에 접근할 수 없다.

 

  스레드는 프로세스 안에 존재하며 프로세스의 자원(힙 공간 등)을 공유한다. 같은 프로세스 안에 있는 여러 스레드들은 같은 힙 공간을 공유한다. 각각의 스레드는 별도의 레지스터와 스택을 가지고 있지만, 힙 메모리는 서로 읽고 쓸 수 있다.

 


https://www.cs.uic.edu/~jbell/CourseNotes/OperatingSystems/3_Processes.html

 

Operating Systems: Processes

Any time there are two or more processes or threads operating concurrently, there is potential for a particularly difficult class of problems known as race conditions. The identifying characteristic of race conditions is that the performance varies dependi

www.cs.uic.edu

프로세스

 

A process in memory

코드(code) 영역 : 실행할 프로그램의 코드가 저장되는 영역으로 텍스트 영역이라고도 불림.

CPU는 코드 영역에 저장된 명령어를 하나씩 가져가서 처리하게 된다.

 

데이터(data) 영역 : 프로그램의 전역 변수와 정적(static) 변수가 저장되는 영역. 데이터 영역은 프로그램의 시작과 함께 할당되며, 프로그램이 종료되면 소멸한다.

 

스택(stack) 영역 : 함수의 호출과 관계되는 지역 변수와 매개변수가 저장되는 영역. 스택 영역은 함수의 호출과 함께 할당되며, 함수의 호출이 완료되면 소멸한다.

 

힙(heap) 영역 : 메모리의 힙 영역은 사용자가 직접 관리할 수 있는 메모리 영역이다. 힙 영역은 사용자에 의해 메모리 공간이 동적으로 할당되고 해제된다. 힙 영역은 메모리의 낮은 주소에서 높은 주소의 방향으로 할당된다.

 

 

 

프로세스 스테이트

 

 

Diagram of process state

 

 

반응형
Comments