프로세스

MIN·2025년 2월 17일

weekly

목록 보기
9/31

프로세스 (Process)

프로세스는 현재 실행 중인 프로그램을 뜻한다.
프로세스의 구조는 크게 4가지로 나뉜다.


| 코드(Code)    | # 실행할 프로그램의 기계어 코드 저장

| 데이터(Data) | # 전역 변수, static 변수 저장

| 힙(Heap)        | # 동적 메모리 할당 공간

| 스택(Stack)   | # 지역 변수, 함수 호출 정보 저장


Stack

스택 영역은 프로그램 실행 중 메모리를 효율적으로 관리, 데이터를 안전하게 처리하는
지역변수(local variable)과 함수 매개변수(function variable)가 저장되는 부분.

Heap

힙 영역은 동적 메모리 할당에 해당하는데 이는 실행 중
필요한 만큼메모리를 할당받고 필요 없을 때 해제할 수 있는 기법이며
큰 데이터를 처리하려면 힙 영역에서 수행해야 함.

Data

데이터 영역은 전역변수(global variable)과 정적변수(static variable)가 저장되는 부분
프로그램이 시작할 때 할당되고, 종료할 때 해제됩니다
(Node.js에서는 global 객체나 클로저를 사용해 비슷한 기능을 구현 가능)

Code

코드 영역은 프로그램을 실행 할 기계어 코드를 저장하는 곳
읽기전용 메모리 영역이다.


스레드(Thread)

프로세스 내에서 실행되는 흐름의 단위, 일반적으로 한 프로그램은 하나의 스레드를 가지고 있지만
여러 스레드가 존재하는 프로세스를 멀티스레드 프로세스라고 한다.

특징
같은 프로세스 내의 스레드들은 코드,데이터,힙 영역을 공유한다.
스택 영역만 스레드마다 따로 존재함.

  • 스레드는 같은 메모리를 공유하기 때문에 생성 비용이 낮고 -> 멀티스레드의 스레드 끼리는 전환이 프로세스보다 빠르다

0개의 댓글